tomcat - 使用 tomcat 和 JNDI 针对多个 AD 组进行用户身份验证

标签 tomcat authentication active-directory jndi server.xml

我希望有人可以帮助我解决这个问题,或者至少确认它可以完成。

目前,对于我的 Web 应用程序,当用户提交登录信息时,我使用 tomcat server.xml JNDI 领域配置针对 Active Directory 对其进行身份验证。

这是当前配置:

Realm 
alternateURL="ldaps://xxx.yyy.com:ddd" 
className="org.apache.catalina.realm.JNDIRealm" 
connectionName="CN=ggg,OU=Generic_IDs,OU=Users,OU=hhh,DC=jjj,DC=com" 
connectionPassword="pppp" 
connectionURL="ldaps://fff.yyy.com:ddd" 
roleBase="ou=Managed_Groups,ou=Groups,ou=hhh Inc,dc=jjj,dc=com" 
roleName="cn" 
roleSearch="(member={0})" 
roleSubtree="false" 
userBase="ou=hhh,dc=jjj,dc=com" 
userRoleName="(member={0})" 
userSearch="(&(sAMAccountName={0})(objectClass=user))" 
userSubtree="true"

我的要求:现在,我们有一些用户在单独服务器上的另一个 Active Directory 中设置。我需要一种方法让服务器首先尝试根据第一个 AD 服务器对用户进行身份验证,如果不成功,则连接到第二个 AD 并根据该服务器对用户进行身份验证。如果此处验证失败,则显示访问被拒绝页面。

有办法做到这一点吗?

非常感谢您的帮助。谢谢!

最佳答案

我使用了下一个领域标签

<Realm className="org.apache.catalina.realm.CombinedRealm" >
    <Realm className="org.apache.catalina.realm.JNDIRealm"
        connectionURL="ldap://dc01.domain.com:3268"
        useDelegatedCredential="true"
        userBase="cn=Users,dc=domain,dc=com"
        userSearch="(sAMAccountName={0})"
        userRoleName="memberOf"
        roleSubtree="true"
        roleName="cn"
        roleSearch="(member={0})"
        commonRole="test1"
        roleNested="true" />

    <Realm className="org.apache.catalina.realm.JNDIRealm"
        connectionURL="ldap://dc01.domain.com:3268"
        useDelegatedCredential="true"
        userBase="cn=Users,dc=domain,dc=com"
        userSearch="(sAMAccountName={0})"
        userRoleName="memberOf"
        roleSubtree="true"
        roleName="cn"
        roleSearch="(member={0})"
        commonRole="test2"
        roleNested="true" />
</Realm>

关于tomcat - 使用 tomcat 和 JNDI 针对多个 AD 组进行用户身份验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33129364/

相关文章:

c# - 扩展 GroupPrincipal 和 Members 属性

java - 使用 Spring Security 3.2、Spring Ldap 2.0 和 JavaConfig 的 Active Directory 身份验证

java - 这个查询来自哪里?

java - 是否可以在任意位置配置其他文件夹以在 war 文件中提供静态资源

java - 如果 URL 中提供了某些参数,如何仅显示页面?

authentication - 如何处理我网站中的社交登录流程 - 有问题的流程和最佳实践

java - <mvc :view-controller> works in tomcat 6 and jetty, 但不是 tomcat 7

java - 为什么 TomCat 8 不能在我的 Ubuntu 15.04 系统上运行?

python - 通过 Oauth 进行身份验证时 SSL 抛出错误 185090050

php - 将 Windows Server 中的 Active Directory 与 Laravel 5 集成以实现多个用户角色