グループ単位での認証
「Require」を使ってアクセスを許可するユーザーを設定する場合、数が少ない場合はユーザーを列挙しても構いませんが事前にユーザーをグループに登録しておき、グループ単位でアクセスを許可することが可能です。するとグループに含まれるユーザーは認証が通ればアクセスが許可されることになります。
まずグループ名とそのグループに所属するユーザーを記述するグループファイルを作成します。
グループファイルの作成
パスワードファイルの場合はApacheで「htpasswd.exe」と言うツールが用意されていましたが、グループファイルにはそういったツールは用意されていません。グループファイルは単なるテキストファイルのため、テキストエディタで1から記述していきます。
グループ名1: ユーザー名1 ユーザー名2 ユーザー名3 ... グループ名2: ユーザー名1 ユーザー名4 ...
グループファイルには登録するグループ毎に1行で記述していきます。グループ名の後にコロン(:)で区切ってグループに登録するユーザー名を記述します。ユーザー名は空白で区切って続けて記述して下さい。
今回グループファイル名は 「D:¥Apache Group¥passfile¥group」とします。今回作成したグループファイルは次の通りです。
staff: yamada tanaka suzuki sales: yamada suzuki other: uchida
AuthGroupFileの指定
次に「httpd.conf」ファイルの記述です。「AuthGroupFile」を使ってグループファイル名を指定します。
AuthGroupFile グループファイル
先ほど作成したグループファイルを指定する場合には次のようになります。
AuthGroupFile "D:/Apache Group/passfile/group"
httpd.confでの記述方法
グループファイルと言うのはあくまでユーザーをまとめて管理するためだけのものですので、認証はあくまでユーザー単位で行われます。その為、「AuthGroupFile」はユーザーでの認証のための一連の記述の中の一つとして記述します。
<Directory "D:/Apache Group/Apache2.2/htdocs/staffonly"> AuthType Basic AuthName "ユーザー名とパスワードを入力して下さい" AuthUserFile "D:/Apache Group/passfile/passwd" AuthGroupFile "D:/Apache Group/passfile/group" Require group staff sales </Directory>
「Require」についてはオプションに「group」を指定し、その後でアクセスを許可するグループを空白で区切って記述します。
では実際に試して見ます。「httpd.conf」に先ほどの設定を書き込んで下さい。(※以前のサンプルで同じディレクトリに対してユーザー名による認証が記述されている場合は書き換えて下さい)。その後で認証が設定されているディレクトリに含まれる「http://localhost/staffonly/staff.html」に対してブラウザからアクセスします。
グループ名による認証を設定した場合でもブラウザで表示される認証ダイアログは同じです。アクセス許可が設定されてるグループに含まれるユーザー名で認証が通れば該当のページが表示されます。
( Written by Tatsuo Ikura )