You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

为何在Active Directory中无匹配servicePrincipalName属性的对象时仍能获取服务票据?

为何在Active Directory中无匹配servicePrincipalName属性的对象时仍能获取服务票据?

这个问题其实是Kerberos和AD里一个容易被忽略的默认行为——主机SPN回退匹配机制在起作用,我来给你拆解清楚:

  • 当你通过kvno HTTP/somehost.example.com@EXAMPLE.COM请求服务票据时,域控制器(也就是Kerberos KDC)会先按常规逻辑查找有没有显式注册了HTTP/somehost.example.com这个SPN的AD对象。
  • 当它找不到这个显式SPN时,会触发一个默认的回退规则:检查目标主机的计算机对象是否存在HOST/somehost.example.com或HOST/somehost这类SPN。
  • HOST是AD计算机对象自带的通用SPN,它的作用就是代表该主机上运行的所有服务。KDC会默认认为,只要主机本身有HOST类SPN,那么该主机上的任意服务(包括HTTP)都可以复用这个SPN来获取Kerberos票据,不需要单独注册对应服务的SPN。

结合你的实际情况来看:

  • 你能拿到kvno返回的票据,正是因为KDC匹配到了somehost计算机对象上的HOST/somehost.example.com或HOST/somehostSPN,通过回退机制认可了HTTP服务的票据请求。
  • 而setspn -Q HTTP/somehost.example.com和LDAP搜索找不到对应SPN完全正常,因为这个HTTP的SPN根本没有被显式注册到任何AD对象里,它是通过KDC的隐式规则被“虚拟”认可的。

如果想验证这个机制,你可以在测试环境里尝试移除该计算机对象的HOST类SPN,再执行kvno命令,这时应该就无法获取到HTTP服务的票据了。

备注:内容来源于stack exchange,提问作者Sam Morris

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.20 09:23:13