我已经将 ASP.NET 2.0 站点配置为使用 Kerberos 委派执行 Windows 集成安全。包括 DC 在内的服务器运行在 Windows 2003 上,委派提升到 Windows 2003 级别。
顺便说一下,所有服务器都设置为 EST
身份验证工作正常,突然服务器在系统日志中写入 LsaSrv 警告事件(事件 ID 40960),抱怨服务器之间的时间差异。在此期间,客户端收到所有请求的 401.2 消息。20-30 分钟后,身份验证“神奇地”开始工作
我运行了 wireshark 和 fiddler 跟踪,发现响应标头中的时间戳是 GMT,尽管服务器配置为 EST。我不确定这是如何获取的。有什么想法吗?
任何其他建议都非常感谢。
答案1
GMT 和 EST 不太可能是问题所在。
Kerberos 要求所有参与者的时钟相差不超过 5 分钟。我猜你需要确保服务器和客户端的时间都在这个窗口内。
就我个人而言,即使在 Windows 上,我也使用 NTP。不过,可能存在“Windows 方式”。
答案2
感谢您的指导。我们与微软进行了通话,他们能够将问题缩小到 Kerberos 票证过期错误。通话于 2/10 开始,并提供了修补程序。到目前为止,没有报告任何问题。
以下是支持链接,
http://support.microsoft.com/default.aspx?scid=kb;EN-US;979159
答案3
Kerberos 对时间极为敏感 - 您需要确保 IIS 服务器上的时间与域控制器的时间相匹配。
本文Windows 时间服务的工作原理有一个基本的概述。
首先,你需要确保你的PDC模拟器的时间是正确的如何在 Windows Server 中配置权威时间服务器
接下来,在 IIS 服务器上,将其设置为与域同步:配置客户端计算机以实现自动域时间同步。
那就可以了。
答案4
去运行类型 regedit -HKEY_USERS.DEFAULT\Control Panel\International
在右侧更改,sShortDate 修改为 dd-MM-yyyy
重新启动 IIS