ユーザ認証をする。(ダイジェスト認証)
httpd.confで.htaccess の使用を許可する。許可したいディレクトリのAllowOverrideにAuthConfigを追記する。
# vi /usr/local/apache/conf/httpd.conf
・
・
・
# This controls which options the .htaccess files in directories can
# override. Can also be "All", or any combination of "Options", "FileInfo",
# "AuthConfig", and "Limit"
AllowOverride AuthConfig
・
・
・
Options・・・CGI の実行、シンボリックリンクをたどるかどうか、などの制御を .htaccess で指定する事ができる。
FileInfo・・・拡張子とファイルタイプの対応の指定や File 名置換などを、.htaccess で指定する事ができる。
AuthConfig・・・ユーザー認証に関する指定を、.htaccess で指定する事ができる。 Limit・・・アクセス制限に関する指定を、.htaccess で指定する事ができる。
All・・・以上の全てを指定したのと同じ。
ここまではベーシック認証と同じです。
パスワードファイルを作成する。
htdigest の使用例 (この場合は、hogeuser がユーザ名で、Privateが領域名(realm)です。)
$ /usr/local/apache/bin/htdigest -c /home/hoge/.htpasswd.digest Private hogeuser
でできます。 -c オプションをつけると、パスワードファイルを新しく作ります。
$ cat /home/hoge/.htpasswd.digest
hogeuser:Private:d675482f815f01ff7dff9d70f5ddf3fb
.htaccessファイルを作成する。
ユーザ認証するディレクトリに置きます。
AuthDigestFile /home/hoge/.htpasswd.digest
AuthGroupFile /dev/null
AuthName "Private"
AuthType Digest
<Limit POST GET>
require valid-user
</Limit>
これだけだと、ダイジェスト認証は使用できません。ダイジェスト認証モジュール(mod_auth_digest.c)を組み込む必要があります。
$ cd apache_1.3.27/src/modules/experimental
$ /usr/local/apache/bin/apxs -c -D DEV_RANDOM mod_auth_digest.c
$ su
# /usr/local/apache/bin/apxs -i mod_auth_digest.so
configure時に、--enable-module=auth_digest オプションを付加する方法もある。
httpd.confに下記の記述を追加します。
# vi /usr/local/apache/conf/httpd.conf
LoadModule digest_auth_module libexec/mod_auth_digest.so
AddModule mod_auth_digest.c
Apacheを再起動します。
# /etc/rc.d/init.d/httpd restart
ダイジェスト認証は、ユーザー名とパスワードをMD5で暗号化するため(パスワードが平文で流れない)、パスワードを base64 エンコードするだけのベーシック認証より安全です。ただし暗号化されるのは認証だけなので、ログイン以降の通信を暗号化したい場合は、SSLを使用してください。
ただし、ダイジェスト認証を使用できるブラウザは限定されます。IE5.0以降、Netscape7.0以降、Opera6.0、Mozilla 0.9.7以降では使用できるようです。
構築環境
Apache 1.3.27/PHP 4.3.0/Red Hat Linux 7.3
Apacheをインストールする
PHPをインストールする
ApacheでSSLを使う
ユーザ認証をする。(ベーシック認証)
ユーザ認証をする。(ダイジェスト認証)
Analogでアクセスログ解析をする
Apache で ウェブサーバを構築する
このページの更新情報の他、IT(情報技術)に関するトピックスをメールマガジンでお知らせしています
ITNAVI.mag をまぐまぐで登録