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