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を再起動する。
Webブラウザでhttp://localhost/member/にアクセスすると、ユーザー認証用のダイアログボックスが表示される。
|
ユーザー認証用のダイアログボックスが表示されたFirefoxの画面 |
Linux Squareフォーラム Linux Tipsカテゴリ別インデックス |
Linux & OSS 記事ランキング
本日
月間