在配置了 Kerberos 的 Unix 系统上,我会使用klist
...
如何在 Windows 上查询他的 Kerberos 主体?
(使用 Active Directory,而不是 MIT 实现。)
答案1
也可以使用klist
。您的委托人姓名位于每张票的“客户:”字段中。
H:\> klist
Current LogonId is 0:0x494539
Cached Tickets: (2)
#0> Client: fred @ AD.EXAMPLE.COM
Server: krbtgt/AD.EXAMPLE.COM @ AD.EXAMPLE.COM
KerbTicket Encryption Type: AES-256-CTS-HMAC-SHA1-96
Ticket Flags 0x40e00000 -> forwardable renewable initial pre_authent
Start Time: 11/11/2020 17:49:42 (local)
End Time: 11/12/2020 3:49:42 (local)
Renew Time: 11/18/2020 17:49:42 (local)
Session Key Type: AES-256-CTS-HMAC-SHA1-96
Cache Flags: 0x1 -> PRIMARY
Kdc Called: dc1.ad.example.com
#1> Client: fred @ AD.EXAMPLE.COM
Server: ldap/dc1.ad.example.com @ AD.EXAMPLE.COM
...
请注意,Kerberos 主体名称与 Active Directory UPN(您可以使用 查看)不同whoami /upn
。一个 AD 域始终只有一个 Kerberos 领域,而其用户可以有多个 UPN 后缀。
此命令在所有最新的 Windows 版本中都可用 - 自 Windows Vista 或 Win7 起内置(大约),但它也可以作为“Server 2003 资源工具包”的一部分下载到 XP 和 Server 2003。旧版本需要子命令,例如klist tickets
或klist tgt
。
安装 Java 可能会覆盖该命令,因为 Java 有自己的 Kerberos 实现(独立于 MIT Krb5)。正确的实现位于 中\Windows\System32
。
C:\Users> where klist
C:\Program Files\AdoptOpenJDK\jre-14.0.2.12-hotspot\bin\klist.exe
C:\Windows\System32\klist.exe