如何获取ActiveDirectory的LDAP连接string

我正在尝试使Grails LDAP插件与我的Active Directory一起工作。

这个插件需要很多我不熟悉的东西,因为我对Active Directory不太了解。

这里是插件所需的东西:

// LDAP config grails.plugins.springsecurity.ldap.context.managerDn = '[distinguishedName]' grails.plugins.springsecurity.ldap.context.managerPassword = '[password]' grails.plugins.springsecurity.ldap.context.server = 'ldap://[ip]:[port]/' grails.plugins.springsecurity.ldap.authorities.ignorePartialResultException = true // typically needed for Active Directory grails.plugins.springsecurity.ldap.search.base = '[the base directory to start the search. usually something like dc=mycompany,dc=com]' grails.plugins.springsecurity.ldap.search.filter="sAMAccountName={0}" // for Active Directory you need this grails.plugins.springsecurity.ldap.search.searchSubtree = true grails.plugins.springsecurity.ldap.auth.hideUserNotFoundExceptions = false grails.plugins.springsecurity.ldap.search.attributesToReturn = ['mail', 'displayName'] // extra attributes you want returned; see below for custom classes that access this data grails.plugins.springsecurity.providerNames = ['ldapAuthProvider', 'anonymousAuthenticationProvider'] // specify this when you want to skip attempting to load from db and only use LDAP // role-specific LDAP config grails.plugins.springsecurity.ldap.useRememberMe = false grails.plugins.springsecurity.ldap.authorities.retrieveGroupRoles = true grails.plugins.springsecurity.ldap.authorities.groupSearchBase ='[the base directory to start the search. usually something like dc=mycompany,dc=com]' // If you don't want to support group membership recursion (groups in groups), then use the following setting // grails.plugins.springsecurity.ldap.authorities.groupSearchFilter = 'member={0}' // Active Directory specific // If you wish to support groups with group as members (recursive groups), use the following grails.plugins.springsecurity.ldap.authorities.groupSearchFilter = '(member:1.2.840.113556.1.4.1941:={0})' // Active Directory specific 

我正在使用Windows 2008 Server并了解以下内容:

 IP = 10.10.10.90 Name = bold.foo.bar (This is what I see under Active Directory Users and Computers) Domain =`BOLD` Group = `MANAGERS` Users = USERA (part of MANAGERS group) and USERB (not part of MANAGERS group) 

我可以得到一些帮助填写一些/大部分所需的configuration? 我有权访问服务器pipe理器中的Active Directory域服务,所以如果大部分信息都会出现,我可以得到它。

PS:我没有这个系统pipe理员的帮助。 所以我是开发人员留下填充这两个angular色:)

Microsoft Windows Sysinternals套件中的Active Directory Explorer(AdExplorer)实用程序可以帮助您find所需的DNsearch库信息。

AD Explorer

但是最好是获得一些LDAP概念来获得更多的控制权,例如,您希望在search结果中添加更多的search.filter或获取更多的属性( search.attributesToReturn )(您也希望获取用户的phoneNumber)。 有用的链接:

  • 维基百科:轻量级目录访问协议
  • MSDN:轻量级目录访问协议(Windows)

到目前为止,Grails和AD最重要的是使用ActiveDirectoryLdapAuthenticationProvider而不是LdapAuthenticationProvider,因为这将节省一个痛苦的世界。 然后,您可以在几行内设置AD身份validation:

在resources.groovy中:

 // Domain 1 ldapAuthProvider1(ActiveDirectoryLdapAuthenticationProvider, "mydomain.com", "ldap://mydomain.com/" ) // Domain 2 ldapAuthProvider2(ActiveDirectoryLdapAuthenticationProvider, "mydomain2.com", "ldap://mydomain2.com/" ) 

在Config.groovy中:

 grails.plugin.springsecurity.providerNames = ['ldapAuthProvider1', 'ldapAuthProvider2'] 

这是你需要的所有代码。 您几乎可以删除Config.groovy中的所有其他grails.plugin.springsecurity.ldap。*设置,因为它们不适用于此AD设置。

有关文档,请参阅: http : //docs.spring.io/spring-security/site/docs/3.1.x/reference/springsecurity-single.html#ldap-active-directory