私はWindowsクライアントとJBossを使ってSSOを実装しようとしています。自分の開発PCを所有している、JBossはWindows 7上で、開発サーバー上では(Red Hat)Linux上で動作します。IEがLinux上のJBossにKerberosチケット情報を送信しないのはなぜですか?
ネイキューヘッダーが正しく到着しているかどうかを確認できるJBoss Negotiation Toolkitがあります。
localhost
を使用して自分のPCでJBossを実行している限り、BasicNegotiation
のテストは正常に動作します。 YHgGBisGAQUFAqBuMGygMDAuBgorBgEEAYI3AgIKをネゴシエート...
Authorization: Negotiate YHgGBisGAQUFAqBuMGygMDAuBgorBgEEAYI3AgIKB...
(プラスいくつかのより多くのバイト)
テストの応答が
交渉ツールキット 基本的な交渉 WWW認証であります
NegTokenInit メッセージOid - SPNEGO のメカタイプ - {NTLM} {ケルベロスV5レガシー} {のKerberos V5} {} 1.3.6.1.4.1.311.2.2.30 必須フラグ - メカトークン-TlRMTVNTUAABAAAAl7II4gQABAAyAAAACgAKACgAAAAGAbAdAAAAD0lQSUVWMTAwMjVJUElF メカリストマイク -
しかし、上Linuxサーバーでは、同じテストは機能しません。基本理由は(私が推測する)ヘッダが違って見えるということです。
Authorization: Negotiate TlRMTVNTUAABAAAAl4II4gAAAAAAAAAAAAAAAAAAAAAGAbAdAAAADw==
そして、JBossの交渉Toolkitは私が欲しいととして表示されていないNTML認証にフォールバックしますWebアプリケーションの出力にエラーがあります。
交渉ツールキット NTLMネゴシエーション WWW認証 - TlRMTVNTUAABAAAAl4II4gAAAAAAAAAAAAAAAAAAAAAGAbAdAAAADwの==に
NTLMネゴシエート - Negotiate_Message 警告、これはNTLMである、唯一のSPNEGOがサポートされています! ネゴシエーションフラグ - (encryption56Bit)(explicitKeyExchange)(sessionKeyExchange128Bit) negotiateVersion)(ntlm)(ntlm)(lmKey)(lmKey)(sign)(requestTarget)(oem)(unicode) ドメイン名= null - {length = 0 } {maxLength = 0} {offset = 0} ワークステーション名= null - {length = 0} {maxLength = 0} {offset = 0}
私は、Internet ExplorerとFirefoxの両方でNegotiationヘッダーを送信するように設定しましたが、両方ともLinuxサーバーで失敗します。
私は間違っていますか?
ところで、私はWindowsがローカルマシン上でKerberosネゴシエーションヘッダーを常に送信しているところを読んでいます - それは本当ですか?