gpt4 book ai didi

java - 通过 LdapExtLoginModule 针对 Active Directory 林 (LDAP_REFERRAL) 进行身份验证

转载 作者:行者123 更新时间:2023-12-01 12:33:43 24 4
gpt4 key购买 nike

有没有一种方法可以通过任何 Ldap 登录模块或任何其他特殊模块对 Active Directory 森林进行身份验证?

standalone.xml 中有以下配置:

    <module-option name="java.naming.provider.url" value="ldap://ad.company.tld:389"/ >
<module-option name="baseCtxDN" value="OU=DE,OU=Users,OU=Accounts,OU=US,OU=Hosting,DC=ad00,DC=company,DC=tld"/ >
<module-option name="baseFilter" value="(CN={0})"/ >
<module-option name="rolesCtxDN" value="OU=Groups,OU=Accounts,OU=US,OU=Hosting,DC=ad00,DC=company,DC=tld"/ >
<module-option name="roleFilter" value="(member={1})"/>
<module-option name="roleAttributeID" value="CN"/ >
<module-option name="searchScope" value="SUBTREE_SCOPE"/>

在 Wildfly 8 上,我得到一个 javax.naming.NameNotFoundException ,并带有完整的堆栈跟踪指向LdapCtx.java:3112 如下所示:

case LdapClient.LDAP_REFERRAL:
e = new NamingException(message);
break;

因此,异常是由于引用错误造成的,并且 LDAP 模块似乎无法遵循引用控制。而且,我发现

位于http://docs.oracle.com/javase/jndi/tutorial/ldap/referral/jndi.html注意(在底部):

Windows Active Directory:由于 Active Directory 不支持“管理引用”控件,因此本类(class)中的所有示例都不适用于 Active Directory。

因此我猜如果LdapExtLoginModule依赖于Java提供的JNDI,那么它就没有机会成功。

最佳答案

WildFly 中的推荐处理存在一些问题。它们已经固定在代码库中。一旦 9.x 流中的新版本发布,它应该适合您。

JBoss EAP 6.3 和 6.2.4 存在问题 fixed already .

处理(即遵循)引用的配置可能如下所示:

<security-domain name="ldap-authn" cache-type="default">
<authentication>
<login-module code="LdapExtended" flag="required">
<module-option name="java.naming.provider.url" value="ldap://test-ldap.jboss.example:389/"/>
<module-option name="java.naming.factory.initial" value="com.sun.jndi.ldap.LdapCtxFactory"/>
<module-option name="java.naming.security.authentication" value="simple"/>
<module-option name="bindDN" value="cn=Directory Manager"/>
<module-option name="bindCredential" value="****"/>
<module-option name="baseCtxDN" value="dc=example,dc=com"/>
<module-option name="baseFilter" value="(uid={0})"/>
<module-option name="rolesCtxDN" value="dc=example,dc=com"/>
<module-option name="roleFilter" value="(uniqueMember={1})"/>
<module-option name="roleAttributeID" value="cn"/>
<module-option name="roleNameAttributeID" value="cn"/>
<module-option name="roleRecursion" value="0"/>
<module-option name="throwValidateError" value="true"/>
<module-option name="java.naming.referral" value="follow"/>
<module-option name="referralUserAttributeIDToCheck" value="uniqueMember"/>
</login-module>
</authentication>
</security-domain>

关于java - 通过 LdapExtLoginModule 针对 Active Directory 林 (LDAP_REFERRAL) 进行身份验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25738796/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com