2

我正在使用一个系统,该系统为从 Firefox 38.2.1(或 IE 11)访问 Windows Server 2012(IIS 8.5)上运行的 Intranet .NET 4.5.1 Web 应用程序到 SQL Server 2008 R2 上的双跳实现约束委派不同的服务器。委托方案正在运行:用户的 AD 凭据被传递到与 Web 服务器分开的服务器上的数据库。DC 是 Windows Server 2008 R2,我们使用 SPN。

但是,在某些情况下,例如缺少 Firefox 配置设置,Kerberos 会失败;并且身份验证协议降级为 NTLM。在重新启用 Kerberos 身份验证协议之前,委派在一段时间内不再起作用(一些消息来源说 5 分钟;在我们的测试中更像是 10-12 分钟)。此外,失败的委派会影响协议降级生效后访问应用程序的所有用户,直到 Kerberos 自动恢复。换句话说,他们的会话使用 NTLM 并在 10-12 分钟内被阻止访问数据库。

有没有办法通过代码 (c#)/IIS/Firefox/IE 或其他方法手动将身份验证协议恢复到 Kerberos,从而缩短使用 NTLM 协议的窗口?

4

2 回答 2

1

我以前见过这种类型的问题。我强烈建议不要尝试通过自定义代码来解决这个问题,因为这样你就必须检测协议条件故障并采取相应的行动等等。这样的努力将是不平凡的。相反,实际上更容易(1)开发一种脚本方法来遍历所有安装了 Firefox 的机器,并将 network.negotiate-auth.trusted-uris 和 network.negotiate-auth.delegation-uris 设置为包含您的域名(请参阅:配置 Firefox 以使用 SPNEGO 和 Kerberos 进行身份验证),或 (2) 通过中央服务器强制执行 Firefox 设置(通过 about:config 可见的设置)。对于 #2,请参阅在企业环境中部署 Firefox. 我更喜欢#2,因为您可以通过这种方式控制所有自定义 Firefox 设置。

于 2017-02-13T04:17:53.340 回答
1

我们遇到了同样的问题(kerberos 降级影响所有用户并破坏委派)。我们打开了一个 Microsoft 案例,他们的解决方案是在服务帐户委托设置中选中“使用任何身份验证协议”。我相信这是“TrustedToAuthForDelegation”属性。我认为如果您有可能协商到 NTLM 的客户端,这是最好的解决方案,因为它允许从 NTLM 转换到 kerberos 以执行双跳。

于 2020-03-05T15:36:57.143 回答