問題タブ [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.
spring - OAuth2 認証サーバー / ユーザー エンドポイントからカスタム ユーザー情報を取得する方法
@EnableResourceServer
アノテーションで構成されたリソースサーバーがあり、user-info-uri
次のようにパラメーターを介して承認サーバーを参照します。
承認サーバー/ユーザー エンドポイントは、org.springframework.security.core.userdetails.User
たとえば電子メールを含む拡張子を返します。
一部のリソース サーバー エンドポイントにアクセスするたびに、Spring は承認サーバーのエンドポイントを呼び出してバックグラウンドでアクセス トークンを検証し、/user
実際に強化されたユーザー情報を取得します (メール情報などを含む、Wireshark で検証済み)。
/user
したがって、問題は、承認サーバーのエンドポイントへの明示的な 2 回目の呼び出しを行わずに、このカスタム ユーザー情報を取得するにはどうすればよいかということです。Spring は承認後にリソース サーバーのどこかにローカルに保存しますか、それともすぐに利用できるものが何もない場合にこの種のユーザー情報保存を実装する最良の方法は何ですか?
spring - セキュリティ フィルタが重複しています
複数のフィルターが HttpSecurity 構成メソッドに追加されると、一度に 1 つしか機能しないため、それらが重複しているように見えます。
これは設定方法です:
順序を指定しようとしましたが、問題は解決しません:
次のスレッドをたどりましたが、成功しませんでした。
https://github.com/spring-projects/spring-boot/issues/1640
https://github.com/spring-projects/spring-boot/issues/677
どんな助けでも大歓迎です!
アップデート:
CSRF フィルター定義
SSO フィルターの定義:
spring-mvc - Spring OAuth2 および JWT 認証情報
リソース サーバーとして機能する Spring Boot (1.3.x) アプリケーションがあり、Authorization ヘッダーで Keycloak から JWT トークンを渡すことができ、いくつかのエンドポイントへのアクセスを許可されています。私が直面している問題は、Authorization オブジェクトの JWT トークンにある情報を取得できないことです。
IDPにトークンを入れてもらうと、pにはclient_idの名前が保持されます。
isClientOnly() は true を返します。なんで?
ユーザーの名前と許可を取得できるようにしたいのですが、何も見つかりません。client_id がない場合、実際には null です。
検証後にJWTトークンがどのように処理されるかについて何かを構成する必要があるかどうかを理解しようとしましたが、正しい情報がAuthenticationオブジェクトに取り込まれますが、完全に混乱しています。どうすればそれを実現できますか?
Spring Boot は、何かを実行するためにほとんど何もできないという点で優れていますが、同時に、どこから始めればよいのか、そもそも何を設定すればよいのか途方に暮れています...
私のapplication.yml:
私のSecurityConfig.java:
spring-security - 同じ Spring Boot アプリケーションによってサポートされる複数の Facebook アプリ
だから私はFacebookでスプリングブートのための以下の(古典的な)チュートリアルに従っていました:
https://spring.io/guides/tutorials/spring-boot-oauth2/
すべて正常に動作していますが、特定のユース ケースの実装に役立つドキュメントが見つかりません。だからここに行く:
- 2 つの Facebook アプリを用意します。1 つは所有者用で、もう 1 つは通常のユーザー用です。
- これら 2 つの Facebook アプリは、異なる権限を要求します (例:所有者アプリの場合、ファンページに投稿する権限を要求し、通常のユーザーの場合、基本的なユーザー情報のみを要求します)。
- 1 つのモバイル(iOS と Android) と別のブラウザー ベースのアプリケーション(実際には関係ありません) の2 つの実際のアプリケーションがあります。
- REST API はロールに基づいて保護されます。つまり、所有者はOWNERロールを持ち、通常のユーザーはREGULAR_USERロールを持ちます。たとえば、通常のユーザーは API を呼び出して投稿することはできません。ファンページ
- より多くの情報を格納するために users テーブルが必要なため、どちらのアプリケーションでも facebook の有無にかかわらずログインできます。
- **所有者*アプリをダウンロードすると、通常のユーザーは最終的に所有者としてログインできます
要約すると、次のものが必要です。
- 同じスプリング ブート アプリケーションによってサポートされる 2 つの Facebook アプリ
- APP ID Xを使用してユーザーを許可し、OWNERロールを割り当てる機能、およびAPP ID Yを使用してユーザーを許可し、ロールREGULAR_USERを割り当てる機能
- 2 つの異なる Facebook アプリを (YML で) 構成できるようにする
- ユーザーが後で承認した場合、既存のアカウントを facebook と統合できるようにする
それだけだと思います。提供するより有用な情報を見つけたら、後で編集します。
ありがとう!
spring-oauth2 - 冗長化された Oauth 認証サーバー (高可用性/フェイルオーバー)
マイクロサービス間で oauth 認証を使用することを検討しています。認証サーバーがダウンしても、これらのサービスが機能し続けることは非常に重要です。
私のシナリオでは、AuthorizationServer を冗長にするべきではありませんか?
独自の AuthorizationServer ( https://github.com/spring-cloud-samples/authserver.gitに基づく) を使用しています (最新の安定した spring cloud / spring boot api を使用しています) 。
2 番目の AuthorizationServer の操作に関するドキュメントが見つからなかったため、最初の AuthorizationServer がダウンしてもマイクロサービスは動作し続けます。誰でもこれを行う方法を説明できますか?