Spring Securityを使用してLDAP経由でディレクトリ(Active Directory)に認証できません

タヌキ

私が使用しているもの:-Spring 3.1.3

そして問題は、有効な資格情報を使用してLDAP経由でActiveDirectoryに接続できないことです。

不正なパターンが原因なのか、userdnまたはurlのrootDnに関する構成の問題が原因なのかわかりません。一見、すべてが正しいように見えますが。

これは私の現在の春のセキュリティ設定ファイルです:

...

    <security:authentication-manager alias="authenticationManager">
        <security:authentication-provider ref="ldapAuthProvider" />
    </security:authentication-manager>

       <bean id="ldapAuthProvider"
      class="org.springframework.security.ldap.authentication.LdapAuthenticationProvider">
      <constructor-arg>
        <bean id="bindAuthenticator" class="org.springframework.security.ldap.authentication.BindAuthenticator">
            <constructor-arg ref="contextSource" />
            <property name="userDnPatterns">
               <list><value>sAMAccountName={0}</value></list>
            </property>
        </bean>
      </constructor-arg>
    </bean>

    <bean id="contextSource" 
            class="org.springframework.security.ldap.DefaultSpringSecurityContextSource">
         <constructor-arg value="ldap://remotehost:port/OU=My%20Company,dc=domain,dc=subdomain"/>
         <property name="userDn" value="CN=managerUserCN,OU=Users,OU=Test Accounts,OU=My Company,dc=domain,dc=subdomain/>
         <property name="password" value="thePass"/>
    </bean>

...

*実際のURL、組織、グループなどを記述データに置き換えました

*これはsAMAccountNameによる検索の要件です。

そして、doAuthentication:bindWithDnによってスローされたNamingExceptionは次のとおりです。

