PowerScale:OneFS:如何在 Active Directory 中找到重複的服務主體名稱 (SPN),導致 SMB 用戶端無法驗證至叢集
Summary: 如何識別 Active Directory 中的重複服務主體名稱,這可能會導致 Kerberos 驗證失敗。
Symptoms
識別 Active Directory 網域中的重複 SPN:
向群集進行身份驗證時,重複的SPN名稱可能會導致服務帳戶登錄和客戶端登錄失敗。
重複的 SPN 可能會導致客戶端嘗試向錯誤的系統進行身份驗證或具有錯誤的 Kerberos 金鑰。
參考:使用 SmartConnect 區域名稱或別名進行身份驗證 http://technet.microsoft.com/en-us/library/cc772897%28v=ws.10%29.aspx
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 /? 」以取得命令的其他選項。
使用「setpn -x」找到重複項,這會搜索整個林,在大型環境中可能需要一些時間進行處理。
命令“setspn q” 按SPN名稱查詢,對於較大的環境可能更好。
例 1:
SPN 「HOST/chomper.test.isilon.com」 會註冊至名為「isicluster1」的叢集和名為「win2k1」的 Windows Server。
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!
如果環境中的其他地方有具有不同服務類識別碼的 SPN,例如 CIFS,則找不到帶有“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。
- 在 範圍下,按一下 子樹。
- 按兩下 “運行”,然後關閉 “搜索 ”對話框。
- 重複的 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 網域中移除 win2k1 的「HOST/chomper.test.isilon.com」重複項目。
對 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
以上輸出確認已從電腦 win2k1 取消註冊「HOST/chomper.test.isilon.com」。它現在僅註冊到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 Authentication 的服務主體名稱」, 187999