2005/07/15
Apache-2.0.54-r8

Basic認証の設定(ファイル認証)

ページ内索引
パスワードファイルの作成
認証ディレクトリの設定

WEBサーバー上のコンテンツの中には、仲間内の掲示板サイトのように、特定の人間のみにアクセスを許したいものもあります。
こういった場合、ユーザーIDとパスワードを入力するようにし、制限をかけることで、特定の 人間のみに接続を許すようにすることが考えられます。
WEBアプリを作成して認証機能を作る事もできますが、Apachではこの認証機能を簡単に実現することが出来ます。
このページではApacheの認証機能のであるBasic認証について解説します。
ただし、認証を設定すると、サーバーにリクエストを送るたびにユーザーとパスワードの
検証を行うため、パフォーマンスも考慮する必要があります。

Firefox Basic認証ダイアログ
FirefoxでのBasic認証ダイアログ

パスワードファイルの作成

Basic認証を行うには、ユーザーとパスワードが保存されたパスワードファイルを作成する必要があります。
パスワードファイルを操作するには htpasswd2 コマンドを実行します。

# htpasswd2 -c /etc/.htppassword tma

htpasswd2コマンドは、作成するパスワードファイル名とユーザー名を指定して実行します。
上記例では、ユーザー名はtma、パスワードファイルを /etc/.htppasswordというファイル名で作成しています。
また、新規にパスワードファイルを作成する場合は、-cオプションをつけて、実行します。
コマンドを入力後、パスワードを求められるので、入力します。

一度パスワードファイルを作成し、そのパスワードファイルに新しいユーザーを追加するときは、 -cオプションをつけずに実行します。

パスワードファイルは重要なものなので、WEBから簡単にアクセスできるような場所には置かないようにしましょう。

認証ディレクトリの設定

/var/www/localhost/htdocs以下のコンテンツに対して認証を設定します。
/etc/apache2/conf/apache2.confに以下の記述を追加します。

# 認証をかける場所を指定します。
<Directory /var/www/localhost/htdocs>
# パスワードファイルの場所を指定します。
AuthUserFile /etc/.htppassword

# グループファイルの場所を指定します。
AuthGroupFile /dev/null

# 認可領域の名前を指定します。
AuthName "Please Enter Your Password"

# Basic認証を用いる場合は、Basicと指定します。
AuthType Basic

# 認証された全てのユーザーが利用可能
Require valid-user
</Directory>

オプション 説明
AuthUserFile パスワードファイルの場所です。
AuthGroupFile グループファイルを指定。使用しない場合は/dev/nullとします。
AuthName 認証時のメッセージを記述します。 また、WEBブラウザは一度認証に成功すると、同じホスト名、AuthNameの領域には 自動的に認証されたユーザーとパスワードを送信します。 この機能により、一度認証された領域ではブラウザを閉じない限り、ユーザーとパスワードを何度も要求されることはありません。
AuthType Basic認証なら Basic と記述します。
Require アクセスを許可するユーザーやグループを記述する。
valid-user は認証された全てのユーザー にアクセスを許可します。

設定を反映させるにApacheの再起動を行います。
# /etc/init.d/apache2 restart

Index
Basic認証の設定(ファイル認証)
Basic認証の設定(DB認証)
ApacheでのSSLの設定
SSIの設定と利用