Linux 備忘録

Archive for 1月 5th, 2008

.htaccessによる(ID・パスワード認証)

土曜日, 1月 5th, 2008

ここでは、ID・パスワードによる照合を行ってコンテンツへのアクセスを会員制(メンバー制)にするユーザー認証の中のBasic認証を解説します。

設定したディレクトリー配下の全てのファイルがIDとパスワードによる照合を行う認証対象となります。

Basic認証は、.htaccess と .htpasswdの2つのファイルで構成されます。

.httaccess の記述例

AuthType Basic
AuthUserFile /home/hoge/public_html/etc/.htpasswd
AuthGroupFile /dev/null
AuthName “Enter ID & password”
Require valid-user

1行目のAuthType(認証タイプ)には、Basic認証とDigest認証がありますが、ブラウザが対応しているのは、Basic認証ですので AuthTypeディレクテブに続いて”Basic”と指定します。

2行目のAuthUserFileディレクティブは、認証のためのユーザーの名簿がある場所を示します。値には、フルパス(絶対パス)を指定します。このファイル名は、.htpasswdとなります。このファイルにIDとパスワードが記録されます。

3行目の AuthGroupFileディレクティブは、ユーザー認証のための、グループファイルを設定しています。グループファイルは、5行目のRequireディレクティブで Require group を宣言したときのみ必要になるものです。上記の例では、AuthGroupFileディレクティブには /dev/null の値を記述しているのでグループファイルは存在しないということを示しています。もし、グループ単位で制限する場合は、AuthUserFileディレクティブにグループファイルのある場所をフルパスで記述します。

4行目の AuthNameディレクティブは、ファイルへのアクセス時にダイアログボックスに表示する文字列を指定します。認証を促す注意書きにあたります。文字列にスペースを含む場合は、ダブルクォーテーション(”)で囲みます。日本語の指定も可能ですが、日本語は問題を起こすことが多いようなので、なるべく半角英数字だけを使って入力を案内できる英語を使うようにした方が良いでしょう。

5行目の Requireディレクティブは、ユーザー認証の際に、認証させるユーザを指定します。最初の値にパスワード認証の機会を与えるメンバーを指定します。 上記の例では、valid-user と記述しています。これは、 .htpasswd のファイルに記述されている全てのユーザーを許可することを示しています。つまり、IDとパスワードの照合が 正しければ、誰でもそのディレクトリへとアクセスすることが可能であることを示します。ユーザーの指定には他にグループ単位であれば、Requireディレクティブに続いて group と記述し、ユーザー単位であれば user と記述します。

パスワードは暗号化されて、格納します。