Spring + Kerberos +可信域

时间:2017-11-23 07:29:30

标签: java spring authentication active-directory kerberos

我在Active Directory中有2个域:域A和域B.在这些域之间设置了双向信任。域A具有用户A,域B具有用户B.此外,域A具有称为组A的域本地安全组。用户B是组A的成员。

我想要实现的是对域A中的两个用户进行身份验证。到目前为止,我对域A中的用户A和域B中的用户B进行身份验证没有任何问题。现在我需要在域A中对用户B进行身份验证。

这在Java / Spring技术堆栈中是否可行?我的第一次尝试是使用Spring Security的ActiveDirectoryLdapAuthenticationProvider,但后来我检查它是否使用简单的ldap绑定请求,所以我想这对于这个提供程序是不可行的。

接下来我尝试使用Kerberos(Spring Security Kerberos模块),但是再次:我可以验证域A中的用户A和域B中的用户B.在尝试验证域A中的用户B时没有成功。当我读到一些时关于Kerberos中的跨领域认证的主题,我可以看到具有两个领域的解决方案(每个领域都有自己的KDC指定)。这将以用户B将在域B中进行身份验证的方式工作,我想避免这种情况。

我的krb5.conf:

[libdefaults]
    default_realm = DOMAIN-A.COM
    default_tkt_enctypes = rc4-hmac aes256-cts aes128-cts des3-cbc-sha1 des-cbc-md5 des-cbc-crc
    default_tgs_enctypes = rc4-hmac aes256-cts aes128-cts des3-cbc-sha1 des-cbc-md5 des-cbc-crc
    dns_lookup_realm = false
    dns_lookup_kdc = true
    ticket_lifetime = 24h
    renew_lifetime = 7d
    forwardable = true
[realms]
    DOMAIN-A.COM = {
        kdc = domain-a.com
        admin_server = domain-a.com
    }
[domain_realm]
    .domain-a.com = DOMAIN-A.COM
    domain-a.com = DOMAIN-A.COM

我有什么方法可以配置Kerberos(或者可能是配置Active Directory或KDC)来实现它?

还是一些完全解决这个问题的办法?像Kerberos一样的其他东西?

1 个答案:

答案 0 :(得分:0)

您可以在"用户B是域本地安全组A"的成员。部分。但我认为错误的是你的krb5.conf没有包含对域B的任何引用。所以它不知道去哪里验证Kerberos票证。查看MIT example of an krb5.conf containing two domains。如果根据示例编辑krb5.conf后仍然无法正常工作,请用最新的问题更新您的问题。