![当 Negotiate:Kerberos 切换到 NTLM 时恢复到 Kerberos](https://linux22.com/image/690085/%E5%BD%93%20Negotiate%3AKerberos%20%E5%88%87%E6%8D%A2%E5%88%B0%20NTLM%20%E6%97%B6%E6%81%A2%E5%A4%8D%E5%88%B0%20Kerberos.png)
我正在使用一个系统,该系统实现了从 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 分钟。
有没有办法通过 DC、代码(c#)或 IIS/Firefox/IE 手动将身份验证协议恢复为 Kerberos,从而缩短使用 NTLM 协议的窗口?