特定のユーザのみに限定してホームページを公開したいときは、ウェブサーバでベーシック認証を行う方法が一般的です。この設定をしておけば、設定したアドレスにアクセスしたユーザに対してアカウントとパスワードを入力するダイアログボックスが表示されるようになります。アカウントとパスワードが正しければ、アクセスが許可されてページが表示され、誤っていればエラーメッセージが表示されます。
ベーシック認証の設定
Apacheのベーシック認証は、httpd.confファイルに <Directory> タグを新しく用意し、ベーシック認証の設定をするだけで完了します。
ベーシック認証を設定する作業手順
ここでは /home/httpd/html/private をベーシック認証用のディレクトリに設定しました。
<Directory "/home/httpd/html/private">
Options Indexes
AllowOverride None
Order allow,deny
Allow from all
AuthType Basic
AuthName Intra
AuthUserFile /usr/local/apache/conf/password
Require valid-user
</Directory>
これだけで設定は終わりです。あとは、パスワードファイルを作成します。
- AuthType
- 認証方法を指定します。ここではBasic認証を指定しています。
- AuthName
- 認証領域の名前を設定します。この名前は、アカウントとパスワードを入力するダイアログボックスに表示されます。
- AuthUserFile
- 認証用ディレクトリ用のパスワードファイルの保存場所を指定します。
- Require
- アクセスを許可するアカウントを指定します。
パスワードファイルの作成
ベーシック認証を設定したら、次にパスワードファイルを作成しましょう。パスワードファイルを作る用に、htpasswdというユーティリティーがあるので、これを使います。まず、AuthUserFile で指定したディレクトリに移動し、 htpasswd ユーティリティーを使ってパスワードファイルを作成します。
htpasswd ユーティリティーは Apacheをインストールするときに自動的にインストールされています。このユーティリティーはシェルから実行し、次のように指定します。
htpasswd -c パスワードファイル名 ユーザ名
-c オプションで新しいパスワードファイルが作られます。ユーザを追加するだけであれば、-c オプションは不要です。コマンドを入力して Enter キーを押すと、パスワードを要求されるので、指定したユーザ用のパスワードを入力します。 詳しくは、シェル上でman htpasswd と入力してみてください。英語ですが、htpasswd ユーティリティーの詳しい説明が表示されます。
最後に、ファイルに読み取り権限を設定しましょう。groupとotherに読み取り権限を与えるには、下記のようchmodコマンドを発行します。
chmod og+r password