7

Microsoft が利用している 2 つの WWW-Authenticate 追加機能は、私が現在認識しているものです。

  • NTLM
  • 交渉

Negotiate がサーバーから送信されると、一連の条件に基づいて Kerberos が使用されます

  • イントラネット ゾーン
  • IP ではなくホスト名を使用してサーバーにアクセスする
  • IE の統合 Windows 認証が有効で、ホストが Firefox で信頼されている
  • サーバーはブラウザに対してローカルではありません
  • クライアントの Kerberos システムがドメイン コントローラーに対して認証されている

次に、サーバーとクライアントの間で Kerberos が試行されます。上記の条件が満たされない場合は、NTLM が試行されます。

私の質問は、サーバーが NTLM を送信してはならないことを示す方法はありますか? 私は現在、セッション内のリクエストを追跡することでこれを処理しており、NTLM メッセージを受信した場合、そのセッションの残りの期間、Kerberos と WWW 認証を無効にしています。

4

3 に答える 3

3

最初のWWW-Authenticateヘッダーは。のみを指定しますnegotiate「NTLMなし」など、これ以上何も言えません。

クライアントから送信された最初のAuthenticate:{Base64 NTLMSSP}ヘッダーに応答することは可能だと思います401 unauthorized。2番目のNegotiateヘッダーには、応答トークンを含めることができます。これには、SupportedMechanismsKerberosのみを指定するものが含まれる場合があります。

"unauthorized"しかし、そもそもNTLMにフォールバックしていたので、それだけでうまくいくのではないかと思います。

于 2009-06-11T03:49:08.270 に答える
3

はい、できます。SPNEGO HTTP サーブレット フィルター プロジェクトのリファレンス ドキュメントをご覧ください。

于 2009-11-04T16:28:40.500 に答える
2

あなたはそれを行うことができます、(少なくとも理論的には)はい。IEは、適切なSPNEGO ASN.1カプセル化なしでKerberosトークンを送信するなど、まったく奇妙なことを行う可能性がありますが、それは別のトピックです。準拠するSPNEGO(https://www.rfc-editor.org/rfc/rfc4178#section-4.1)の実装では、それを行うことができます。

NegTokenInit mechTypesメンバーを操作してKerberosのみを含めることができる場合、クライアントはKerberosを送信するか、認証に失敗します。

于 2009-10-23T12:53:31.947 に答える