Directoryディレクティブ で Basic認証 を設定
Apache 2.2.2 | FedoraCore 5 |
1.Directory に Basic認証 を適用
ここでは Directory に Basic認証 の設定を行う手順を説明します。 Basic認証 を設定すれば、 Apache 経由でその Directory にアクセスしてくるユーザに対しダイアログを表示してユーザ認証を行うことができます。ホームページにメンバーページを用意する場合などに使用します。ただしダイアログに入力したユーザ名とパスワードは暗号化されないでネットワークに流れるので、SSL などの暗号化と組み合わせて使用するのが一般的な様です。
説明では、Apache の IPアドレス を "192.168.100.10" として、 Basic認証用のウェブページ "/member-only/index.php" を用意しました。公開ディレクトリのルートは "/usr/local/apache2/htdocs/" に設定しています。また、動作確認用のウェブページ "/no-member/index.php" も用意しておきました。 このページの下に「(参考)」として準備の手順を載せておいたので、 Basic認証 を設定する Directory をまだ用意していない場合は参考にしてください。
2.Directory への Basic認証 設定手順
2-1.httpd.conf 編集準備
Basic認証 の設定は Apache の設定ファイル httpd.conf に行います。 httpd.conf は Apache がインストールされたディレクトリの conf にあります。 「cd (Apache がインストールされたディレクトリ)/conf」と入力して httpd.conf が置かれたディレクトリに移動します。 その中にある httpd.conf を編集できるユーザで エディタを使って開きます。 viエディタ を使う場合は 「vi httpd.conf」 と入力します。
$ cd /usr/local/apache2/conf
$ su
Password:
# vi httpd.conf
#
2-2.httpd.conf に Basic認証 の設定を追加
http.conf の任意の場所に Directory タグを追加して Basic認証 を設定します。今回は以下の設定を行いました。
<Directory /usr/local/apache2/htdocs/member-only>
AuthType Basic
AuthName "Member Area"
AuthUserFile /home/profaim/.apacheMembers
<Limit GET POST>
Require valid-user
</Limit>
</Directory>
[Directory]
Directory には認証をさせるディレクトリを指定します。ここで指定したディレクトリ以下のサブディレクトリを含む領域のファイル全てが認証の対象となります。ディレクトリはファイルシステムのパスを絶対パスで指定します。
[AuthType]
AuthType には認証方式を指定します。 Basic認証を行うので "Basic" で固定です。
[AuthName]
AuthName は認証されるこのDirectory領域の名前を指定します。任意の名前を指定します。
[AuthUserFile]
AuthUserFile には Basic認証用に作成したパスワードファイルのパスを指定します。パスワードファイルはファイルシステムの絶対パスで指定します。Basic認証 用のパスワードファイルを作成する方法は Apache Basic認証用ユーザ作成
が参考になると思います。
[<Limit>]
<Limit GET POST>はウェブページを参照するGETまたはPOSTメソッドに対して制限をかけるという宣言です。どういう制限かというと<Limit>から</Limit>で囲まれた部分のRequire valid-userです。これは認証されたユーザが必要だという意味です。このDirectoryには認証されたユーザのみが GET POST でページを参照できるようになります。
2-3.設定を反映する
httpd.conf を編集したら Apache を再起動します。 「cd (Apache がインストールされたディレクトリ)/bin」と入力して Apache の実行ファイルが置かれたディレクトリに移動します。「./apachectl restart」と入力して Apache を再起動します。
# cd /usr/local/apache2/bin
# ./apachectl restart
#
3.動作確認
3-1.Basic認証 を適用していないページへのアクセスウェブブラウザを起動して、Basic認証の設定を行わなかったウェブページの URL を指定します。指定したウェブページが表示されることが確認できます。 |
3-2.Basic認証 を適用したページへのアクセス今度はウェブブラウザを起動して、Basic認証を設定したディレクトリ内にあるウェブページの URL を指定します。 Basic認証 の設定が正しく行われていれば、 ユーザ認証をするためのダイアログが表示されます。 |
Basic認証 の設定で指定したパスワードファイルに登録されたユーザとパスワードを入力すれば、指定したウェブページが表示されます。 |
以上で Basic認証 の設定と動作確認は完了です。
(参考)動作確認用ウェブページの準備
確認用のウェブページとして、"/no-member/index.html" と "/member-only/index.html" でアクセスできる2つのウェブページを作成しました。 まずApache の公開ディレクトリが "/usr/local/apache2/htdocs" だったので、"/usr/local/apache2/htdocs" に "no-member" と "member-only" の2つのディレクトリを作成しました。
# cd /usr/local/apache2/htdocs
# mkdir no-member
# mkdir member-only
作成した "no-member" ディレクトリの中には "index.html" というファイルを以下の内容で作成しました。
<html>
<head>
<title>No Member</title>
</head>
<body>
<p>ViewPage</p>
</body>
</html>
作成した "member-only" ディレクトリの中には "index.html" というファイルを以下の内容で作成しました。
<html>
<head>
<title>Member Only</title>
</head>
<body>
<p>MemberPage</p>
</body>
</html>
以上で準備は完了です。作成したファイルは Apache から読み込めるように パーミッションを指定しておく必要があります。
Apache(Webサーバ) |
Apacheセットアップ(Linux) |
Apacheダウンロード |
APRダウンロード |
ApacheSource転送 |
APR Source 転送 |
Apacheインストール |
Apache 設定(Linux) |
実行ユーザを指定 |
Apache + PHP(Linux) |
複数バージョンのPHPを混在 |
Apache Basic認証 |
認証用ユーザ作成 |
Directoryで認証設定 |
Locationで認証設定 |
Apache Digest認証 |
認証用ユーザ作成 |
Directoryで認証設定 |
Locationで認証設定 |
PR |
検索 |