当 Active Directory 中没有对象具有匹配的 servicePrincipalName 属性时,为什么我可以获取服务票证?

当 Active Directory 中没有对象具有匹配的 servicePrincipalName 属性时,为什么我可以获取服务票证?

我能够获得一项服务的服务票:

$  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

相关内容