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

skyhook19:

Spring Boot 2 RESTアプリケーションがあり、同じリソースへのGoogleログインまたはLDAP認証をサポートするようにSpring Securityを構成したい(たとえば、/ employees)

私はすでにhttpBasic(Apache AD LDAPサーバーに接続)を介して認証を行っています。

また、Google OAuth2サインインによる認証を設定しました。この両方の構成は別々に正しく機能します(Googleのサインインを介して認証できますが、Springのセキュリティを再設定する必要があるため、同時にLDAPを使用して認証することはできません)。次に、この両方の方法で認証する機能が必要です同時に。

LDAP認証のSpring Security構成

@Override
    protected void configure(HttpSecurity http) throws Exception {
        http
            .csrf()
            .disable()
            .authorizeRequests()
            .antMatchers("/", "/login**","/callback/", "/webjars/**", "/error**")
            .permitAll()
            .anyRequest()
            .authenticated()
            .and()
            .httpBasic()
            .and()
            .sessionManagement()
            .sessionCreationPolicy(SessionCreationPolicy.STATELESS);
    }


    @Override
    public void configure(AuthenticationManagerBuilder auth) throws Exception {
        auth
                .ldapAuthentication()
                .ldapAuthoritiesPopulator(customLdapAuthoritiesPopulator)
                .userDnPatterns("uid={0},ou=people")
                .groupSearchBase("ou=groups")
                .contextSource()
                .url(env.getProperty("spring.ldap.urls") + env.getProperty("spring.ldap.base"))
                .and()
                .passwordCompare()
                .passwordAttribute("userPassword")
                .passwordEncoder(new LdapShaPasswordEncoder());
    }

そして、これは私がGoogle OAuth2サインインのためにSpring Securityを再構成したときの見え方です

@Override
    protected void configure(HttpSecurity http) throws Exception {
        http
            .csrf()
            .disable()
            .authorizeRequests()
            .antMatchers("/", "/login**","/callback/", "/webjars/**", "/error**")
            .permitAll()
            .anyRequest()
            .authenticated()
            .and()
            .oauth2Login()
            .userInfoEndpoint().oidcUserService(customOAuth2UserService);
    }

私が必要とする結果:ユーザーには2つのオプションがあります。Oauth2で認証するか、または必要に応じて、httpBasic LDAPで認証します。

OAuth2とhttpBasic LDAPが連動するようにSpring Securityを構成する方法はあると思いますが、それを行う方法がわかりません。

スリニバサンセカール:

可能です。

基本認証は基本を使用しますが、oauthはヘッダー承認ヘッダーの一部としてベアラーを使用します。

カスタム要求マッチャーを使用して、基本認証を検出し、LDAPで認証できます。そうでない場合は、oauthを介して流れます。

まず、WebSecurityConfigurerAdapterをOauth認証サーバーよりも上位に注文します。

@Configuration
@Order(2)
public class WebSecurityConfig extends WebSecurityConfigurerAdapter {

カスタムリクエストマッパーを使用します。

http
            .csrf()
            .disable()
            .requestMatcher(new BasicRequestMatcher())
            .authorizeRequests()
            .antMatchers("/", "/login**","/callback/", "/webjars/**", "/error**")
            .permitAll()
            .anyRequest()
            .authenticated()
            .and()
            .httpBasic()
            .and()
            .sessionManagement()
            .sessionCreationPolicy(SessionCreationPolicy.STATELESS);

カスタムリクエストマッチャー、

