Spring Security + Auth LDAP:BindRequestとUnbindRequest?

なほぼ

Googleが何日も調査し、F * Spring Security Manualを読み、テストした後、私は必死になっています...

コンテキスト:Eurekaなどを使用してマイクロサービスアーキテクチャを実装しています... MySQL認証データベースで非常にうまく機能する認証サービスを実装しました。しかし今、私は適切に機能するOpenLDAPを介して会社のLDAPに参加したいと思っています。

だから、私は私の春のセキュリティ認証でLDAPに参加しようとしています。

configure()メソッドのコード(会社名とドメイン名を置き換えました。アカ​​ウント{0}は「テスト」です):

auth.ldapAuthentication()
        .contextSource()
        .url("ldap://myldap/ou=users,dc=mydomain,dc=mycompany")
    .and()
        .userDnPatterns("cn={0}");

また、これを書くためのさまざまな方法を試しましたが、常にBadCredentialsまたはLDAP32エラーが発生します。userDnPattern、usersearchbaseメソッド、passwordcompare、passwordencoderなどを使用します。また、DCをroot()メソッドに、OUをgroup ...()メソッドに配置しようとしましたが、変更はありません(実際、Spring SecurityはLDAP要求を送信する前にこれらのパラメーターをスマートに並べ替えると思います)。正直なところ、configure()メソッドを書くために357654の異なる方法を試しました...

問題は次のとおりです。LDAPエクスプローラソフトウェアに同じ構成、資格情報、ドメインを配置すると、正しく機能します。

そこで、WiresharkとのLDAPネットワーク交換を監視しました。これを見ました:Wireshark画面

ご覧のとおり、8つのリクエストが交換されています。最初の5つはOKです。それは私のアカウントを正しく「テスト」します。しかし、3つのオーバーリクエストがあります(unbindRequestが戻ってきます)。

問題は、Springが最後のリクエストの結果を表示し、アカウントが存在しないか、資格情報が機能しないなどと言ってしまうことです...

これの手がかりはありますか?SpringSecurityがLDAPに質問するためにどのように機能するか知っていますか?LDAPをフレームワークに適切に接続するにはどうすればよいですか?

読んでくれてありがとう。

Stack Overflowを手伝ってください、あなたが私の唯一の希望です...

なほぼ

私はついに問題を見つけて解決策を得ました。

私のエンタープライズLDAPは、ADの上のLDAPです。

また、このLDAP + ADはバインド認証を必要とし、匿名のバインドと認証を許可しません。

Spring Securityには、これを実行できるオブジェクトがあります:BindAuthenticator

これが私がそれを使おうとする方法です(そしてそれは機能します)。

 @Override
 protected void configure(AuthenticationManagerBuilder authManagerBuilder) throws Exception {
      authManagerBuilder.authenticationProvider(ldapAuthenticationProvider()).userDetailsService(userDetailsService());
 }

 @Bean
 public LdapAuthenticationProvider ldapAuthenticationProvider() throws Exception {
      LdapAuthenticationProvider lAP = new LdapAuthenticationProvider(ldapAuthenticator(), ldapAuthoritiesPopulator());
      return lAP;
 }

 @Bean
 public LdapContextSource ldapContextSource() throws Exception {
      DefaultSpringSecurityContextSource contextSource = new DefaultSpringSecurityContextSource([URL of the LDAP]);

      return contextSource;
 }

 @Bean
 public LdapAuthenticator ldapAuthenticator() throws Exception {
      BindAuthenticator authenticator = new BindAuthenticator(ldapContextSource());
      authenticator.setUserDnPatterns(new String[] {"CN={0},"+[MY ENTERPRISE LDAP FILTER]});          
      return authenticator;
 }

このサンプルコードが一部の人々に役立つことを願っています...

ありがとうございました !

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

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

編集
0

コメントを追加

0

関連記事

分類Dev

Spring Security LDAP Configuration

分類Dev

