Kerberos:客户端票证中的 kvno 为“1”

Art*_*cis 4 kerberos active-directory

我们正在为客户的 Web 应用程序配置 SSO,但不幸的是我们无权访问域控制器(这是我们不做更多实验来检查假设的又一个原因)。因此,我们要求运行ktpass.exe并准备.ktpass文件以用于我们的服务器配置。

我们面临的问题是“指定版本的密钥不可用”。

我查找了密钥表文件 (knvo = 5),并使用 Wireshark 在我们的 Web 服务器上检查了流量: 在此输入图像描述

如您所见,AP-REQ票证中的 kvno = 1。我认为这是检查 kvno 版本的正确方法。

我知道 Windows 2000 域存在兼容性问题(/kvno 1必须用于 Windows 2000 域兼容性),但据说我们要处理 Windows 2008R2 服务器(我可以看到msDS-Behavior-Version = 4我们的域控制器的值,它与 2008R2 匹配!)。

我们面临着类似W2K域模式的东西吗?

显式 kvno=1 有助于解决问题吗?IE,ktpass.exe [..] /kvno 1

编辑#1

问题在于错误指定的 SPN。它是 HTTP/computer_name@DOMAIN.COM,而不是使用完全限定的域名。这只有在启用 WINS 的情况下才有效,但事实证明并非如此。

使用正确的 SPN 生成密钥表后,一切正常,并且 kvno 根据实际帐户值发送。

请接受解释我观察到的效果的答案。

Mat*_*lla 5

我不太了解内部结构,但 MIT Kerberos 客户端会对基于主机的服务主体的主机名部分进行转发解析,以规范化主机名。根据我的经验,如果名称无法解析,它确实会影响 Kerberos 身份验证。当我为 SQL Server 设置服务帐户以执行 Kerberos 时,我始终必须使用主机名和完全限定域名注册 SPN,因为不同的 SQL 组件似乎使用不同的解析方法。

在非常基本的网络拓扑中,WINS 能够解析名称。即使没有 WINS,NetBIOS 服务也能够解析主机名。WINS 和 NetBIOS 严重依赖广播,因此如果您的 Web 服务器位于不同的子网中,NetBIOS 名称解析将会失败,如果配置不正确,WINS 也会失败。Windows 还需要使用 TCP/IP NetBIOS Helper 服务。