Назад | Перейти на главную страницу

Как получить строку подключения LDAP для моего ActiveDirectory

Я пытаюсь заставить плагин 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)

Вопрос

Могу ли я получить помощь по заполнению некоторых / большинства необходимых конфигураций? У меня есть доступ к доменным службам Active Directory в диспетчере серверов, поэтому, если большая часть информации будет получена оттуда, я смогу ее получить.

PS: Я не могу позволить себе такую ​​роскошь, как системный администратор, помогающий мне в этом. Так что я как разработчик остался исполнять обе роли :)

Обозреватель Active Directory (AdExplorer) утилита от Microsoft Windows Sysinternals люкс может помочь вам узнать DN и База поиска информация, которая вам нужна.

Но лучше получить некоторые концепции LDAP, чтобы получить больший контроль, например, вы хотите добавить больше search.filter или чтобы получить больше атрибутов (search.attributesToReturn) в результатах поиска (вы также хотите получить phoneNumber пользователя). Полезные ссылки:

Безусловно, самая важная вещь с grails и AD - это использовать ActiveDirectoryLdapAuthenticationProvider, а не LdapAuthenticationProvider, поскольку это избавит мир от боли. Затем вы можете настроить аутентификацию AD всего в несколько строк:

В 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']

Это весь код, который вам нужен. Вы можете в значительной степени удалить все остальные настройки grails.plugin.springsecurity.ldap. * В Config.groovy, поскольку они не применяются к этой настройке AD.

Для получения документации см .: http://docs.spring.io/spring-security/site/docs/3.1.x/reference/springsecurity-single.html#ldap-active-directory