Locationディレクティブ で Digest認証 を設定
Apache 2.2.2 | FedoraCore 5 |
1.Location に Digest認証 を適用
ここでは Location に Digest認証 の設定を行う手順を説明します。 Digest認証 を設定すれば、 Location に定義した URL にアクセスしてくるユーザに対しダイアログを表示してユーザ認証を行うことができます。Digest認証 ではパスワードが暗号化されてネットワークに流れるので、パスワードが通信経路で盗聴されてしまうことはありません。ただし、Digest認証 をサポートしているウェブブラウザは Internet Explorer 5.0以降や、Netscape 7.0以降、 Firefox などということなので、どのブラウザからアクセスされるかわからない状況では使用は避けた方が良さそうです。
Location は通常ファイルシステム外のコンテンツに対して使用します。ファイルシステムのディレクトリに対して Digest認証 を適用する場合は Directoryディレクティブ を使用します。 Directory に Digest認証 を適用する手順は Directoryディレクティブ で Digest認証 を設定 が参考になると思います。
今回は既に Subversion 公開の設定が httpd.conf に記述されているとして、これに Digest 認証の設定を追加します。以下が事前に準備しておいた環境です。
設定項目 | 設定値 |
Apache のインストールディレクトリ | /usr/local/apache2 |
Subversion リポジトリのパス | /home/profaim/repository/testRep |
Subversion のリポジトリにアクセスする URL | http://testserver/repository/test |
Digest認証 に使用するパスワードファイル | /home/profaim/pass/.DigestFile |
パスワードファイルに登録されたユーザ | profaim-user1 |
登録ユーザのパスワード | test |
登録ユーザがアクセスできる領域 | profaim-test-member |
以下は Digest認証 を追加する前の設定内容です。 Subversionリポジトリのパスを URL を指定してアクセスするための設定です。 Subversion のリポジトリ作成方法と Apache での公開手順については Subversion リポジトリを Apache で公開する が参考になると思います。
<Location /repository/test>
DAV svn
SVNPath /home/profaim/repository/testRep
</Location>
2.Location への Digest認証 設定手順
2-1.httpd.conf 編集準備
Digest認証 の設定は 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 に Digest認証 の設定を追加
http.conf の任意の場所に Directory タグを追加して Basic認証 を設定します。今回は以下の設定を行いました。以下は追加した部分の説明です。
<Location /repository/test>
DAV svn
SVNPath /home/profaim/repository/testRep
AuthType Digest
AuthName "profaim-test-member"
AuthUserFile /home/profaim/pass/.DigestFile
Require valid-user
</Location>
[AuthType]
AuthType には認証方式を指定します。 Digest認証を行うので "Digest" で固定です。
[AuthName]
AuthName は認証されるこのLocation領域の名前を指定します。任意の名前を指定できますが、Digest認証 の場合はユーザの登録時に領域名も指定しているので、それに合わせる必要があります。
[AuthUserFile]
AuthUserFile には Digest認証用に作成したパスワードファイルのパスを指定します。パスワードファイルはファイルシステムの絶対パスで指定します。Digest認証 用のパスワードファイルを作成する方法は Apache Digest認証用ユーザ作成
が参考になると思います。
[Require valid-user]
このLocationには認証されたユーザのみアクセス可能であるという宣言です。 <Limit> や <LimitExcept> ディレクティブを使用してメソッド毎の認証制御を書くこともできます。
2-3.設定を反映する
httpd.conf を編集したら Apache を再起動します。 「cd (Apache がインストールされたディレクトリ)/bin」と入力して Apache の実行ファイルが置かれたディレクトリに移動します。「./apachectl restart」と入力して Apache を再起動します。
# cd /usr/local/apache2/bin
# ./apachectl restart
#
3.動作確認
3-1.ウェブブラウザからリポジトリへアクセスウェブブラウザを起動して、Location で設定した Subversion リポジトリへの URL を入力します(今回は http://testserver/repository/test)。 Digest認証 の設定が正しく行われていれば、 ユーザ認証をするためのダイアログが表示されます。 |
パスワードファイルに登録したユーザとパスワードを入力すれば、URL の内容が表示されます。 ※Location で何を指定したかによって右の表示は変わってきます。 |
以上で Location による Digest認証 の設定と動作確認は完了です。
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 |
検索 |