应用对象
Windows Server 2022 Windows Server 2019 Windows Server 2016, all editions Windows Server 2012 R2 Windows Server 2012 Windows Server 2008 R2 Windows Server 2008 Service Pack 2

更改日期

更改说明

2026 年 2 月 3 日

  • 在“常见问题”部分中,更正了问题 1 的答案。从:将所需的 SPN 注册为管理员。自:将所需的 SPN 注册为 Active Directory 企业管理员。

摘要

2021 年 11 月 9 日发布的 CVE-2021-42282 的 Windows 更新为 Active Directory (AD) 中的属性添加了以下验证:

  • 用户主体名称 (UPN) 和服务主体名称 (SPN) 唯一性 (Windows 8、Windows Server 2012和早期版本)  

  • SPN 别名唯一性 (所有 Windows 版本)  

用户主体名称和服务主体名称唯一性

此功能保证 SPN 在林中是唯一的,从而防止计算机和域控制器添加重复的 SPN。 此功能已在Windows 8.1及更高版本中存在,SPN 和 UPN 唯一性中对此有介绍。

SPN 别名唯一性

现有 AD 属性将许多常见服务类的别名定义为 CIFS、HTTP 和 RPC 等服务等效的 HOST SPN。 AD 属性定义为 Active Directory 林的配置命名上下文中的列表。 没有管理员权限的用户可能不会使用此别名将隐式分配给其他帐户的 SPN。

注意 除了验证 UPN 和 SPN 唯一性之外,还会实现此验证。

SPN 别名唯一性验证默认处于打开状态。 可以通过修改 dSHeuristics 属性的 21st 字符(解释为一系列字符)来关闭这些验证。 默认情况下,dSHeuristics 属性不存在,但可以在可分辨名称“CN=Directory Service,CN=Windows NT,CN=Services,CN=Configuration,DC=support,DC=local”下添加它。 可能的设置及其相应的位值如下所示:

  • 值 0 – 表示强制实施所有 (不设置 000) 默认值的位

  • 值 1 – 表示禁用 UPN 唯一性验证 (位 0 设置 - 001)

  • 值 2 - 表示禁用 SPN 唯一性验证 (位 1 设置 - 010)

  • 值 3 – 表示禁用 UPN 唯一性和 SPN 唯一性验证。 (位 0 和 1 集 - 011)

  • 值 4 – 表示禁用 SPN 别名唯一性验证 (位 2 设置 - 100)

  • 值 5 - 表示禁用 SPN 别名和 UPN 唯一性验证 (位 2 和位 0 设置 - 101)

  • 值 6 - 表示禁用 SPN 别名和 SPN 唯一性 (位 2 和位 1 设置 - 110)

  • 值 7 - 表示禁用所有 (所有位设置 111)

例如:如果林中未启用其他 dSHeuristics 设置,并且只想禁用 SPN 别名唯一性验证,则应将 dSHeuristics 属性设置为:“000000000100000000024” 在本例中设置的字符为: 10 字符:如果 dSHeuristics 属性至少为 10 个字符,则必须设置为 1 20 字符:如果 dSHeuristics 属性至少为 20 个字符,则必须设置为 2 21st char:必须设置为上述列表中的值;值 4 表示禁用 SPN 别名唯一性。

注意 如果已设置 dSHeuristics 属性,请确保将现有设置合并到新的 dSHeuristics 属性字符串中,并确认第 10、20 和 21 个字符已按上述设置。 已设置的其他字符应保持不变。

有关配置 dSHeuristics 字符的详细信息,请参阅以下文档:

详细信息

什么是服务主体名称?

服务主体名称 (SPN) 是服务实例的唯一标识符。 Kerberos 身份验证使用 SPN 将服务实例与服务登录帐户相关联。 这允许客户端应用程序请求服务对帐户进行身份验证,即使客户端没有帐户名称。 有关详细信息 ,请参阅服务主体名称

什么是用户主体名称?

UPN) (用户主体名称是基于 Internet 标准 RFC 822 的用户的电子邮件样式登录名称。 有关详细信息,请参阅 User-Principal-Name 属性

常见问题

问题 1 如果需要为帐户注册重复的 HOST 别名 SPN,该怎么办?

A1 将所需的 SPN 注册为 Active Directory 企业管理员。

问题 2 如果关闭 SPN 或 UPN 唯一性,会发生什么情况?

A2 不建议这样做。 如果 SPN 不是唯一的,则好像根本不注册任何重复的 SPN。 注册重复 SPN 与取消注册原始 SPN 具有相同的效果。 如果 UPN 不唯一,则使用重复 UPN 的用户查找将失败。

问题 3 如果关闭 SPN 别名唯一性,会发生什么情况?

A3 不建议这样做。 非管理员可能会将现有别名 SPN 的分辨率从其当前分辨率更改为受非管理员控制的计算机。 该计算机可能充当该服务,因为 Kerberos 提供的服务器身份验证将接受新帐户作为服务的正确主机,而不是使用 HOST SPN 的原始帐户。

问题 4 域管理员如何查找网络上已存在的重复 SPN 或 UPN?

A4 如果不编写大量脚本来枚举域中的所有 SPN 和 UPN 并关联以查找重复项,这是不可行的。

问题 5 如果我的域控制器混合更新且未更新或域控制器之间的设置不匹配,会发生什么情况?

A5 不会因为 UPN 或 SPN 重复而阻止复制。 因此,如果在未进行更新的域控制器上创建了重复的 UPN 或 SPN,则重复项可以复制到其他域控制器。

需要更多帮助?

需要更多选项?

了解订阅权益、浏览培训课程、了解如何保护设备等。