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

问题描述

由于VistaWindows Server 2008,当您尝试通过IP到达远程计算机上的资源(例如到达共享文件夹\\ xxxx \ MySharedFolder)时,Kerberos不会反转IP的查找),而是将其回退到NTLM,它在我的环境中被阻止,因此我无法访问资源。 我的代码包含许多IP用法,以便访问远程计算机上的资源,并且我想知道是否存在与操作系统无关的配置,使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的SPN。链接中提到的注册表更改仅是为了在短期内使用户退出NTLM,而不是长期使用IP的解决方案。

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

但是,现在是2020年。使用DNS。

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...