我有Grails Spring Security插件连接到一个Active Directory服务器,没有任何问题。但是,我需要连接到多个服务器。我们在一台AD服务器上有一些用户,另一台服务器上有其他用户,所以我们需要尝试在两个位置上查找用户。带有多个活动目录服务器的Grails Spring Security LDAP插件
例如,在Java中我有这个如下工作:
<authentication-manager>
<authentication-provider ref="provider1"/>
<authentication-provider ref="provider2"/>
...
</authentication-manager>
<ldap-server id="provider1"
url="ldap://LDAPSERVER1.mycompany.intranet"
manager-dn="OU=std_users,OU=users,DC=mycompany,DC=intranet"
manager-password="blah"/>
<ldap-server id="provider2"
url="ldap://DIFFERENT_LDAPSERVER.mycompany.intranet"
manager-dn="OU=std_users,OU=external_users,DC=mycompany,DC=intranet"
manager-password="blah"/>
Grails中我可以配置一个AD服务器,但无法工作,如何配置一个或多个:
// LDAP config
grails.plugin.springsecurity.ldap.context.managerDn = 'CN=blah,OU=std_users,OU=users,DC=mycompany,DC=intranet'
grails.plugin.springsecurity.ldap.context.managerPassword = 'the_password'
grails.plugin.springsecurity.ldap.context.server = 'ldap://theserver.mycompany.intranet'
grails.plugin.springsecurity.ldap.authorities.ignorePartialResultException = true // typically needed for Active Directory
grails.plugin.springsecurity.ldap.search.base = 'OU=std_users,OU=users,DC=mycompany,DC=intranet'
grails.plugin.springsecurity.ldap.search.filter="sAMAccountName={0}" // for Active Directory you need this
grails.plugin.springsecurity.ldap.search.searchSubtree = true
grails.plugin.springsecurity.ldap.auth.hideUserNotFoundExceptions = false
我知道你可以创建一个以空格分隔的服务器列表,但这对我来说不起作用,因为它只会在连接时尝试其中一台服务器,而我需要它尝试在两者中寻找用户。
我想我可能需要卡住resources.groovy文件,但不知道从哪里开始 - 有没有人配置了多个AD位置?
我唯一的想法是创建一个虚拟目录,将所有用户集中在一个目录中。任何人都可以提出一个这样做的好方法吗?我一直在寻找http://myvd.sourceforge.net/usecases.html
任何帮助,将不胜感激。一直在使用Google进行搜索,我也没有接近解决方案。
您好,感谢回答。请将您的评论移至答案,以便您有资格获得赏金。这使我指出了正确的方向,今天我取得了一些成功。我明天会更新。 – Cookalino 2014-10-15 16:14:38