1

LDAP を使用して認証していますが、特定のドメイン内のユーザーに対してはすべて正常に機能します。しかし、2 番目のドメインにあるユーザーを認証する方法を理解するのに苦労しています。以下に示す現在の構成では、user-search-base の最初のドメインを指定しています。すべてのドメインを検索することを期待して、そのパラメーターを削除しましたが、うまくいきませんでした。プロンプトが表示されたら、ドメイン\ユーザーなど、ユーザー名の一部としてドメインを指定しようとしましたが、これも機能しませんでした。

<security:authentication-manager alias="authenticationManager">
         <security:ldap-authentication-provider 
          user-search-filter="(samaccountname={0})" 
          user-search-base="dc=domain,dc=company,dc=com"
          user-context-mapper-ref="userContextMapper" >
        </security:ldap-authentication-provider>
</security:authentication-manager>

<security:ldap-server 
    url="ldap://some.url.com:3000" 
    manager-dn="CN=USER1,OU=FacMgr,OU=FAC,OU=Exchange,dc=domain,dc=company,dc=com" 
    manager-password="xxxx"/>

カスタム検索を作成する必要がありますか? その場合、誰かがこのコンテキストで例を提供できますか?

4

2 に答える 2

0

これを機能させる秘訣は、ActiveDirectoryLdapAuthenticationProvider を使用することです。これを行うには、次の変更を行うだけです。

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

于 2014-10-17T13:24:16.647 に答える