我已经注册了一个 SPN,现在我想尝试获取它的票证。我知道有 Linux kvno 可以做到这一点,Windows 上有类似的东西吗?
答案1
在 Linux 中,您可以使用“kinit”来验证指定的 SPN。此工具会创建 Kerberos AS 票证并将其存储在缓存中。出于安全原因,此缓存供操作系统组件使用。
为了在 Windows 中安装 kinit,我安装了最新的 Java JDK(http://www.oracle.com/technetwork/java/javase/downloads/index.html)。
语法:kinit <SPN>
。应用程序将要求您输入密码。如果您输入正确的密码,您将创建 AS 票证并将其存储在 Kerberos 缓存中。
然后您可以使用列出 Kerberos 缓存的内容klist -c
。
答案2
kinit
与领域等效的窗口CORP.CONTOSO.COM
是:
- 将 SAMAccountName 添加为该领域的用户凭证
Control Panel > User Accounts > Credential Manager > Windows Credentials
注1:您必须准确使用领域。您不能使用域名或 UPN。例如:CORP.CONTOSO.COM\jsmith
可以,但CORP\jsmith
会[email protected]
失败。
笔记2:也可以使用cmdkey /add:*.CORP.CONTOSO.COM /user:CORP.CONTOSO.COM\jsmith /pass
注3:这些已保存的凭据将无限期地保留在您的漫游配置文件中。如果不需要,请随后将其删除。 - 连接到服务(使用 ssh、CIFS、RDP/TERMSERV 等...)并验证是否已使用 创建服务票证
klist
。或者,您可以使用 明确请求票证klist get SPN
(例如:使用 为 dc1 上的 CIFS请求票证klist get cifs/dc1.CORP.CONTOSO.COM
)
或者,您可以使用 runas 进行临时连接(避免在凭证管理器中保存凭证):
- 使用新的访问令牌
runas /netonly /user:CORP.CONTOSO.COM\jsmith cmd
开始cmd
- 连接到服务并验证 Kerberos 身份验证是否成功
klist
有关的:
答案3
klist get SPN
按照尝试微软的 klist 文档。
答案4
也可以使用 ktpass 生成 Kerberos 票证。在 Windows 提示符下(假设已安装 KDC)
ktpass -out <file>.keytab -mapuser <username>@REALM-IN-CAPS -pass <of-user> -crypto all -ptype KRB5_NT_PRINCIPAL -princ spn-of-user@REALM-IN-CAPS
这将*.keytab
在当前工作目录中生成。