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