为什么Java中的kerberos身份验证不支持直接IP访问或主机别名访问

时间:2013-05-30 07:47:52

标签: java iis kerberos negotiate

我的电脑(Windows,JDK7更新21 x64),例如mybox.domain2.company.com,已连接到我公司的域。我可以通过三个不同的网址访问网站:

http://mysite.domain1.company.com

http://XXX.XXX.XXX.XXX(ip format)

http://mysitealias

通过在IE,Firefox等中协商身份验证。这里domain1.company.com和domain2.company.com是我公司的两个域。此站点位于IIS 7中,其身份验证为“协商”。

在谷歌搜索和配置kerberos之后,我可以在java中使用URLConnection来访问

http://mysite.domain1.company.com

。但是,我可以在浏览器中使用IP或主机别名来执行此操作,但不能在Java中使用。任何人都可以实现直接IP访问或主机别名访问吗?

的krb5.conf:

[libdefaults]
    default_realm = DOMAIN2.COMPANY.COM
    default_tkt_enctypes = des3-cbc-sha1 des-cbc-md5 des-cbc-crc
    default_tgs_enctypes = des3-cbc-sha1 des-cbc-md5 des-cbc-crc
[domain_realm]
    .domain1.company.com = DOMAIN1.COMPANY.COM
    .domain2.company.com = DOMAIN2.COMPANY.COM

login.conf的:

com.sun.security.jgss.krb5.initiate {
    com.sun.security.auth.module.Krb5LoginModule required;
};

(请注意,所有主机名都是例如。)

1 个答案:

答案 0 :(得分:1)

Kerberos不适用于IP地址。坚持只有主机名。