2015-10-14 3 views
2

Я надеюсь, что кто-то может помочь мне с этим или хотя бы подтвердить, что это можно сделать.Аутентификация пользователей несколькими группами AD с использованием tomcat и JNDI

В настоящее время, для моего веб-приложения, когда пользователь отправляет свою регистрационную информацию, я аутентифицирую их в Active Directory с помощью конфигурации Tomcat server.xml JNDI Realm.

Это текущая конфигурация:

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 и аутентифицировал пользователя пользователя. Если аутентификация завершается неудачно, тогда отобразите страницу с запретом доступа.

Есть ли способ сделать это?

Поблагодарили бы за помощь. Благодаря!

ответ

0

Я использовал следующие Realm теги

<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>