Spring SecurityとLDAP認証

分類Dev

Autowiring of Services not working in Spring Security Java config Custom Auth provider

分類Dev

Spring Security LDAPと記憶する

分類Dev

Using both LDAP and DB authentication with Spring Security

分類Dev

Configuring a Custom LDAP Authentication Provider with Spring Security

分類Dev

Spring Security / Auth0認証に「ROLE」を追加

分類Dev

Spring Security + Cas Auth +静的ユーザーリストを許可

分類Dev

Spring SecurityとCASの統合

分類Dev

Spring Security Active Directory LDAP認証エラー

分類Dev

Spring Security LDAP VS CAS VSOpenIDの違い

分類Dev

Spring Security LDAP VS CAS VSOpenIDの違い

分類Dev

Spring Security LDAP VS CAS VSOpenIDの違い

分類Dev

Spring Security + LDAP: session is cleared right after Login

分類Dev

Spring Session and Spring Security

分類Dev

Spring SAML拡張とSpring Security 5

分類Dev

Spring BootとOAuth 2によるSpring Security

分類Dev

Spring Security OAuth2のauth_code付与で匿名認証は可能ですか?

分類Dev

Spring Security 4-configure(AuthenticationManagerBuilder auth)は@Autowiredなしで動作します

分類Dev

Spring SecurityでSpring LDAPを使用できない

分類Dev

同じリソースへのSpring Security OAuth2とLdap認証

分類Dev

Firebase auth, is the user uid security sensitive?

分類Dev

Maven:Spring 4 + Spring Security

分類Dev

Spring SecurityのAuthenticationSuccessHandler

分類Dev

Spring Security Java Config

分類Dev

Authenticate user with Spring Security

分類Dev

Spring Security - Oauth implementations

分類Dev

Spring Security BadCredentialsException

分類Dev

Java + Vaadin + Spring Security

Related 関連記事

  1. 1

    Spring Security LDAP Configuration

  2. 2

    Spring SecurityとLDAP認証

  3. 3

    Autowiring of Services not working in Spring Security Java config Custom Auth provider

  4. 4

    Spring Security LDAPと記憶する

  5. 5

    Using both LDAP and DB authentication with Spring Security

  6. 6

    Configuring a Custom LDAP Authentication Provider with Spring Security

  7. 7

    Spring Security / Auth0認証に「ROLE」を追加

  8. 8

    Spring Security + Cas Auth +静的ユーザーリストを許可

  9. 9

    Spring SecurityとCASの統合

  10. 10

    Spring Security Active Directory LDAP認証エラー

  11. 11

    Spring Security LDAP VS CAS VSOpenIDの違い

  12. 12

    Spring Security LDAP VS CAS VSOpenIDの違い

  13. 13

    Spring Security LDAP VS CAS VSOpenIDの違い

  14. 14

    Spring Security + LDAP: session is cleared right after Login

  15. 15

    Spring Session and Spring Security

  16. 16

    Spring SAML拡張とSpring Security 5

  17. 17

    Spring BootとOAuth 2によるSpring Security

  18. 18

    Spring Security OAuth2のauth_code付与で匿名認証は可能ですか?

  19. 19

    Spring Security 4-configure(AuthenticationManagerBuilder auth)は@Autowiredなしで動作します

  20. 20

    Spring SecurityでSpring LDAPを使用できない

  21. 21

    同じリソースへのSpring Security OAuth2とLdap認証

  22. 22

    Firebase auth, is the user uid security sensitive?

  23. 23

    Maven:Spring 4 + Spring Security

  24. 24

    Spring SecurityのAuthenticationSuccessHandler

  25. 25

    Spring Security Java Config

  26. 26

    Authenticate user with Spring Security

  27. 27

    Spring Security - Oauth implementations

  28. 28

    Spring Security BadCredentialsException

  29. 29

    Java + Vaadin + Spring Security

ホットタグ

アーカイブ