問題タブ [spring-oauth2]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - セキュリティで保護された管理エンドポイントを Spring OAuth2 サーバーに追加するには?
Spring Oauth2 に基づく認証サーバーを開発しています。UserDetails
カスタム実装 (およびその他のカスタム コンポーネント) を介してカスタム データをトークンに追加し、認証サーバーのユーザーをアプリケーションのエンティティにマップできるようにしました。
アプリケーション バックオフィスは、管理インターフェイスを介した新しいユーザーの作成もサポートします。このため、 で始まるいくつかのエンドポイントを開いています/users
。
この ednpoints には、信頼範囲を持つ認証済みクライアントのみがアクセスできるようにしたいと考えています。したがって、これらのエンドポイントへのリクエストは、Client Credentials Grant を介して取得された有効なトークンを含むAuthorization
ヘッダーを提供することが期待されます。Bearer
を拡張して、これらのエンドポイントのセキュリティを構成しようとしましたWebSecurityConfigurerAdapter
。configure(HttpSecurity http)
メソッドと結果のさまざまなバージョンを次に示します。
これは機能します!しかし、確保されていません。
失敗!認証を行うフィルターが適用されていないようで、403 Forbidden
応答が返ってきます。または、認証されたクライアントを示唆する他の構成に置き換えauthenticated()
ても、同じことが起こります。hasRole(...)
hasAuthority(...)
問題は、信頼されたスコープを持つクライアントに対してエンドポイントを保護するようにエンドポイントを構成するにはどうすればよいかということです。
spring-boot - 認可サーバーからリソース サーバーのユーザー ロールを取得する
ユーザー名とパスワードに基づいて、ロールとともにDBからユーザーの詳細を取得する承認サーバーがあります。
リソース サーバーで保護されたリソースにアクセスしている間 (access_token を渡す)、ロールに基づいて残りの呼び出しを承認したいのですが、どうすればよいですか? リソースサーバーでプリンシパルユーザーを確認しているときに、デフォルトの[ROLE_USER]を取得しているためです
ガイドしてください..よろしくお願いします
spring - Spring Cloud Security で OAuth2「Token Exchange」を実装する方法
Spring Cloud Security (OAuth2 を使用) で「トークン交換」手法を実装する方法を誰かが例を持っているかどうか知りたいです。
現在、ZuulProxyを使用してOAuth2トークンを「リレー」し、SSOを実装するマイクロサービス環境に「トークンリレー」手法を実装しました。これは素晴らしいことですが、すべてのマイクロサービスが同じ clientId を使用することを意味します (ZuulProxy は、authorization_code 許可タイプと提供された clientId のみを使用してトークンをリレーするため、ZuulProxy セットアップで指定されます)。ただし、マイクロサービス内の呼び出しについては、トークンを「交換」したいと考えています。これは、場合によっては、ZuulProxy がリレーするトークンが、マイクロサービス A をマイクロサービス B のクライアントとして認証/承認するために使用する必要があるものではないことを意味します。
現在、Spring Cloud のリファレンス ドキュメントには、「Spring Boot と Spring Security OAuth2 に基づいて構築することで、シングル サインオン、トークン リレー、トークン交換などの一般的なパターンを実装するシステムをすばやく作成できます」と記載されています。( http://cloud.spring.io/spring-cloud-security/spring-cloud-security.html )
参照ドキュメントの「トークン交換」とは、この仕様で説明されている OAuth2 のこの拡張機能の実装を意味していると思います。これは基本的に必要なものです: https://datatracker.ietf.org/doc/html/draft- ietf-oauth-token-exchange-03
前述のとおり、SSO とトークン リレーの使用方法は理解していますが、リファレンス ドキュメントで「トークン交換」を実装する方法についての詳細な説明を参照できません。実装例も見つかりませんでした。
詳細情報や例がどこにあるか知っている人はいますか?
本当にありがとう!
spring-boot - spring eureka を使用して spring oauth を接続するにはどうすればよいですか?
AngularJS と OAuth を使用して作成するための Spring チュートリアルを使用してシングル ページ アプリケーションを作成しました 。
これは、SPA アプリケーションの application.yml ファイルです。
URL を指定する必要がないように、zuul ルートとユーザー情報 uri を変更する方法を知りたいのですが、これはすべてサービス ID を使用して実行できます。ここで eureka を使用するためのチュートリアルを見ました。
しかし、基本的な eureka サーバーはすでにすべてのサービスを登録しているように見えるため、コードにすべての Java を追加せずに目標を達成する方法がよくわかりません。