PowerScale:重复的 Active Directory SPN 阻止对群集进行 SMB 客户端身份验证
摘要: 如何识别 Active Directory (AD) 中的重复服务主体名称 (SPN),这可能会导致 Kerberos 身份验证失败。
症状
使用 FQDN 访问 SMB 共享时通常会出现此问题,IP 正常工作。
在对群集进行身份验证时,重复的 SPN 名称或在错误的计算机对象上注册 SPN 会导致服务帐户和客户端登录失败。
以下客户端错误与此问题相关联:
"The target account name is incorrect"
重复的 SPN 可能会导致客户端尝试向错误的系统进行身份验证或具有错误的 Kerberos 密钥。请参阅 Microsoft 文章服务登录由于 SPN 设置不正确而失败(外部链接)
使用 SmartConnect 分区名称或别名进行身份验证的 SMB 客户端可能无法向群集共享进行身份验证。
在域控制器日志或 /var/log/lsassd.log,以下消息可能指示存在重复的 SPN。
KDC_ERR_PRINCIPAL_NOT_UNIQUE - Multiple entries in database KRB_AP_ERR_MODIFIED Message stream modified errors Event ID 11 and/or Event ID 4 on Domain controllers can indicate duplicate SPNs.
原因
Active Directory 环境中的 SPN 配置不正确可能会导致重复。
解决方案
程序
有两个选项可用于查找重复的 SPN。 Setspn 是一个命令行实用程序,LDP 是仅在 Windows Server 2003 及更高版本上可用的图形界面。
使用 setspn
从 Windows 命令行界面 (CLI) 中,使用 setspn /? 以了解该命令的其他选项。
使用以下方法找到重复项 setspn -x,这会搜索整个林,并且在大型环境中可能需要一些时间来处理。
命令 setspn q 按 SPN 名称进行查询,可能更适合更大的环境。
示例 1:
The SPN HOST/chomper.test.isilon.com 注册到名为 isicluster1 以及一个名为 win2k1。
C:>setspn -x
Checking domain DC=test,DC=isilon,DC=com
Processing Entry 0
HOST/chomper.test.isilon.com is registered on these accounts
CN=isicluster1,CN=Computers,DC=test,DC=isilon,DC=com
CN=win2k1,CN=Computers,DC=test,DC=isilon,DC=com
Found 1 group of duplicate SPNs.
示例 2:
在较大的环境中,使用 setspn q <SPN> 或使用 LDP,如下所示。
C:>setspn -q HOST/chomper.test.isilon.com
Checking domain DC=test,DC=Isilon,DC=com
CN=isicluster1,CN=Computers,DC=test,DC=isilon,DC=com
HOST/chomper.test.isilon.com
HOST/isicluster1
HOST/isicluster1.test.isilon.com
CN=win2k1,CN=Computers,DC=test,DC=isilon,DC=com
HOST/chomper.test.isilon.com
HOST/win2k1
HOST/win2k1.test.isilon.com
Existing SPN found!
如果环境中的其他位置存在具有不同服务类标识符(如 CIFS)的 SPN,则在 setspn -x。您可以通过运行通配符搜索来搜索它:
C:\>setspn -q */isilon
Checking domain DC=test,DC=Isilon,DC=com
CN=isicluster2,CN=Computers,DC=test,DC=isilon,DC=com
cifs/chomper.test.isilon.com
使用 LDP:
LDP - Microsoft Learn (外部链接)
- 单击“开始”,单击“运行”,键入 LDP,然后单击“确定”。
- 单击 连接,然后单击 连接。
- 保留默认设置,然后单击 确定。
提醒:如果未收到预期结果,请使用全局编录端口 (3268) 而不是默认设置 (389) 尝试另一次搜索。
- 单击 连接,然后单击 绑定。
- 保留默认设置,然后单击 确定。
- 单击 查看,然后单击 树。
- 在 树视图 对话框中,键入
DC=test,DC=isilon,DC=com在 BaseDN 框中。 - 单击 浏览,然后单击 搜索。
- 在 搜索 对话框中,键入
DC=test,DC=isilon,DC=com在 BaseDN 框中。 - 在搜索 对话框中,键入 (
serviceprincipalname=HOST/<sczonename>) 在 筛选器 框中。 - 在 属性 对话框中,键入
servicePrincipalName。 - 在 “Scope”下,单击 “Subtree”。
- 单击 运行,然后关闭 搜索 对话框。
- 重复的 SPN 列出了两个指向两个不同 Dn 的条目
***Searching
ldap_search_s(Id, DC=test,DC=isilon,DC=com ,2,
(serviceprincipalname=HOST/chomper.test.isilon.com) ,attrList, 0 &msg)
Getting 2 entries:
Dn: CN=ISICLUSTER1,CN=Computers,DC=test,DC=isilon,DC=com
servicePrincipalName (3): HOST/isicluster1; HOST/isicluster1.test.isilon.com;
HOST/chomper.test.isilon.com
Dn: CN=WIN2K1,CN=Computers,DC=test,DC=isilon,DC=com
servicePrincipalName (3): HOST/win2k1; HOST/win2k1.test.isilon.com;
HOST/chomper.test.isilon.com
分辨率:
以下项的重复条目 win2k1 对于 HOST/chomper.test.isilon.com 应从 Active Directory 域中删除。
对 Active Directory 域具有域管理员、企业管理员或指定域管理权限的用户可删除重复条目。
删除重复条目的命令是 setspn -D <spn> <accountname>。
C:>setspn D HOST/chomper.test.isilon.com win2k1
Unregistering ServicePrincipalnames for CN=win2k1,CN=Computers,DC=test,DC=isilon,DC=com
HOST/chomper.test.isilon.com
Updated object
上面的输出确认 HOST/chomper.test.isilon.com 已从计算机中注销 win2k1。它现在仅注册到 isicluster1 计算机帐户。
setspn -D 命令,并使用 setspn -A 命令检查它们是否正在运行:
C:\>setspn -A HOST/<FQDN> <correct_machine_account>
其他信息
相关文章:
PowerScale OneFS:如果服务主体名称 (SPN) 不正确或缺失
,身份验证服务可能会失败PowerScale OneFS: 如何创建 SPN 帐户以允许使用 SmartConnect DNS 条目
进行 Kerberos 身份验证PowerScale OneFS: 如何在 Microsoft Active Directory 环境中
查看 SPN 列表Isilon: SQL 客户端无法将文件从 Isilon 群集“批量插入”到 SQL 数据库。(可能需要以注册的戴尔支持用户身份登录才能查看本文。)
PowerScale OneFS:Kerberos 身份验证的服务主体名称Service principal names for Kerberos Authentication