ページ内索引 |
WEBサーバー上のコンテンツの中には、仲間内の掲示板サイトのように、特定の人間のみにアクセスを許したいものもあります。
こういった場合、ユーザーIDとパスワードを入力するようにし、制限をかけることで、特定の
人間のみに接続を許すようにすることが考えられます。
WEBアプリを作成して認証機能を作る事もできますが、Apachではこの認証機能を簡単に実現することが出来ます。
このページではApacheの認証機能のであるBasic認証について解説します。
ただし、認証を設定すると、サーバーにリクエストを送るたびにユーザーとパスワードの
検証を行うため、パフォーマンスも考慮する必要があります。
FirefoxでのBasic認証ダイアログ |
Basic認証を行うには、ユーザーとパスワードが保存されたパスワードファイルを作成する必要があります。
パスワードファイルを操作するには htpasswd2 コマンドを実行します。
htpasswd2コマンドは、作成するパスワードファイル名とユーザー名を指定して実行します。
上記例では、ユーザー名はtma、パスワードファイルを /etc/.htppasswordというファイル名で作成しています。
また、新規にパスワードファイルを作成する場合は、-cオプションをつけて、実行します。
コマンドを入力後、パスワードを求められるので、入力します。
一度パスワードファイルを作成し、そのパスワードファイルに新しいユーザーを追加するときは、
-cオプションをつけずに実行します。
パスワードファイルは重要なものなので、WEBから簡単にアクセスできるような場所には置かないようにしましょう。
/var/www/localhost/htdocs以下のコンテンツに対して認証を設定します。
/etc/apache2/conf/apache2.confに以下の記述を追加します。
オプション | 説明 |
---|---|
AuthUserFile | パスワードファイルの場所です。 |
AuthGroupFile | グループファイルを指定。使用しない場合は/dev/nullとします。 |
AuthName | 認証時のメッセージを記述します。 また、WEBブラウザは一度認証に成功すると、同じホスト名、AuthNameの領域には 自動的に認証されたユーザーとパスワードを送信します。 この機能により、一度認証された領域ではブラウザを閉じない限り、ユーザーとパスワードを何度も要求されることはありません。 |
AuthType | Basic認証なら Basic と記述します。 |
Require | アクセスを許可するユーザーやグループを記述する。 valid-user は認証された全てのユーザー にアクセスを許可します。 |