从 Active Directory 检索当前的 Kerberos KVNO

ixe*_*013 10 linux active-directory kerberos

我在连接到 Windows KDC 的 Linux 主机上遇到了 Kerberos 问题。我怀疑版本错误的 Kerberos 密钥是罪魁祸首。

舒尔的一种方法是删除 SPN 并重新创建它,但这是在生产环境中,如果您愿意,我必须以“只读”进行调试。

如何从 Active Directory 中的主体检索当前 Kerberos KVNO?

小智 8

使用 PowerShell 的 AD Cmdlets 可以查询 kvno:

PS> import-module ActiveDirectory
    ^^^ if this fails, find a Windows server where it is installed
PS> get-aduser <username> -property msDS-KeyVersionNumber
Run Code Online (Sandbox Code Playgroud)

  • 如果是机器信任帐户,则需要“get-adcomputer”,否则语法相同。get-adcomputer &lt;computername$&gt; -property msDS-KeyVersionNumber (2认同)

Rya*_*ies 6

我不相信 KVNO 是否与您的问题有关,也许 Linux 客户端可以,但无论如何,请使用 Wireshark/网络监视器:

空号

密钥版本号在 MS-KILE 第 3.1.5.8 节中描述。

顺便说一下,Mathias R. Jessen 是正确的,因为 Windows 通常会忽略 KVNO。但它们仍然以 RFC-complaint 的方式实现。

https://docs.microsoft.com/en-us/archive/blogs/openspecification/to-kvno-or-not-to-kvno-what-is-the-version

不,Windows 不关注 KVNO。它只是忽略它。

但是 KVNO 在 RODC 环境中确实有一些意义:

https://docs.microsoft.com/en-us/archive/blogs/openspecification/notes-on-kerberos-kvno-in-windows-rodc-environment

这里有更多信息:https : //web.archive.org/web/20150204183217/http : //support.microsoft.com/kb/2716037

在具有一个或多个 RODC 的环境中,在以下场景之一中与某些基于 MIT 的 Kerberos 设备交互时,身份验证可能会失败。

· 客户端是一个 MIT 设备,它从 RODC 上的 Windows KDC 接收到一个 TGT

· 客户端将 Windows KDC 在 RODC 上生成的 TGT 传递给 MIT 设备,MIT 设备又使用 TGT 代表调用用户请求 TGS。

在这两种情况下,TGT 都将由 RODC 发布,其中与该 RODC 的 krbtgt 帐户关联的 msDS-SecondaryKrbTgtNumber的值将大于 32767。


小智 6

dsquery * -filter sAMAccountName=Accountname -attr msDS-KeyVersionNumber
Run Code Online (Sandbox Code Playgroud)

  • 请添加更多详细信息... (6认同)