错误的帐户上的 Kerberos 服务主体名称

本文提供了帮助来解决用户无法访问资源的问题,而系统事件日志显示 Kerberos 事件 4。

原始 KB 数: 2706695

现象

系统事件日志至少显示一个 Kerberos 事件 4。 这是服务器上指示客户端已为服务器提供访问服务器无法解密的资源的票证的事件。

真正的症状是用户无法访问资源。 他们收到的最有可能的错误是访问被拒绝或错误 5。

原因

Kerberos 服务票证由客户端获取,并传递给服务器以获取对该服务器上的资源的访问权限。 他们使用只有请求资源的服务器才能解密的机密进行签名。 当 SPN 位于 Active Directory 中的错误帐户上时,使用的机密是 SPN 打开的帐户之一,而不是服务器之一。

因此,服务器无法解密票证并向客户端返回错误。

解决方法

若要解决此问题,必须搜索服务主体名称并将其从备用帐户中删除,然后必须将其添加到 Active Directory 中的正确帐户。 为此,请执行以下步骤:

  1. 在提升的命令提示符下,使用企业管理员凭据运行该命令 setspn -Q <SPN>。 这将返回计算机名称。 SetSPN.exe随 Active Directory Directory 服务角色或 RSAT 一起安装。
  2. 转到命令提示符并运行命令 setspn -D <SPN> <computername>,删除未正确注册的 SPN。
  3. 通过运行以下命令 setspn -S <SPN> <computername of computer which had the System event 4>,将 SPN 添加到命令提示符处的正确帐户。

详细信息

当客户端请求一个服务票证时,它可以传递该票证的 DC 问题。 然后,客户端将其发送到尝试进行身份验证的远程主机。

此问题可能会出现在网络跟踪中,资源服务器出现错误响应,显示错误 KRB_AP_ERR_MODIFIED

在此方案中,远程服务器无法解密客户端发送到它的票证,因为用于加密密码不是正确的密码。 反过来,这是该服务的 SPN 的结果,并且票证位于 AD 中的错误对象上。 而是使用其他对象密码。 在此方案中,无法解密票证的服务器将响应客户端。 然后,客户端在其系统事件日志中放置 Kerberos 事件 4(下面的示例)。 这不太常见,原因是客户端和服务器之间的网络问题被截断票证。

KERBEROS 事件 ID 4

事件类型:错误
事件源:Kerberos
事件类别: 无
事件 ID:4
日期: <DateTime>
时间: <DateTime>
用户:无
计算机:MACHINENAMEDescription:
kerberos 客户端从服务器主机/machinename.childdomain.rootdomain.com 收到KRB_AP_ERR_MODIFIED错误。 使用的目标名称为 cifs/machinename.domain.com。 这表示用于加密 kerberos 服务票证的密码与目标服务器上的密码不同。 通常,这是因为目标领域(childdomain.rootdomain.COM)和客户端领域中名称相同的计算机帐户。 请与系统管理员联系。