Apacheのダイジェスト認証(MD5で暗号化した認証システム)


Apr2014 KOSAKA

Apacheは公開ドキュメントディレクトリ内の指定したディレクトリ内に対して,ダイジェスト認証を要求するように設定できる。設定されたディレクトリ 内のファイル及びサブディレクトリ内のファイルにアクセスする際はユーザIDとパスワードによってダイジェスト認証が要求される。

0.前提

Apacheのインストール先        c:\Apache2.2
パスワードファイル            c:\Apache2.2\Passwd\DigestPass.pwd
公開ドキュメントディレクトリ  c:\Apache2.2\htdocs
認証を設定するディレクトリ    c:/Apache2.2/htdocs/restricted
設定するユーザID              testuser
設定するパスワード            testuserpwd

1.パスワードファイルを作る

パスワードファイルを
c:\Apache2.2\Passwd\DigestPass.pwd
にする。先にディレクトリ
c:\Apache2.2\Passwd
を作成しておく。
パスワードを作るコマンド :c:\Apache2.2\bin\htdigest
初めての時は       :-c
レルム(realm)      :DigestAuth
登録するユーザID     :testuser

パスワードの設定コマンドの実行
c:\Apache2.2\bin\htdigest -c c:\Apache2.2\Passwd\DigestPass.pwd DigestAuth testuser
パスワードを2回聞かれるので答える ここでは testuserpwd
(2つ目以降のユーザIDを登録する場合は -c オプションを外す)
DigestPass.pwdをテキストエディタで見ると
testuser:DigestAuth:9159036c83d656cb76cfe9b397eca364
となっている。

2.httpd.confの設定

http.confには次の2つの変更を加える。

(1)認証を必要とするフォルダの設定
対象フォルダ       :c:/Apache2.2/htdocs/restricted
レルム(realm)      :DigestAuth

<Directory "c:/Apache2.2/htdocs/restricted">
    AuthType Digest
    AuthName "DigestAuth"
    AuthUserFile "c:/Apache2.2/Passwd/DigestPass.pwd"
    Require valid-user
</Directory>
を加える。

(2)「LoadModule auth_digest_module modules/mod_auth_digest.so」
を有効にする。(コメントマーク「#」を外す)

3.Apacheを再起動

Apacheを再起動して出来上がり。

c:/Apache2.2/htdocs/restricted/index.html
を作っておいて,これにアクセスすると,ユーザID,パスワードを求められるようになる。