Apacheで特定のディレクトリにアクセスする際に、認証を要求するBasic認証とダイジェスト認証の設定方法の紹介
●「/var/www/html/Basic」ディレクトリに対し、アクセスした場合のBacic認証を行うための設定方法
<Directory "/var/www/html/kenoaschool">
AuthType Basic ←①
AuthName "Members only" ←②
AuthUserFile /etc/httpd/.htpasswd ←③
Require valid-user ←④
</Directory>
①認証方式の設定、この他にダイジェスト認証がある。Basic認証の場合は「Basic」、ダイジェスト認証の場合は、「Digest」
②ブラウザの認証画面で表示される文字列
③認証するためのユーザー情報と、パスワード情報を保存するパスワードファイルの指定(名前は何でもok、基本的に、/etc/httpd/の配下に作成する)
④アクセス許可を行う対象を指定する。「valid-user」の場合、パスワードファイルに登録されているユーザーすべてが対象となる。個別にユーザーやグループを指定することもでき、その場合オプションに「Require user」「Require group」を指定することができる。
設定例
Require user foo bar ←ユーザー「foo」と「bar」のみアクセスを許可する
Require group admin ←group「admin」のメンバーのみ許可する
●パスワードファイル作成方法
Apacheの認証では、システム上(Linux)で使用するユーザーアカウントとは別に、独自のユーザー管理をおこなっている。
「AuthUserFile」で指定した場所に、ファイルを作成しユーザー登録をおこなう必要があります。
その際、htpasswdコマンドを使用してファイル作成、ユーザー登録をおこなうことができる。
#htpasswd -c /etc/httpd/.htpasswd foo
これでパスワードファイルを作成し、「foo」ユーザーを登録することができる。
「-c」オプションを使うことによって、パスワードファイルを作成することができる。
2人目以降ユーザーを登録する際には、「-c」オプションをつけてしまうと新規でファイルが作成されてしまい
上書きされてしまうので注意。