我能够获得一项服务的服务票:
$ kvno HTTP/[email protected]
HTTP/[email protected]: kvno = 91
但是 AD 中似乎没有具有匹配serverPrincipalName
属性的对象。我运行了setspn -Q HTTP/somehost.example.com
该命令,输出了以下消息:No such SPN found.
我还使用过滤器搜索了域(servicePrincipalName=HTTP/somehost.example.com)
,但未找到具有匹配servicePrincipalName
属性的任何对象。
这里发生了什么?是否存在某种隐藏的机制,让计算机对象具有按需/幕后/以某种方式生成的 SPN,这意味着它们不会以预期的方式出现在目录中?
当我检查 AD 中的相关计算机对象时,我发现它做具有多种servicePrincipalName
属性,但没有一个属性具有HTTP
以下主要成分:
$ ldapsearch -s base -b CN=somehost,OU=Some OU,DC=example,DC=com servicePrincipalName
dn: CN=somehost,OU=Some OU,DC=example,DC=com
servicePrincipalName: CmRcService/somehost
servicePrincipalName: CmRcService/somehost.example.com
servicePrincipalName: WSMAN/somehost
servicePrincipalName: WSMAN/somehost.example.com
servicePrincipalName: TERMSRV/somehost.example.com
servicePrincipalName: RestrictedKrbHost/somehost.example.com
servicePrincipalName: HOST/somehost.example.com
servicePrincipalName: TERMSRV/somehost
servicePrincipalName: RestrictedKrbHost/somehost
servicePrincipalName: HOST/somehost
答案1
您可以使用它setspn -Q
来检查 SPN 是否在 AD 中注册以及谁拥有它:
setspn -Q HTTP/somehost.example.com