少数のプライベート グループがアクセスするドメインがあります。だから私は認証を介してアクセスを制御したい。
ドメインには、それぞれ独自のサブドメインを持つアプリケーションのコレクションがインストールされています。例: domain.com、app1.domain.com、app2.domain.com、app3.domain.com
アプリケーションごとに自分自身を認証する必要がないように、シングル サインオン ソリューションがあればいいのにと思います。また、アプリケーションはさまざまな言語 (PHP、Python、および Perl) で記述されているため、Apache モジュールを介してユーザーを認証することが理想的です。
認証をダイジェストするのは初めてですが、良い解決策のようです。私はhtdigest
自分のユーザーを作成するために使用しました。ドメインとサブドメインを構成しました (以下を参照)。
ドメインまたはサブドメインのいずれかにアクセスすると、ユーザー名とパスワードの入力を求められます。正しいユーザー名とパスワードを入力すると、認証されてページが読み込まれます。ただし、別のサブドメインに移動すると、ユーザー名とパスワードを再度入力するよう求められます。同じユーザー名とパスワードを入力すると、機能します。
したがって、パスワード ファイルは問題なく、認証も問題ありませんが、問題は の構成にあるようですAuthDigestDomain
。
複数のドメインでダイジェスト認証を使用する例を見つけるためにネット全体を検索しましたが、問題を解決する具体的な例が見つかりません。
ここの誰かが助けてくれることを願っています。すべての に同じ認証情報を入れDirectory
ますか? Directory
またはLocation
またはを使用する必要がありFiles
ますか? 一緒に何かを逃したことがありますか?
前もって感謝します!
以下は、私の Apache 構成の domain.com の例です。
<Directory /var/www>
AuthType Digest
AuthName "realm"
AuthDigestAlgorithm MD5
AuthDigestDomain / http://domain.com/ http://app1.domain.com/ http://app2.domain.com/ http://app3.domain.com/
AuthDigestNcCheck Off
AuthDigestNonceLifetime 0
AuthDigestQop auth
AuthDigestProvider file
AuthUserFile /etc/apache2/.htpasswd-digest
AuthGroupFile /dev/null
Require valid-user
</Directory>
次に、app1.domain.com の例を示します。
<Directory /var/lib/app1>
AuthType Digest
AuthName "realm"
AuthDigestAlgorithm MD5
AuthDigestDomain / http://domain.com/ http://app1.domain.com/ http://app2.domain.com/ http://app3.domain.com/
AuthDigestNcCheck Off
AuthDigestNonceLifetime 0
AuthDigestQop auth
AuthDigestProvider file
AuthUserFile /etc/apache2/.htpasswd-digest
AuthGroupFile /dev/null
Require valid-user
</Directory>
さらに厄介なことに、これは IE6 を使用している場合には機能しますが、Firefox や Chrome では機能しません。クライアントが認証を適切に送信していないのでしょうか、それともサーバーが正しい資格情報を送信していないのでしょうか?
また、 RFC 2617を読み、PHP を使用して認証ヘッダーを作成し、要求/応答チャレンジが正しいことを確認しました。これはまったく役に立ちませんでした!