*org.springframework.ldap.AuthenticationException: [LDAP: error code 49 - 80090308: LdapErr: DSID-0C0903A9, comment: AcceptSecurityContext error, data 52e, v1db1*

また、LDAP wikiで読んだ52eコードの解釈は、既存のユーザー名と存在しないユーザー名の両方の入力を開始しているため、完全には正しくありません。

私が言及しているのは:

注:ユーザー名は有効であるが、パスワード/資格情報が無効な場合に返されます。記載されているように、他のほとんどのエラーが表示されないようにします。

私のためではありません。

タヌキ

私は私の質問に対する答えを見つけました。

bindAuthenticationでuser-Searchプロパティを指定して取得しました。以前は、ベースディレクトリ(最初のパラメータ)を含めずにuserSearchオプションをテストしていました。したがって、ほとんどの場合、これは必須であり、認証を機能させます。

コード内:

<bean id="ldapAuthProvider"
  class="org.springframework.security.ldap.authentication.LdapAuthenticationProvider">
  <constructor-arg>
    <bean id="bindAuthenticator" class="org.springframework.security.ldap.authentication.BindAuthenticator">
        <constructor-arg ref="contextSource" />
        <property name="userSearch" ref="userSearch"/>
    </bean>
  </constructor-arg>
</bean>

<bean id="userSearch"
    class="org.springframework.security.ldap.search.FilterBasedLdapUserSearch">
    <constructor-arg>
        <value>OU=My Company,DC=domain,DC=subdomain</value>
    </constructor-arg>
    <constructor-arg>
        <value>(sAMAccountName={0})</value>
    </constructor-arg>
    <constructor-arg ref="contextSource" />
    <property name="searchSubtree">
        <value>true</value>
    </property>
</bean>

おそらく私は同様の問題を抱えている人を助けることができます。

pD:別のオプションは、指定されたActiveDirectoryLdapAuthenticationProviderを使用することです

 <bean id="ldapActiveDirectoryAuthProvider" class="org.springframework.security.ldap.authentication.ad.ActiveDirectoryLdapAuthenticationProvider">
    <constructor-arg value="domain.subdomain" />
    <constructor-arg value="ldap://host:port" />
    <property name="convertSubErrorCodesToExceptions" value="true"/>
</bean>

それもうまくいくようです。

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

sockjsを使用したソケット経由のストンプはSpring 4 WebSocketに接続できません

分類Dev

Java経由でディレクトリを削除できません

分類Dev

Spring Securityを使用して、Active Directoryサーバーに対してどのように認証しますか?

分類Dev

Spring Security BASIC認証をJersey / JAX-RSおよびTomcatに統合できません

分類Dev

Spring Security Active Directory LDAP認証エラー

分類Dev

Spring boot REST:@RequestParamの検証をテストできません

分類Dev

Spring Security / CXFがAuthenticationCredentialsNotFoundExceptionをスローします:認証オブジェクトがSecurityContextに見つかりませんでした

分類Dev

Spring Boot 1.3 + OAuth:認証リクエストに失敗しました:BadCredentialsException:アクセストークンを取得できませんでした

分類Dev

Spring Securityでの認証後、Grails3は私をauth.htmlにリダイレクトします

分類Dev

Spring Cloud Starter VaultConfigを使用してDockerVaultシークレットにアクセスできませんでした

分類Dev

spring bootoauth2-基本認証を使用するとアクセストークンを取得できません

分類Dev

SpringBatchとのSpring統合を使用して、FTP経由でディレクトリをサブディレクトリと同期するにはどうすればよいですか?

分類Dev

PHP経由でSMTPを認証できません

分類Dev

Terraformを介してDigitalOceanKubernetesに認証できません

分類Dev

pouchDB経由でApiキーを使用してCloudantにアクセスするときに認証できません

分類Dev

APIキー認証と統合した後、Spring Boot 2.3.4でpermitAll()を使用してSwaggerUIへのアクセスを許可することができません

分類Dev

APIキー認証と統合した後、Spring Boot 2.3.4でpermitAll()を使用してSwaggerUIへのアクセスを許可することができません

分類Dev

Spring Webflux + Spring Security for X509証明書検証の問題:x509.X509CertImplをクラスjava.lang.Stringにキャストできません

分類Dev

Windows認証でSMTPサーバーに認証できません

分類Dev

cp file user @ remove構文を使用して、ssh経由でファイルをコピーするときに、「cp: 'user @ remote / home / file':ディレクトリではありません」にアクセスできませんでした

分類Dev

DjangoとLDAPを使用して認証できません

分類Dev

Springテンプレートを使用してSSL経由でLDAPサーバーに接続できません

分類Dev

Spring LDAP APIを使用し、Springセキュリティを使用せずにLDAPを使用して認証する

分類Dev

Spring Security Oauth2-InsufficientAuthenticationException:アクセストークンを取得するには認証が必要です(匿名は許可されていません)

分類Dev

自己署名httpsを使用したSpring-bootで、PostmanからのPOST/GETリクエストメソッドを認証できません

分類Dev

Spring Boot Securityは、WebSecurityを使用してディレクトリを無視しません

分類Dev

Spring統合でsftp経由でディレクトリを移動

分類Dev

rmおよびlsを使用する場合、SSH経由でディレクトリを削除できません

分類Dev

spring wsリクエストを検証できませんでした:WS-Securityヘッダーが見つかりません

Related 関連記事

  1. 1

    sockjsを使用したソケット経由のストンプはSpring 4 WebSocketに接続できません

  2. 2

    Java経由でディレクトリを削除できません

  3. 3

    Spring Securityを使用して、Active Directoryサーバーに対してどのように認証しますか?

  4. 4

    Spring Security BASIC認証をJersey / JAX-RSおよびTomcatに統合できません

  5. 5

    Spring Security Active Directory LDAP認証エラー

  6. 6

    Spring boot REST:@RequestParamの検証をテストできません

  7. 7

    Spring Security / CXFがAuthenticationCredentialsNotFoundExceptionをスローします:認証オブジェクトがSecurityContextに見つかりませんでした

  8. 8

    Spring Boot 1.3 + OAuth:認証リクエストに失敗しました:BadCredentialsException:アクセストークンを取得できませんでした

  9. 9

    Spring Securityでの認証後、Grails3は私をauth.htmlにリダイレクトします

  10. 10

    Spring Cloud Starter VaultConfigを使用してDockerVaultシークレットにアクセスできませんでした

  11. 11

    spring bootoauth2-基本認証を使用するとアクセストークンを取得できません

  12. 12

    SpringBatchとのSpring統合を使用して、FTP経由でディレクトリをサブディレクトリと同期するにはどうすればよいですか?

  13. 13

    PHP経由でSMTPを認証できません

  14. 14

    Terraformを介してDigitalOceanKubernetesに認証できません

  15. 15

    pouchDB経由でApiキーを使用してCloudantにアクセスするときに認証できません

  16. 16

    APIキー認証と統合した後、Spring Boot 2.3.4でpermitAll()を使用してSwaggerUIへのアクセスを許可することができません

  17. 17

    APIキー認証と統合した後、Spring Boot 2.3.4でpermitAll()を使用してSwaggerUIへのアクセスを許可することができません

  18. 18

    Spring Webflux + Spring Security for X509証明書検証の問題:x509.X509CertImplをクラスjava.lang.Stringにキャストできません

  19. 19

    Windows認証でSMTPサーバーに認証できません

  20. 20

    cp file user @ remove構文を使用して、ssh経由でファイルをコピーするときに、「cp: 'user @ remote / home / file':ディレクトリではありません」にアクセスできませんでした

  21. 21

    DjangoとLDAPを使用して認証できません

  22. 22

    Springテンプレートを使用してSSL経由でLDAPサーバーに接続できません

  23. 23

    Spring LDAP APIを使用し、Springセキュリティを使用せずにLDAPを使用して認証する

  24. 24

    Spring Security Oauth2-InsufficientAuthenticationException:アクセストークンを取得するには認証が必要です(匿名は許可されていません)

  25. 25

    自己署名httpsを使用したSpring-bootで、PostmanからのPOST/GETリクエストメソッドを認証できません

  26. 26

    Spring Boot Securityは、WebSecurityを使用してディレクトリを無視しません

  27. 27

    Spring統合でsftp経由でディレクトリを移動

  28. 28

    rmおよびlsを使用する場合、SSH経由でディレクトリを削除できません

  29. 29

    spring wsリクエストを検証できませんでした:WS-Securityヘッダーが見つかりません

ホットタグ

アーカイブ