Contents
Digest認証の設定
Digest認証とはHTTP認証のうちの一つで、アプリケーションにログインの仕組みがなくても認証の機能を実装できる。
確認
モジュールが有効になっているか確認する。
1 2 | httpd -M | grep auth_digest_module auth_digest_module (shared) |
もし表示されなかったらLoadModuleディレクティブを確認し、#でコメントアウトされていたら#を削除して有効にし再起動する。
1 | grep auth_digest_module /etc/httpd/conf/httpd.conf |
1 | LoadModule auth_digest_module modules/mod_auth_digest.so |
1 | service httpd restart |
認証情報の作成
htdigestコマンドでパスワードファイルを作成する。
※ドキュメントルート配下以外に作成した方が安全。通常は.htpasswdなどドットで始まるファイル名にする。ユーザが直接開こうとしても”.ht”で始まるファイルは読まない設定になっている事が多いため。
1 2 3 | htdigest -c パスワードファイル "レルム" ユーザー名 ex) htdigest -c /usr/local/pass/digest/.htpasswd "TEST" tarou |
初回のみ-cを付ける。すでにパスワードファイルが存在する状態で-cを付けて実行すると、登録されているデータが初期化されてしまう。
作成されたパスワードファイルを見てみると
ユーザー名:レルム:パスワード情報
といったデータが確認できる。
レルムとは認証の範囲。複数の領域にID/パスワードを設定できるため、それらを識別するするために使用する。
ログインプロンプトにレルムが表示され、どの領域の認証をするのかわかる。
ぶっちゃけ(識別できるなら)どんな文字列でも良い。
Apacheの設定
1 2 3 4 5 6 | <Directory "認証をかけるディレクトリ"> AuthType Digest AuthName "レルム" AuthUserFile htdigestコマンドで作成したパスワードファイルのパス Require valid-user </Directory> |
記述が正しいか確認
1 2 | apachectl configtest Syntax OK |
apache再起動
1 | service httpd restart |