使用 Kerberos 通过 IP 访问远程计算机上的资源失败(NTLM 被阻止)

Accessing resources on remote machine by IP fails with Kerberos (NTLM is blocked)

由于 VistaWindows Server 2008,当您尝试通过 IP 访问远程计算机上的资源时,Kerberos 不会反向查找 IP(例如访问共享文件夹 \\x.x.x.x\MySharedFolder),而不是回退到 NTLM,这在我的环境中被阻止,我无法访问资源。 我的代码包括 IP 的许多用法,以便访问远程机器上的资源,我想知道是否有一个 OS 独立的配置可以使 Kerberos 使用 IP,因为它听起来像必须已经有针对此类事情的解决方案,而不是更改所有 C# 代码以使用主机名,而不是 IP。

我在 msdn 上找到了一篇文章,但它与 Windows 10Windows Server 2016 相关(没人能告诉我目标机器会有那些 OS): https://docs.microsoft.com/en-us/windows-server/security/kerberos/configuring-kerberos-over-ip

对我来说,这么老的问题已经有了解决方案真的很有意义。 你知道这样的事情吗? 谢谢!

Windows 中的 Kerberos 堆栈从未进行反向查找,并且始终阻止 IP-based SPN。 link 中提到的注册表更改只是为了在短期内让用户摆脱 NTLM,而不是作为使用 IP 的长期解决方案。

您唯一的选择是使用您通过其他方式确定的 SPN 手动调入 SSPI 堆栈,然后手动将票证添加到您的请求中。

然而,现在是 2020 年。使用 DNS。