Kerberos:通过IP地址访问主机

时间:2015-10-28 20:56:51

标签: java authentication httpclient kerberos

我知道Kerberos不支持IP地址,它只依赖于域名和正确的DNS条目。

但是我发现旧版本的overhere库允许使用IP地址和Kerberos身份验证。

我从上层提取代码并创建了一个演示https://github.com/igolikov/KerberosWithIP

的小型java项目

它使用Apache HttpClient将WSMan请求发送到hyper-v主机。

我还发现它适用于httpclient 4.3.3并且不适用于httpclient 4.4.1

它如何与IP一起使用?

UPD1。我认为sun.security中的httpclient或其他东西可能会使用反向DNS查找。我尝试使用Wireshark拦截流量,并找到1个Revers DNS查找(in-addr.arpa),但它回复“没有这样的主机”,因为默认DNS服务器无法为此IP执行逆转DNS。

UPD2。这是服务器配置 主机名和IP地址都有SPN

dynamic d = Newtonsoft.Json.Linq.JObject.Parse("{number:1000, str:'string', array: [1,2,3,4,5,6]}");

1 个答案:

答案 0 :(得分:1)

Kerberos可以在没有DNS的情况下正常工作,DNS解决的问题是连接的两个方面同意使用相同的服务主体。如果我使用kerberos API将该主体修复为标准主体,那么只要服务器端在其密钥表中具有该主体,它就会继续工作。

即。您必须先知道您所连接的服务所使用的kerberos主体,然后才能连接。大多数服务主体的格式为

service/dns.name.of.host

但只要客户端软件知道要使用什么"某种程度上"服务主体就可以是任何东西。