web-dev-qa-db-ja.com

ActiveDirectoryのLDAP接続文字列を取得する方法

GrailsLDAPプラグインをActiveDirectoryで動作させようとしています。

プラグインには、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

私はWindows2008 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)

質問

必要な構成の一部/ほとんどを入力するためのヘルプを入手できますか?サーバーマネージャーでActiveDirectoryドメインサービスにアクセスできるので、ほとんどの情報がそこから出てくる場合は、それを取得できます。

PS:これを手伝ってくれるシステム管理者の贅沢はありません。だから私は両方の役割を果たしたままの開発者です:)

3
Omnipresent

Active Directory Explorer(AdExplorer) Microsoftのユーティリティ Windows Sysinternals スイートは[〜#〜] dn [〜#〜 ]および必要な検索ベース情報。

AD Explorer

ただし、LDAPの概念をいくつか取得して、より詳細に制御することをお勧めします。たとえば、さらに追加したい場合などです search.filter またはより多くの属性を取得するには(search.attributesToReturn)検索結果(ユーザーの電話番号も取得したい)。便利なリンク:

4
LiuYan 刘研

GrailsとADで最も重要なことは、LdapAuthenticationProviderではなくActiveDirectoryLdapAuthenticationProviderを使用することです。これにより、苦痛の世界を救うことができます。その後、数行で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']

これが必要なすべてのコードです。 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

1
Cookalino