为什么IE不在Linux上向我的JBoss发送Kerberos票证信息?

eer*_*icc 5 jboss internet-explorer kerberos spnego

我正在尝试使用Windows客户端和JBoss实现SSO.拥有我的开发PC,JBoss在Windows 7上运行,在开发服务器上运行,它运行在(Red Hat)Linux上.

有一个JBoss Negotiation Toolkit,它允许我检查Negiation标头是否正确到达.

BasicNegotiation只要我在自己的PC上运行JBoss ,测试就可以正常使用localhost.发送的标题是

Authorization: Negotiate YHgGBisGAQUFAqBuMGygMDAuBgorBgEEAYI3AgIKB... (加上一些字节)

测试的反应是

谈判工具包基本谈判WWW-认证 - 谈判YHgGBisGAQUFAqBuMGygMDAuBgorBgEEAYI3AgIK ...

NegTokenInit信息的Oid - SPNEGO机甲类型 - {NTLM} {使用Kerberos v5传统} {使用Kerberos v5} {} 1.3.6.1.4.1.311.2.2.30标志询价 - 机甲令牌-TlRMTVNTUAABAAAAl7II4gQABAAyAAAACgAKACgAAAAGAbAdAAAAD0lQSUVWMTAwMjVJUElF机甲名单麦克风 -

但是在Linux服务器上,相同的测试不起作用.基本原因(我猜)是标题看起来不同:

Authorization: Negotiate TlRMTVNTUAABAAAAl4II4gAAAAAAAAAAAAAAAAAAAAAGAbAdAAAADw==

然后JBoss Negotiation Toolkit回退到NTML身份验证,这是我不想要的,并且在webapp的输出中显示为错误.

谈判工具包NTLM谈判WWW-认证 - 谈判TlRMTVNTUAABAAAAl4II4gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADA ==

NTLM - Negotiate_Message警告,这是NTLM,仅支持SPNEGO!协商标志 - (encryption56Bit)(explicitKeyExchange)(sessionKeyExchange128Bit)negotiateVersion)(ntlm2)(alwaysSign)(ntlm)(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 Negotiation标头 - 这是真的吗?

eer*_*icc 2

感谢您的回答。在我们的例子中,问题是我们有两个 Windows 域。我试图用域 B 中的 Windows 浏览器访问域 A 中的 Linux 服务器。显然,这是行不通的...