ベーシック認証を設定する(AuthType)

広告

特定のディレクトリ内のファイルやURLに対してユーザー名とパスワードによるベーシック認証を設定する方法を確認します。認証の設定には多くの設定が必要になりますので1つ1つ確認していきます。

AuthType 認証方式
AuthName 認証領域
AuthUserFile パスワードファイル

Apacheで利用可能な認証方式は基本認証(Basic)かダイジェスト認証(Digest)です。まずはどちらの認証方式を使うのかを「AuthType」に設定します。基本認証を使う場合の設定は以下の通りです。

AuthType Basic

次に認証用の領域名を指定します。これは認証を区別するためのもので認証の際に領域名が同じだった場合にはブラウザは同じ「Authorization」ヘッダーを送ってきます。(詳細は別に記述します)。

この領域名に記述した文字列が認証ダイアログボックスに表示される文字列となります。「ユーザー名とパスワードを入力して下さい」と表示する場合には次のように記述します。(結果としてそうなりますが、本来の意味は領域名になるので認証ごとで異なる文字列にすることが望ましいと思われます)。

AuthName "ユーザー名とパスワードを入力して下さい"

次にユーザー認証用のユーザー名とパスワードが登録されているファイルを「AuthUserFile」で指定します。今回パスワードファイルを「D:¥Apache Group¥passfile¥passwd」とします。

AuthUserFile "D:/Apache Group/passfile/passwd"

許可するユーザーの指定

認証が通ったユーザー全員にアクセスを許可することも出来ますし、許可するユーザーを指定することも出来ます(認証が通った上で許可ユーザーと一致する必要がある)。許可ユーザーの設定には「Require」を使います。

Require オプション ユーザー名1 ユーザー名2 ・・・

まずオプションには「user」又は「group」を指定します。許可の対象がユーザー単位であれば「user」をグループ単位であれば「group」を指定します。(※グループについては別のページで詳しく見ていきます)。

そして許可するユーザー名を空白で区切って列挙していきます。例えば許可するユーザーを「yamada」「satou」「furuta」の3つにする場合は次のようになります。

Require user yamada satou furuta

また認証が通った全ユーザーに対してアクセスを許可する場合は次のように記述します。

Require valid-user

このようにユーザー名やグループでアクセスを許可することで、パスワードファイルは全体で1つだけ作成しておき、その上で個別のディレクトリ毎にアクセスを許可するユーザーやグループを指定することが出来ます。

認証ダイアログの表示

それではパスワードファイルの作成を行う前に、認証ダイアログが表示されるところまでを確認しておきます。

今回ドキュメントルートの中に「staffonly」と言うディレクトリを作成しベーシック認証を設定します。下記を「httpd.conf」のどこかに追加で記述して下さい。

<Directory "D:/Apache Group/Apache2.2/htdocs/staffonly">
    AuthType Basic
    AuthName "ユーザー名とパスワードを入力して下さい"
    AuthUserFile "D:/Apache Group/passfile/passwd"
    Require valid-user
</Directory>

それではApacheを再起動してから「http://localhost/staffonly/staff.html」にアクセスします。(staff.htmlはテスト用の適当なHTMLファイルです)。

ベーシック認証

認証ダイアログが表示され、ユーザー名とパスワードの入力が求められます。

では次のページで、ユーザー名とパスワードを登録するパスワードファイルの作成について見ていきます。

Apache入門の他の記事を見てみる

( Written by Tatsuo Ikura )