 private static class BasicRequestMatcher implements RequestMatcher {
    @Override
    public boolean matches(HttpServletRequest request) {
        String auth = request.getHeader("Authorization");
        return (auth != null && auth.startsWith("Basic"));
    }

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

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

編集
0

コメントを追加

0

関連記事

分類Dev

Spring Security OAuth-このリソースにアクセスするには完全な認証が必要です

分類Dev

Spring Security OAuth2ピュアリソースサーバー

分類Dev

Spring SecurityとLDAP認証

分類Dev

複数の認証プロバイダーLDAP認証とJPAをサポートするSpring Security

分類Dev

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

分類Dev

Spring Security Active Directory LDAP認証エラー

分類Dev

Spring Security Oauth 2.xからのOAuth2 Spring Security 5.2.xアクセス認証済みoauth / token_keyが403を取得

分類Dev

Spring boot 2.0.3 + Security + Oauth2 autoconfigure

分類Dev

Spring Security OAuth2のリソースサーバーは必要ですか?

分類Dev

Spring Security OAuth2実装で成功したOAuth2認証にCookieを設定する

分類Dev

OAuth2 Open IDクライアント認証、それに続くLDAPユーザーの詳細と権限

分類Dev

Spring Security OAuth2でさまざまなユーザータイプを認証する

分類Dev

Spring Security OAuth2- @ EnableOauth2Ssoですが、認証としてトークンも受け入れます

分類Dev

Spring Security OAuth2 | InsufficientAuthenticationException

分類Dev

Spring Security OAuth2:InsufficientAuthenticationException

分類Dev

UnityでのOAuth2認証と操作

分類Dev

OAuth2リソースサーバーと認証サーバーの接続

分類Dev

spring-sessionとspring-security-oauthの両方を使用して同じリソースを保護する方法

分類Dev

Spring Security 5.1.1Spring-security-oauth2認証サーバーに接続するOAuth2クライアント

分類Dev

APIのOAuth2認証/承認

分類Dev

PythonでのAPIのOAuth2認証

分類Dev

Spring Security OAuth2: how to add multiple Security Filter Chain of type ResourceServerConfigurer?

分類Dev

Incremental authorization for Google OAuth2 Sign in with Spring Security

分類Dev

Migrating from Spring Boot Oauth2 to Spring Security 5

分類Dev

Spring Security oauth2とクライアント資格情報のフロー

分類Dev

API認証とOAuth2の使用

分類Dev

admin-on-rest での認証と OAuth2 の実装

分類Dev

oAuth2 Spring Security を介して認証 (プリンシパル) オブジェクトを取得しますか?

分類Dev

JHipster、Spring Security、およびoauth2を使用した認証リダイレクトの制御

Related 関連記事

  1. 1

    Spring Security OAuth-このリソースにアクセスするには完全な認証が必要です

  2. 2

    Spring Security OAuth2ピュアリソースサーバー

  3. 3

    Spring SecurityとLDAP認証

  4. 4

    複数の認証プロバイダーLDAP認証とJPAをサポートするSpring Security

  5. 5

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

  6. 6

    Spring Security Active Directory LDAP認証エラー

  7. 7

    Spring Security Oauth 2.xからのOAuth2 Spring Security 5.2.xアクセス認証済みoauth / token_keyが403を取得

  8. 8

    Spring boot 2.0.3 + Security + Oauth2 autoconfigure

  9. 9

    Spring Security OAuth2のリソースサーバーは必要ですか?

  10. 10

    Spring Security OAuth2実装で成功したOAuth2認証にCookieを設定する

  11. 11

    OAuth2 Open IDクライアント認証、それに続くLDAPユーザーの詳細と権限

  12. 12

    Spring Security OAuth2でさまざまなユーザータイプを認証する

  13. 13

    Spring Security OAuth2- @ EnableOauth2Ssoですが、認証としてトークンも受け入れます

  14. 14

    Spring Security OAuth2 | InsufficientAuthenticationException

  15. 15

    Spring Security OAuth2:InsufficientAuthenticationException

  16. 16

    UnityでのOAuth2認証と操作

  17. 17

    OAuth2リソースサーバーと認証サーバーの接続

  18. 18

    spring-sessionとspring-security-oauthの両方を使用して同じリソースを保護する方法

  19. 19

    Spring Security 5.1.1Spring-security-oauth2認証サーバーに接続するOAuth2クライアント

  20. 20

    APIのOAuth2認証/承認

  21. 21

    PythonでのAPIのOAuth2認証

  22. 22

    Spring Security OAuth2: how to add multiple Security Filter Chain of type ResourceServerConfigurer?

  23. 23

    Incremental authorization for Google OAuth2 Sign in with Spring Security

  24. 24

    Migrating from Spring Boot Oauth2 to Spring Security 5

  25. 25

    Spring Security oauth2とクライアント資格情報のフロー

  26. 26

    API認証とOAuth2の使用

  27. 27

    admin-on-rest での認証と OAuth2 の実装

  28. 28

    oAuth2 Spring Security を介して認証 (プリンシパル) オブジェクトを取得しますか?

  29. 29

    JHipster、Spring Security、およびoauth2を使用した認証リダイレクトの制御

ホットタグ

アーカイブ