1

Spring Oauth2 に基づく認証サーバーを開発しています。UserDetailsカスタム実装 (およびその他のカスタム コンポーネント) を介してカスタム データをトークンに追加し、認証サーバーのユーザーをアプリケーションのエンティティにマップできるようにしました。

アプリケーション バックオフィスは、管理インターフェイスを介した新しいユーザーの作成もサポートします。このため、 で始まるいくつかのエンドポイントを開いています/users

この ednpoints には、信頼範囲を持つ認証済みクライアントのみがアクセスできるようにしたいと考えています。したがって、これらのエンドポイントへのリクエストは、Client Credentials Grant を介して取得された有効なトークンを含むAuthorizationヘッダーを提供することが期待されます。Bearer

を拡張して、これらのエンドポイントのセキュリティを構成しようとしましたWebSecurityConfigurerAdapterconfigure(HttpSecurity http)メソッドと結果のさまざまなバージョンを次に示します。

http.csrf().disable().authorizeRequests().antMatchers("/users/**").permitAll();

これは機能します!しかし、確保されていません。

http.csrf().disable().authorizeRequests().antMatchers("/users/**").authenticated();

失敗!認証を行うフィルターが適用されていないようで、403 Forbidden応答が返ってきます。または、認証されたクライアントを示唆する他の構成に置き換えauthenticated()ても、同じことが起こります。hasRole(...)hasAuthority(...)

問題は、信頼されたスコープを持つクライアントに対してエンドポイントを保護するようにエンドポイントを構成するにはどうすればよいかということです。

4

0 に答える 0