qshinoの日記

Powershell関係と徒然なこと

apache digest認証

下記から

http://www.atmarkit.co.jp/flinux/rensai/linuxtips/699apachedigest.html

 

Linux Tips

Apacheでユーザー認証を行うには(Digest認証編)

北浦訓行
2005/2/10

 Apacheのユーザー認証には、「Basic認証」と「Digest認証」がある。Basic認証は一般的に行われている方法だが、パスワードが暗号化されないため、機密性の高いデータへの認証には適していない。Digest認証はパスワードが暗号化されるが、これに対応しているのは比較的最近のWebブラウザに限られる。

 ここではDigest認証を利用して、特定ディレクトリのWebページを開く際に「secret」というユーザー名でアクセスできるようにする(編注)。Basic認証を使う方法については、Apacheでユーザー認証を行うには(Basic認証編)を参照。

編注:以下のコマンド名やディレクトリはディストリビューションによって異なることに注意。
 まず、ユーザー認証によるアクセス制限をかけるディレクトリを作成する。ここでは、/var/www/html/memberとする。

# mkdir -p /var/www/html/member
 次に、Apacheの設定ファイル(/etc/httpd/conf/httpd.conf)に以下の設定を追加する。

<Directory "/var/www/html/member">
AuthType Digest
AuthName "Secret Zone"
AuthDigestDomain /member/
AuthDigestFile /etc/httpd/.htdigest
Require user secret
</Directory>
 そして、htdigestコマンドでsecretというユーザーを作成し、パスワードを設定する。パスワードの設定に必要なパスワードファイルは、ここでは/etc/httpdディレクトリ(編注)に.htdigestとして作成する。。

編注:パスワードファイルの作成場所は必ずしも/etc/httpdである必要はない。ただし、外部からアクセスできる場所(Apacheのドキュメントルート内など)は避けるべきである。
 htdigestコマンドの書式は以下のとおり。レルムには、/etc/httpd/conf/httpd.confの「AuthName」に指定した文字列を入れる。なお、初めて.htdigestファイルを作成するときは-cオプションが必要となる。

htdigest [-c] パスワードファイル レルム ユーザー名
 実行結果は以下のようになる。

# htdigest -c /etc/httpd/.htdigest 'Secret Zone' secret
Adding password for secret in realm Secret Zone.
New password:
Re-type new password:
 以上で設定は完了だ。以下のコマンドを実行して、Apacheを再起動する。

# service httpd restart
 Webブラウザでhttp://localhost/member/にアクセスすると、ユーザー認証用のダイアログボックスが表示される。


ユーザー認証用のダイアログボックスが表示されたFirefoxの画面