使用 Kerberos 通过 IP 访问远程计算机上的资源失败(NTLM 被阻止)
Accessing resources on remote machine by IP fails with Kerberos (NTLM is blocked)
由于 Vista
和 Windows Server 2008
,当您尝试通过 IP 访问远程计算机上的资源时,Kerberos
不会反向查找 IP(例如访问共享文件夹 \\x.x.x.x\MySharedFolder),而不是回退到 NTLM
,这在我的环境中被阻止,我无法访问资源。
我的代码包括 IP 的许多用法,以便访问远程机器上的资源,我想知道是否有一个 OS 独立的配置可以使 Kerberos
使用 IP,因为它听起来像必须已经有针对此类事情的解决方案,而不是更改所有 C#
代码以使用主机名,而不是 IP。
我在 msdn 上找到了一篇文章,但它与 Windows 10
或 Windows 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。
由于 Vista
和 Windows Server 2008
,当您尝试通过 IP 访问远程计算机上的资源时,Kerberos
不会反向查找 IP(例如访问共享文件夹 \\x.x.x.x\MySharedFolder),而不是回退到 NTLM
,这在我的环境中被阻止,我无法访问资源。
我的代码包括 IP 的许多用法,以便访问远程机器上的资源,我想知道是否有一个 OS 独立的配置可以使 Kerberos
使用 IP,因为它听起来像必须已经有针对此类事情的解决方案,而不是更改所有 C#
代码以使用主机名,而不是 IP。
我在 msdn 上找到了一篇文章,但它与 Windows 10
或 Windows 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。