Apacheによるベーシック認証

メモ:

ベーシック認証の仕組みについては、別のページ:ベーシック認証を参照してください。

ユーザー管理ファイルの作成

ベーシック認証を行うには、ユーザー名とパスワードをセットにした管理ファイルを作成する必要があります。ファイルの作成及びユーザーの登録には、htpasswdというプログラムを使用します。

新規にユーザー管理ファイルを作成する場合、オプションに-cを付けて実行します。

# htpasswd -c /home/webadmin/.htpasswd bnote
New password:
Re-type new password:
Adding password for user bnote

これ以降、ユーザーを追加する場合は、オプションを指定しないで実行します。また、パスワードを変更したい場合、も同様に実行することでパスワードのみ更新されます。

# htpasswd /home/webadmin/.htpasswd bbb
New password:
Re-type new password:
Adding password for user bbb

ユーザー管理ファイルの作成は、セキュリティ上Webサイトとして公開していないディレクトリにすることをお勧めします。

グループを作成するには

グループを作成するには、別途グループ管理用のファイルを作成します。例えば、.thgroupといったファイルを作成します。

ファイル名や保存場所は、任意に設定します。

グループを設定するには、次のようにグループ名とそこに所属するユーザーをスペースで区切って指定します。

グループ名:ユーザー名 ユーザー名 ユーザー名

グループに所属するユーザーの数に制限はなく、1人のユーザーを複数のグループに所属させても構いません。

認証制限の設定

ユーザーの設定ができたところで認証制限の設定をします。

httpd.confのDirectoryディレクティブか各ディレクトリに保存する.htaccessに認証の設定をします。設定内容は、どちらも同じなのでここでは、.htaccessを例に紹介します。

まず、Apacheの設定ファイルhttpd.confのAllowOverrideを確認します。これは、.htaccessが見つかった時の動作を指定します。

例えば、認証のみを上書きするようにするには次のように設定します。

<Directory "/home/webadmin/htdocs">
    AllowOverride AuthConfig
</Directory>

AllowOverrideには、次の値が指定できます。

None
上書きを許しません。
ALL
全ての種類の設定について上書きを許します。
AuthConfig
認証に関する設定について上書きを許します。
Limit
ホスト名やIP addressによるアクセス制御の上書きを許します。
Options
Options指定子で設定する機能について上書きを許します。
FileInfo
ディレクトリ表示の設定について上書きを許します。

次にユーザー認証したいディレクトリに.htaccessというファイルを作成します。

.htaccessは、次のように設定します。

AuthUserFile    /home/webadmin/.htpasswd
AuthGroupFile   /dev/null
AuthName        "Please Enter Your Password"
AuthType        Basic
Require valid-user

指定する項目は、次のようになります。

AuthUserFile
作成したユーザー管理ファイル(パスワードファイル)を指定します。
AuthGroupFile
作成したグループファイルを指定します。利用しない場合は、「/dev/null」を指定します。
AuthName
認証画面に表示されるメッセージを指定します。
AuthType
認証方式を指定します。ベーシック認証の場合、「Basic」、ダイジェスト認証の場合、「Digest」と指定します。
Require
この制限で、アクセスを許可するユーザーやグループを指定します。「valid-user」の場合、パスワードファイルに含まれるすべてのユーザーを許可します。個別に指定する場合、アクセスを許可するユーザー名やグループ名をスペースで区切って指定します。

以上でベーシック認証が行えるようになります。