我在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一样的其他东西?
答案 0 :(得分:0)
您可以在"用户B是域本地安全组A"的成员。部分。但我认为错误的是你的krb5.conf没有包含对域B的任何引用。所以它不知道去哪里验证Kerberos票证。查看MIT example of an krb5.conf containing two domains。如果根据示例编辑krb5.conf后仍然无法正常工作,请用最新的问题更新您的问题。