這裏是我的Perl CGI腳本的一部分(這是工作..):配置Grails的Spring Security的LDAP插件
use Net::LDAP;
use Net::LDAP::Entry;
...
$edn = "DC=xyz,DC=com";
$quser ="(&(objectClass=user)(cn=$username))";
$ad = Net::LDAP->new("ip_address...");
$ldap_msg=$ad->bind("$username\@xyz.com", password=>$password);
my $result = $ad->search( base=>$edn,
scope=>"sub",
filter=>$quser);
my $entry;
my $myname;
my $emailad;
my @entries = $result->entries;
foreach $entry (@entries) {
$myname = $entry->get_value("givenName");
$emailad = $entry->get_value("mail");
}
所以基本上不存在用於管理員/管理員帳戶AD,用戶憑證用於綁定。我需要在grails中實現同樣的事情。 +有沒有一種方法來配置插件來搜索幾個AD,我知道我可以在context.server中添加更多的ldap IP,但是對於每個服務器我需要一個不同的搜索基礎..
++我不想用我的DB,只是AD。通過LDAP用戶登錄>我收到他的電子郵件,並使用電子郵件的其他LDAP查詢但這可能會是另外一個話題:)
反正到目前爲止的代碼是:
grails.plugin.springsecurity.ldap.context.managerDn = ''
grails.plugin.springsecurity.ldap.context.managerPassword = ''
grails.plugin.springsecurity.ldap.context.server = 'ldap://address:389'
grails.plugin.springsecurity.ldap.authorities.ignorePartialResultException = true
grails.plugin.springsecurity.ldap.search.base = 'DC=xyz,DC=com'
grails.plugin.springsecurity.ldap.authenticator.useBind=true
grails.plugin.springsecurity.ldap.authorities.retrieveDatabaseRoles = false
grails.plugin.springsecurity.ldap.search.filter="sAMAccountName={0}"
grails.plugin.springsecurity.ldap.search.searchSubtree = true
grails.plugin.springsecurity.ldap.auth.hideUserNotFoundExceptions = false
grails.plugin.springsecurity.ldap.search.attributesToReturn =
['mail', 'givenName']
grails.plugin.springsecurity.providerNames=
['ldapAuthProvider',anonymousAuthenticationProvider']
grails.plugin.springsecurity.ldap.useRememberMe = false
grails.plugin.springsecurity.ldap.authorities.retrieveGroupRoles = false
grails.plugin.springsecurity.ldap.authorities.groupSearchBase ='DC=xyz,DC=com'
grails.plugin.springsecurity.ldap.authorities.groupSearchFilter = 'member={0}'
和錯誤代碼:[LDAP:錯誤代碼1 - 000004DC:LdapErr:DSID-0C0906E8,註釋:爲了執行此操作,必須在連接上成功完成綁定。數據0,v1db1
而且它與任何用戶/通行證我嘗試:/ Heeeeelp! :)
存在丟失的引號和左括號您providerNames名單上。不知道這是否會起作用。 – grantmcconnaughey
對不起,複製時出錯,行是:grails.plugin.springsecurity.providerNames = ['ldapAuthProvider','anonymousAuthenticationProvider'] – user1611228