Active-Directory

當 setspn -l 找到 spn 時,為什麼 setspn -q 返回“找不到這樣的 spn”?

  • April 9, 2019

我正在嘗試解決為什麼在客戶站點的 IIS 中託管的網站的 Windows 身份驗證失敗。執行setspn -l serviceUser以列出與服務帳戶關聯的 spns 時,我們得到以下輸出

Registered ServicePrincipalNames for CN=serviceUser,CN=Users,DC=test,DC=local:
       http/service.test.local test\serviceUser

但是,當我們使用搜尋 spn 時,setspn -q http/service.test.local會得到以下輸出:

Checking domain DC=test,DC=local

No such SPN found.

什麼會導致以一種方式找到 spn 而不是另一種方式?

問題最終是客戶實際使用 SPN 中包含的使用者名創建了 SPN。我不確定他們是如何做到的,可能不是通過使用 setspn。

如果我更仔細地註意,我會注意到 setspn -l serviceUser在 spn 的輸出中包含了使用者名,因為它的輸出包括使用者名。

一旦通過從 spn 中刪除使用者名來糾正該問題,setspn 的輸出將與預期一致。

c:\>setspn -l serviceUser
Registered ServicePrincipalNames for CN=serviceUser,CN=Users,DC=test,DC=local:
       http/service.test.local

c:\>setspn -q http/service.test.local
Checking domain DC=test,DC=local:
CN=serviceUser,CN=Users,DC=test,DC=local:
       http/service.test.local

引用自:https://serverfault.com/questions/960533