我最近在 Windows 2003 域中添加了一些 Windows 2008 服务器。现在我的域控制器定期为 Windows 2008 机箱(仅限所有 Win2k8 机箱)发布安全事件 ID 675:
Pre-authentication failed:
User Name: MY2008SERVER$
User ID: MYDOMAIN\MY2008SERVER$
Service Name: krbtgt/MYDOMAIN.LOCAL
Pre-Authentication Type: 0x0
Failure Code: 0x19
Client Address: 10.2.1.32
据微软称,该失败代码意味着“需要额外的预授权”。正如 nedm 指出的那样,实际的 RFC说 0x19 表示“服务器凭据已撤销”。登录审核未产生任何有用信息。时间已正确同步。
我在网上发现了很多类似的报道,到目前为止我看到的唯一答案是通过 ADSIEdit 设置“不需要 Kerberos 预授权标志”。
这是一种很好的解决方法,但我不想对我部署的每台 2008 服务器都这样做。知道这是怎么回事吗?如何真正解决这个问题?
答案1
0x19 对应于十六进制中的 19,即十进制中的 25:“需要额外的预认证*”
答案2
我认为在 Windows 2008 中,NTLM 不再是一种身份验证方法。这使得 Kerberos 成为唯一的选择。当我们在测试环境中部署 2008 机器时,我们遇到了类似的问题。结果发现时钟与域时间完全不同步(即 >5 分钟)。2003 机器工作正常,因为当 Kerberos 失败时它们会简单地回退到 NTLM。确保所有机器都有一个共同的 NTP 源(通过 GPO 设置)解决了我们的问题。
答案3
Kerberos 错误 (0x)19 实际上对应于“服务器凭证已被撤销”——参见 RFC获得 Kerberos 错误代码列表——对故障排除非常有帮助。附加预身份验证 (0x25) 意味着错误类型字段中有更具体的错误数据(您可以参考 RFC 的第 5.9.1 节),但同样,0x19 表示服务器的凭据无法正常运行。
尽管这通常会导致不同的错误,但我会先检查 2008 服务器的时间偏差。接下来,我会尝试将它们从域中删除,然后重新加入域。
答案4
对于 Kerberos 消息,我总是检查服务器的 SPN(服务主体名称)是否重复。Kerberos 似乎使用 SPN 来附加到用户/计算机帐户,而不是名称/CN/samaccountname。ADSIEdit 可用于查看 SPN 并搜索重复项。