SyntaxHighlighter

2011年9月28日水曜日

Digest 認証のかけ方 (Apache)

/usr/local/apache が Apache のインストールディレクトリという前提。 また、mod_auth_digest モジュールが組み込まれていることが前提。 設定方法は一部を除いて 2.0.X, 2.2.X 共通(後述)。設定方法は Basic 認証と共通の部分も多いので差異だけを説明する。

まずは認証を通過させるユーザとパスワードのリストを作成する。htpasswd コマンドではなく htdigest コマンドを使用する。

# /usr/local/apach/bin/htdigest -c /usr/local/apach/conf/.htdigest "members only" ユーザ名
Adding password for ユーザ名 in realm members only.
New password:パスワードを入力
Re-type new password:パスワードを入力

-c は初回限定で付ける。追加登録時には -c は付けない。
/usr/local/apach/conf/.htdigest は作成するファイルのフルパスで、この通りでなくとも良いが、DocumentRoot 以下には置かないこと。また、ファイル名の .ht の部分は変えないことを推奨。先頭が . のファイルは Unix 系 OS では隠しファイルとして扱われ、-a なしの ls コマンドでは表示されないというメリットがある。また、.ht で始まるファイルは Apache の設定ファイルでデフォルトでアクセスを拒否する設定になっている。
"members only" の部分は任意に変えて良いが、後述の AuthName ディレクティブと合わせる必要があるので注意。
ユーザ名 の部分は実際のユーザ名に置き換えること。OS に存在するアカウントである必要はない。

Apache の設定は以下の通り。Basic 認証との差は AuthType を Digest にするだけ。

AuthType Digest
AuthName "members only"
AuthUserFile /usr/local/apach/conf/.htdigest
Require valid-user

AuthUserFile は 2.2.X の場合。 2.0.X の場合は代わりに AuthDigestFile と記載すること。

0 件のコメント:

コメントを投稿