5

Apache アクティブ ディレクトリ環境で mod_auth_kerb を介して SSO を実装しましたが、期待どおりに動作します。ただし、次の知識が私を悩ませています:

2 台のクライアント マシンから Kerberos で保護されたページを要求しました。1 人のユーザーは Kerberos セットアップ ドメインに属し、もう 1 人のユーザーは他のドメインに属していました。次に、2 台のマシンの HTTP パケットを比較しました。両方のマシンで、Kerberos で保護されたページの要求が送信された後、サーバーは次の HTTP パケットで応答します。

HTTP/1.1 401 Authorization Required Date: Wed, 05 Sep 2012 14:25:20 GMT Server: Apache WWW-Authenticate : ネゴシエート WWW-認証: Basic realm="Kerberos Login" Content-Length: 60 Connection: close Content-Type: text/html; charset=iso-8859-1

ただし、サーバーからの上記の応答の後、Kerberos-setup ドメインに属するクライアント マシンのブラウザーはWWW-Authenticate : Negotiate 'token'で応答しますが、他のクライアント ブラウザー (他のドメインに属するユーザー) はまったく応答しません。 .

私の理解では、他のドメインに属するクライアントも独自の TGT+Session キー トークンで応答する必要があり、Active Directory はこれを拒否する必要がありました。しかし、なぜこのクライアントがサーバーのWWW-Authenticate : Negotiateチャレンジにまったく応答しないのかは、私の論理を超えています。さらにややこしいのは、サーバーの HTTP 応答 (上記) に、リンク先のドメインに関する情報が含まれていないことです。

では、正しいドメインに属するクライアント ブラウザが、サーバーのWWW-Authenticate : Negotiateチャレンジに応答する必要があると判断する根拠と、他のドメインに属するクライアントが応答しないと判断する根拠は何ですか?

注 : 両方のクライアント マシンに Windows 7 があり、アクティブ ディレクトリは Windows 2008 サーバーです。

mod_auth_kerb の SSO の実装を理解しようとしていますが、この特定の知識がその鍵となります。

4

1 に答える 1

0

モジュールのオプションKrbMethodK5Passwdがオンになっています。Basic ヘッダーを送信して、Kerberos 資格情報を収集します。これは、ドメイン以外のクライアントには無意味です。このオプションを無効にします。

認証メカニズムの強みには階層があり、ブラウザは最良のものを選択する義務があります。これは、ネゴシエート、ダイジェスト、NTLM、基本です。

于 2012-09-05T20:31:27.337 に答える