ユーザー認証

 Apacheの.htaccessファイルを使って、特定のページに対しアクセス制限をかけて見ましょう。IDとパスワードを知っている人だけが、特定のページにアクセスできるようになります。会員制のホームページ作りなどに便利です。

パスワードファイル

 httpdによるユーザー認証を行なう為には、まずページへのアクセスを許可するユーザーの名前(ID)とパスワードを記録したパスワードファイルが必要です。パスワードファイルの名前は自由に付けられますが、場所はServerRootディレクティブで指定した場所より下に置かなくてはいけません。


 パスワードファイルを作成したりするプログラムはhtpasswdです。htpasswdはapacheパッケージに含まれていますから、特別にインストールしてやる必要はありません。htpasswdの書式は以下の通りです。

htpasswd書式 htpasswd [<options >] <filename > <username >

 <filename >には、パスワードファイルの名前を指定します。名前は自由に付けられますが、通常.htpasswdなどの隠しファイルにすることが一般的です。<username >には、追加又は更新するユーザーの名前(ID)を指定します。パスワードファイルにまだ登録されていない場合は追加になり、既に登録されている場合は更新となります。

 <filename >は当然存在するファイルでなくてはいけませんが、もし存在しない場合は-cオプションをつけて新規に作成する必要があります。では、そのコマンドの一例を見てみましょう。

パスワードファイルを作成しkomonetを追加する

# htpasswd -c /etc/httpd/.htpasswd komonet [ENTER]

New password: ←新しいパスワードを入力 [ENTER]

Re-type new password: ←再度新しいパスワードを入力 [ENTER]

Adding password for user komonet

アクセスコントロールファイル

 パスワードファイルを作成したら、次は認証の必要なページを含むディレクトリにアクセスコントロールファイル(.htaccess)を置き、それとパスワードファイルとを結び付けます。アクセスコントロールファイルの中身は、認証に関係するものだけに限れば以下のようになります。認証のタイプにはBasicを指定します。

AuthType Basic

AuthUserFile /etc/httpd/.htpasswd

AuthName "Member Certification"

<Limit GET>

require valid-user

</Limit>

 これで準備完了です。実際にアクセス制限をかけたページを開こうとすると、以下のようなダイアログボックスが開きます。パスワードファイルに登録したユーザー名(ID)とパスワードを入力して「OK」をクリックすれば、該当のページにアクセスできます。

 尚、この認証機能を使う為にはmod_authモジュールが必要です。Turbolinuxでは標準で組み込まれています。