PowerScale:OneFS:如何在 Active Directory 中查找重复的服务主体名称 (SPN) 以防止 SMB 客户端向群集进行身份验证
Summary: 如何识别 Active Directory 中的重复服务主体名称,这可能会导致 Kerberos 身份验证失败。
Symptoms
识别 Active Directory 域中的重复 SPN:
在对群集进行身份验证时,重复的 SPN 名称可能会导致服务帐户登录和客户端登录失败。
重复的 SPN 可能会导致客户端尝试向错误的系统进行身份验证或具有错误的 Kerberos 密钥。
参考: http://technet.microsoft.com/en-us/library/cc772897%28v=ws.10%29.aspx
使用 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.Cause
Active Directory 环境中的 SPN 配置不正确可能会导致重复。
Resolution
程序
有两个选项可用于查找重复的 SPN。Setspn 是一个命令行实用工具,LDP 是仅在 Windows Server 2003 及更高版本上可用的图形界面。
使用 setspn
Windows 7、8、Server 2008 和 2012 中的 Setspn。对于 Windows Server 2003,可以使用以下链接获取它: http://support.microsoft.com/kb/970536
在 Windows 命令行界面中,使用“setspn /?” 获取命令的其他选项。
使用“setspn -x”查找重复项,这会搜索整个林,在大型环境中可能需要一些时间来处理。
“setspn q”命令 按 SPN 名称进行查询,可能更适合较大的环境。
示例 1:
SPN “HOST/chomper.test.isilon.com” 注册到名为“isicluster1”的群集和名为“win2k1”的 Windows 服务器。
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”的 SPN。您可以通过运行通配符搜索来搜索它:
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: http://support.microsoft.com/kb/321044
- 单击“开始”,单击“运行”,键入 LDP,然后单击“确定”。
- 单击 连接,然后单击 连接。
- 保留默认设置,然后单击 确定。
提醒:如果未收到预期结果,请使用全局编录端口 (3268) 而不是默认设置 (389) 尝试另一次搜索。 - 单击 连接,然后单击 绑定。
- 保留默认设置,然后单击 确定。
- 单击 查看,然后单击 树。
- 在 树视图 对话框中,在 BaseDN 框中键入 DC=test,DC=isilon,DC=com
- 单击 浏览,然后单击 搜索。
- 在 搜索 对话框中,在 BaseDN 框中键入 DC=test,DC=isilon,DC=com。
- 在搜索对话框中,在筛选器框中键入 (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
分辨率:
应从 Active Directory 域中删除“HOST/chomper.test.isilon.com”的 win2k1 重复条目。
对 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 计算机帐户。
Additional Information
相关文章:
“如果服务主体名称 (SPN) 不正确或缺失,身份验证服务可能会失败,”89649
“OneFS:如何创建 SPN 帐户以允许使用 SmartConnect DNS 条目进行 Kerberos 身份验证“、”16528
“如何在 Microsoft Active Directory 环境中查看 SPN 列表”16589
“SQL 客户端无法将文件从 Isilon 群集”批量插入“到 SQL 数据库”89574
“如何在 OneFS 5.5.x - 6.5.x 中启用 Active Directory CIFS 共享的 Mac OS X 单点登录 (SSO)“16675
”Isilon OneFS 7.1.0.0:SMB2 客户端无法使用 Kerberos 身份验证连接到群集,“174024
”OneFS:Kerberos 身份验证的服务主体名称“ 187999