5

Windows クライアントと JBoss を使用して SSO を実装しようとしています。私の開発用 PC を所有しています。JBoss は Windows 7 で実行され、開発サーバーでは (Red Hat) Linux で実行されます。

Negiation ヘッダーが正しく到着しているかどうかを確認できるJBoss Negotiation Toolkitがあります。

BasicNegotiationを使用して自分の PC で JBoss を実行している限り、テストは正常に機能しますlocalhost。送信されたヘッダーは

Authorization: Negotiate YHgGBisGAQUFAqBuMGygMDAuBgorBgEEAYI3AgIKB...(さらにいくつかのバイト)

テストの応答は、

Negotiation Toolkit Basic Negotiation WWW-Authenticate - Negotiate YHgGBisGAQUFAqBuMGygMDAuBgorBgEEAYI3AgIK...

NegTokenInit Message Oid - SPNEGO Mech Types - {NTLM} {Kerberos V5 Legacy} {Kerberos V5} {1.3.6.1.4.1.311.2.2.30} Req Flags - Mech Token -TlRMTVNTUAABAAAAl7II4gQABAAyAAAACgAKACgAAAAGAbAdAAAAD0lQSUVWMTAwMjVJUElF Mech List Mic -

しかし、Linux サーバーでは、同じテストは機能しません。基本的な理由 (推測) は、ヘッダーが異なって見えることです。

Authorization: Negotiate TlRMTVNTUAABAAAAl4II4gAAAAAAAAAAAAAAAAAAAAAGAbAdAAAADw==

そして、JBoss Negotiation Toolkit は NTML 認証にフォールバックしますが、これは望ましくなく、webapp の出力にエラーとして表示されます。

ネゴシエーション ツールキット NTLM ネゴシエーション WWW-認証 - ネゴシエート TlRMTVNTUAABAAAAl4II4gAAAAAAAAAAAAAAAAAAAAAGAbAdAAAADw==

NTLM - Negotiate_Message 警告、これは NTLM です。SPNEGO のみがサポートされています! ネゴシエート フラグ - (encryption56Bit)(explicitKeyExchange)(sessionKeyExchange128Bit)negoteVersion)(ntlm2)(alwaysSign)(ntlm)(lmKey)(sign)(requestTarget)(oem)(unicode) ドメイン名 = null - {length=0}{maxLength =0}{offset=0} ワークステーション名 = null - {length=0}{maxLength=0}{offset=0} バージョン - ?

Negotiation ヘッダーを送信するように Internet Explorer と Firefox の両方を構成しましたが、どちらも Linux サーバーで失敗します。

私は何を間違っていますか?

ところで、Windows は常にローカル マシンで Kerberos ネゴシエーション ヘッダーを送信するとどこかで読みましたが、本当ですか?

4

4 に答える 4

2

答えてくれてありがとう。私たちの場合、問題は 2 つの Windows ドメインがあることでした。ドメイン B の Windows ブラウザーを使用して、ドメイン A の Linux サーバーにアクセスしようとしていました。明らかに、それは機能しません...

于 2013-07-22T10:16:02.180 に答える