我正在进行一些测试以了解 Kerberos 行为,我让用户 Alice 登录到 lab.local 域的一台机器上,登录后,我运行 net user \dc\sysvol 来触发 cifs 服务的服务票证请求,根据我的理解,客户端现在应该在缓存中有两个票证,第一个是 TGT,另一个是 cifs 服务的 TGS,通过运行 klist,我发现有两个由 krbtgt 帐户标识的 TGT 票证、两个 LDAP TGS 票证和一个 cifs 票证,我想知道为什么有两个 TGT 而不仅仅是一个,以及为什么存在 LDAP 票证?我为 klist 命令添加了一个图像 在此处输入图片描述
答案1
两张krbtgt/*
票的标志不同。票#1
是你在登录时收到的正常 TGT,而票是 KDC 签发的带有标志#0
的副本forwarded
无约束授权。目前还不完全清楚它是从别处由这台机器接收到的,还是即将从你的机器转发到另一台机器,不过我怀疑是后者。(请注意服务票据上有标志ok_as_delegate
,表明这些服务被标记为允许不受约束的委派。)
这两个ldap/*
票据是为不同的主体名称签发的——请注意,票据#2
具有两个组件主体,而票据#4
具有三个组件主体。虽然典型的 Kerberos 仅使用基本的两组件service/fqdn
服务主体格式,但某些 Active Directory 服务将其扩展为三组件service/fqdn/instance
(这与传统 Kerberos 的格式并无不同user/instance
)。在这种情况下,第三个组件是 LDAP 服务器(DC)负责的 AD 域名;我不太清楚其目的,但我相信它有记录某处在 MS 文档中。