Internet explorer 为什么IE不在Linux上将Kerberos票证信息发送到我的JBoss?

Internet explorer 为什么IE不在Linux上将Kerberos票证信息发送到我的JBoss?,internet-explorer,jboss,kerberos,spnego,Internet Explorer,Jboss,Kerberos,Spnego,我正在尝试使用Windows客户端和JBoss实现SSO。拥有我的开发PC,JBoss运行在Windows 7上,在开发服务器上,它运行在(Red Hat)Linux上 有一个允许我检查Negation标头是否正确到达的 只要我在自己的PC上使用本地主机运行JBoss,BasicNegotiation测试就可以正常工作。发送的头是 授权:协商YHGBisgaqufaqbumgymgmdaubgorgeeayi3agikb…(再加上一些字节) 测试的响应是 谈判工具包 基本谈判 WWW认证-协商Y

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

有一个允许我检查Negation标头是否正确到达的

只要我在自己的PC上使用本地主机运行JBoss,
BasicNegotiation
测试就可以正常工作。发送的头是

授权:协商YHGBisgaqufaqbumgymgmdaubgorgeeayi3agikb…
(再加上一些字节)

测试的响应是

谈判工具包 基本谈判 WWW认证-协商YHGBisgaqufaqbumgmgmdaubgorbgeayi3agik

NegTokenInit 消息Oid-SPNEGO Mech类型{NTLM}{Kerberos V5遗留版本}{Kerberos V5}{1.3.6.1.4.1.311.2.2.30} 请求标志- 机械代币-TLRMTVntuaabaaal7II4GQabaayaaaacgacgaaagabadaaad0Lqsuvwmtawmjvjuelf 机械列表话筒-

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

授权:协商tlrmtvntuaabaaaaal4ii4gaaaaaaaaaaaaaaaaaaaaaaadw==

然后JBoss协商工具包回退到NTML身份验证,这是我不想要的,并且在webapp的输出中显示为错误

谈判工具包 NTLM谈判 WWW Authenticate-协商tlrmtvntuaabaaal4ii4gaaaaaaaaaaaaaaaaaaaaadw==

NTLM-协商信息 警告,这是NTLM,仅支持SPNEGO! 协商标志-(加密56位)(明确密钥交换)(会话密钥交换128位) 协商版本(ntlm2)(alwaysSign)(ntlm)(lmKey)(签名)(requestTarget)(oem)(unicode) 域名=null-{length=0}{maxLength=0}{offset=0} 工作站名称=null-{length=0}{maxLength=0}{offset=0} 版本-?

我将InternetExplorer和Firefox都配置为发送协商头,但它们在Linux服务器上都失败了

我做错了什么


顺便问一下:我在某个地方读到Windows总是在本地计算机上发送Kerberos协商头-是真的吗?

浏览器发送NTLM type-1令牌,因为Kerberos失败,因为您的AD/DNS设置不正确。这种行为是正确的。修复您的DNS设置。

以下是可能出现问题的一个很好的总结:

我总是做wireshark捕获来查看浏览器和服务之间的通信,以及浏览器和广告之间的通信。在您的情况下,问题可能是后者。例如,有一次我使用了
http://myGoodLookingDNSAlias
解析为
http://realBadLookingServerName
,但我忘了注册后者。因此,浏览器从广告中获得了一个
KRB5KDC_ERR_S_PRINCIPAL_UNKNOWN
错误,并且没有发送票据

问候,,
安德拉斯谢谢你的回答。在我们的例子中,问题是我们有两个Windows域。我试图使用域B中的Windows浏览器访问域A中的Linux服务器。显然,这不起作用…

我的Internet Explorer以前发送NTLM头而不是kerberos头。原因:Windows在其保险箱中保存了同一主机的密码

在保险箱中输入的用户和密码与我的Windows帐户不一样,但没有区别。只有服务器名称(甚至不是完全限定的)是相关的

解释时请使用坦克(德语)


非常感谢奥利弗。救了我一个晚上!这是我想象的最后一个。只有我必须将用户名从DOMAIN\user样式更改为USER@FULL_DOMAIN.NAME