Apache | アクセス権限 | 基本認証の設定(AuthType)
認証設定
特定のディレクトリにあるファイルやURLに対して、ユーザー名とパスワードによる基本認証を構成する方法を説明する。認証設定には多くの設定が必要なため、一つずつ説明する。
AuthType 認証方式
AuthName 認証領域
AuthUserFile パスワードファイル
Apacheで使用できる認証方式は、基本認証(Basic)またはダイジェスト認証(Digest)である。まず、どの認証方式を使用するかをAuthTypeで設定する。基本認証を使用する場合の設定は次のとおりである。
AuthType Basic
次に、認証領域名を指定する。これは認証を区別するためのもので、認証時に領域名が同じであれば、ブラウザは同じAuthorizationヘッダーを送信する。
この領域名に記述した文字列が認証ダイアログに表示される文字列である。「ユーザー名とパスワードを入力してください。」と表示したい場合は、次のように記述する。ただし、本来の意味は領域名であるため、認証ごとに異なる文字列にするのが望ましい。ブラウザによっては表示されない場合もある。
AuthName "사용자명과 비밀번호를 입력하세요."
次に、ユーザー認証のためのユーザー名とパスワードが登録されているファイルをAuthUserFileで指定する。今回のパスワードファイルはC:\apache\passwd\passfileとする。
AuthUserFile "C:/apache/password/pw"
許可するユーザーを指定する
認証を通過したすべてのユーザーにアクセスを許可することもでき、許可するユーザーを指定することもできる。認証を通過し、かつ権限のあるユーザーと一致する必要がある。許可ユーザーの設定にはRequireを使用する。
Require オプション ユーザー名1 ユーザー名2 ...
オプションにはuserまたはgroupを指定する。許可の対象がユーザー単位ならuser、グループ単位ならgroupを指定する。
そして、許可するユーザー名を空白で区切って記述する。たとえば許可するユーザーをdevkuma、kimkc、araikumaの3つにする場合は次のようにする。
Require user devkuma kimkc araikuma
認証を通過したすべてのユーザーのアクセスを許可するには、次のように記述する。
Require valid-user
このように、ユーザー名やグループのアクセス許可に使うパスワードファイル全体を1つ作成しておき、そのうえでディレクトリごとにアクセスを許可するユーザーやグループを指定できる。
認証ダイアログの表示
では、パスワードファイルを作成する前に、認証ダイアログが表示されるところまで確認する。
まず、ドキュメントルートにadminというディレクトリを作成し、admin.htmlを作成する。
<html>
<body>
<h1>Admin</h1>
This is Admin page.
</body>
</html>
そして基本認証を設定する。次の内容をhttpd.confのどこかに追加する。
<Directory "${SRVROOT}/htdocs/admin">
AuthType Basic
AuthName "사용자명과 비밀번호를 입력하세요."
AuthUserFile "C:/apache/passwd/passfile"
Require valid-user
</Directory>
Apacheを再起動し、http://localhost/admin/admin.htmlにアクセスする。
Chromeで接続した場合

Microsoft Edgeで接続した場合

ユーザー名とパスワードの入力を求める認証ダイアログが表示された。
次のページでは、ユーザー名とパスワードを登録するパスワードファイルの作成について説明する。