ページへ戻る

− Links

 印刷 

htdigestを使用してパスワード認証させてみる のソース :: Nest Of Hawk

xpwiki:htdigestを使用してパスワード認証させてみるのソース

« Prev[3]  
[[Gentoo Linuxな生活/サーバ設定関連]]

*もともとユーザ認証が無いページに認証を追加する [#h59d1d10]
ログイン画面がないページだけど、ユーザ認証させたいようなときってありますよね。これを実現してみたいと思います。方法は2種類あります。
-htpasswdという平文認証を用いるパターン
-htdigestというMD5暗号化認証を用いるパターン

htpasswdだとネット上を平文でパスワードが流れるため、結構危険です。これはいやなので、MD5ダイジェスト認証を用いる方法で行ってみます。

*まずパスワードファイルを作る。 [#ra85374c]
パスワードファイルを作ってみましょう。このパスワードは、基本的にapacheからアクセスできるコンテンツの中に入れるのはセキュリティ上好ましくないので、/etc/apache2に下においてみます。
 # htdigest2 -c /etc/apache2/userpasswd "User Only" testuser  (パスワードファイルを新たに作成する場合)
 # htdigest2 /etc/apache2/userpasswd "User Only" testuser      (すでにあるパスワードファイルに、エントリを追加する場合)
 Adding password for a in realm User Only.
 New password: パスワード
 Re-type new password: パスワード

これでtestuserさんのパスワードがこのファイルに設定されました。で、このパスワードファイルの情報を使って認証させたいページを、先ほど登場したhttp://foo.bar.com/boardにしたいとします。

*apacheの設定を変更する [#y1e9cce5]
ここで、/etc/apache2/conf/commonapache2.confを開きます。

 <Directory /home/var/www/localhost/htdocs/board>
    Options -Indexes FollowSymLinks MultiViews
    AllowOverride All
    SSLRequireSSL   ←SSLしかゆるしません(一つ前の設定が残ってるのね)
    AuthType Digest  ←MD5ダイジェスト認証を要求 
    AuthName "User Only" ポップアップするパスワード入力窓に表示させるメッセージ
    AuthDigestFile /etc/apache2/userpasswd ←パスワードファイルの指定
    require valid-user       ←パスワードファイルに記述されている全てのユーザが参照できる
   <IfModule mod_access.c>
          Order deny,allow
          Allow from all
    </IfModule>
 </Directory>

で、apacheを再起動します

 # /etc/init.d/apache2 restart

この設定ですと、http://foo.bar.com/boardだと''Forbidden''ですね。https://foo.bar.com/boardだと、パスワード入力窓がポップアップします。ユーザ名、パスワードを入力してOKだと画面が参照できます。NGだと、アクセスがはじかれますよね?これで完成っす♪

« Prev[3]