SharePoint 2010 托管在 IIS7 上,已启用 Kerberos。客户端通过 Citrix 在多个终端服务器上登录。Kerberos 在多个客户端上运行,因此 SPN 定义正确,但在某些客户端上不起作用。
问题
- Internet Explorer 中启用 Windows 身份验证,提供程序协商(第一)和 NTLM(第二)
- 在某些客户端上有效。如果在 IE 中启用了“集成 Windows 身份验证”,则会发送 Kerberos 票证。如果禁用设置,则使用 NTLM。因此,正如预期的那样。
- 在一些“坏客户端”上,我在 +- 20 秒后收到“无法显示此页面”(DNS / 连接错误) 。如果我查看 Fiddler,我只会看到来自 Web 服务器的 401 响应。如果我在 IIS 中翻转提供程序,即 NTLM(第一)、协商(第二),它就可以正常工作!发送了 NTLM 响应。如果我将其改回协商(第一)、NTLM(第二),它在 IIS 重置后仍然有效,直到我从 Citrix 注销并重新登录;然后再次出现“无法显示此页面”。
- 站点已添加到本地内联网。如果它在“坏客户端”中的 NTLM 下工作,我可以在右下角看到“本地内联网”。在“好客户端”上,Kerberos 也在本地内联网区域中工作。还尝试将“坏客户端”中的站点添加到受信任的站点,但这没有任何区别。
我不知道为什么它仍然无法正常工作。问题似乎是 IE 不想在某些客户端上使用 Negotiate、NTLM 作为身份验证标头来响应 HTTP/401 请求,但我真的不知道为什么不这样做。
解决了。 好吧,有些 DC 上无法使用 Kerberos 和 LDAP。因此,更改防火墙中的设置解决了这个问题。