我最近在我的 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
根据 Microsoft的说法,该故障代码意味着“需要额外的预授权”。正如 nedm 所指出的,实际的 RFC说 0x19 表示“服务器凭据已撤销”。登录审核没有产生有用的信息。时间已正确同步。
我在网上找到了许多类似的报告,到目前为止我看到的唯一答案是通过 ADSIEdit 设置“不需要 Kerberos 预授权标志”。
这作为一种解决方法很好,但我不想为我部署的每台 2008 服务器都这样做。知道这是从哪里来的吗?如何真正修复它?
0x19 对应于十六进制的 19,即十进制的 25:“需要额外的预认证*”
我认为在 Windows 2008 中,NTLM 作为一种身份验证方法已被淘汰。这使得 Kerberos 成为唯一的选择。当我们在测试环境中部署 2008 机器时,我们遇到了类似的问题。事实证明,时钟与域时间完全不同步(即 > 5 分钟)。2003 年的机器运行良好,因为当 Kerberos 失败时它们只是退回到 NTLM。确保所有机器都有一个共同的 NTP 源(通过 GPO 设置)解决了我们的问题。
Kerberos 错误 (0x)19 实际上对应于“服务器凭据已被撤销”——有关 kerberos 错误代码列表,请参阅RFC——对故障排除非常有帮助。额外的预认证 (0x25) 意味着错误类型字段中有更具体的错误数据可用(您可以参考 RFC 的第 5.9.1 节),但同样,0x19 表示服务器的凭据无法正常运行。
虽然它通常会导致不同的错误,但我会首先检查 2008 服务器的时间偏差。接下来,我将尝试将它们从重新加入域中删除。
对于 Kerberos 消息,我总是检查服务器的 SPN(服务主体名称)是否重复。Kerberos 似乎使用 SPN 附加到用户/计算机帐户,而不是名称/CN/samaccountname。ADSIEdit 可用于查看 SPN 和搜索骗子。