パスワードによるアクセス制御
パスワード認証を利用したアクセス制御の方法を紹介します。
■「.htaccess」ファイルの設定
まずアクセス制御したいディレクトリに対して「.htaccess」ファイルに以下を記述します。
AuthType Basic AuthName "パスワードを入力してください" AuthUserFile /usr/local/.htpasswd Require valid-user「AuthType」は認証の種類でBasicかDigestを指定できます。通常はBasicです。
「AuthName」はここに指定した文字がユーザーのブラウザ認証ウィンドウに表示されます。
「AuthUserFile」でユーザー・パスワードが保存されているファイルの場所を指定します。
「Require」でユーザーの認証形態を指定します。valid-userやuser、groupのいずれかが指定できます。
■ユーザー・パスワードファイル「.htpasswd」の作成
ユーザー・パスワードファイルの名前は好きな名前で問題ないですが、「.htpasswd」の名前で作成するのが一般的です。
セキュリティ上の問題から、このファイルはWebブラウザからアクセスできない場所に作成します。
以下のコマンドで作成可能(ユーザー名:jnethack)です。
htpasswd -c /usr/local/.htpasswd jnethack-c オプションは一番最初にファイルを作成する時だけ使用して、 作成後にユーザーを追加する場合は不要です。
続いてパスワードを入力するプロンプトが表示されますので、 パスワードを設定します。
尚、 -m オプションを指定しておくと、MD5ベースの暗号化アルゴリズムを使う事も可能です。
あと、以下のように -b オプションを指定しておけば、パスワード(例:hogehoge)を引数として記述することも出来ます。
htpasswd -b /usr/local/.htpasswd jnethack hogehoge
■「.htpwddb」ファイルを使用する
小人数のユーザーリストなら「.htpasswd」で問題ありませんが、
大人数のユーザーリストを作成する場合はデータベースファイル「.htpwddb」の方が参照処理が早くなります。
そこで、以下にデータベースファイル「.htpwddb」の作成方法を記述します。
dbmmanage /usr/local/.htpwddb adduser jnethackまた、この場合は「.htaccess」ファイルは以下のように記述します。
AuthType Basic AuthName "パスワードを入力してください" AuthDBUserFile /usr/local/.htpwddb Require valid-user