問題タブ [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 - ソーシャル ログインを使用した Spring OAuth2 + REST WS
ソーシャル (Facebook、Google) 登録と共に電子メール/パスワード登録を可能にするモバイル (および Web) アプリケーションを作成します。ネイティブまたは Web アプリは REST Web サービスを呼び出します (Spring OAuth2 によって保護されています)。ソーシャル ログインは、ネイティブの /web アプリによって処理されます。ユーザーがログインしている場合、REST サービスには手がかりがありません。電子メールの登録の場合、ユーザー名/パスワードが WS に渡されます。事実を考慮して、REST サービスを保護するための標準的または適切なアプローチは何ですか? 同様のアーキテクチャの経験はありますか?
私たちが経験しているいくつかのアイデア:
- アプリ起動時の最初にデバイスIDをWSに渡します。WS は、1 つの認証コードを含むプッシュ通知をデバイスにサイレントに ( apple/google を使用して) 送信します。このコードは OAuth2 認証のために渡されます。しかし、ここで Web アプリケーションを処理する方法がわかりません。
- ユーザーが social にログインしたら、ソーシャル プロバイダーからソーシャル ID の passoing トークンを取得します。ソーシャル アクセス トークンとこの ID を WS に渡します。WS は、プロバイダーの oauth サービス (例: https://graph.facebook.com/me?fields=id&access_token=XXX )を呼び出して、id に対してトークンを検証します。
spring-security - Spring Oauth2 - プリンシパルのリロード
春のセキュリティモジュールでOAuth2パスワード付与を実装しました。UserDetails と UserDetailsService (jdbc) の独自の実装を追加します。次のように User をコントローラーに挿入します。
User は UserDetails の私の実装です。ここで、トークンを更新せずにユーザー データを変更できるようにしたいと考えています。
私はプリンシパルを次のように更新しようとします:
別のコントローラーメソッドを呼び出すと、古いユーザーオブジェクトが返されます。
トークンを更新せずにユーザー データを変更する方法はありますか? キャッシュからではなくデータベースから常にユーザーデータをロードするように春のセキュリティを作成するソリューションはありますか?
spring-cloud - Spring Cloud OAuth2 SSO とリフレッシュ トークン
シナリオは次のとおりです。
Web アプリ (webapp) 認証は、spring.oauth2.sso.* プロパティを設定することにより、OAuth Authorization Server SSO を使用します。
ユーザー認証と webapp には、ユーザー資格情報と access_token が含まれるようになりました。次に、アプリケーションはこのトークンを使用して、バックエンドで特定のマイクロサービスを呼び出します。
トークンの有効期限が切れると、最終的に 403 Unathorized になります。
更新トークンがないため、ユーザーに再度ログインを強制する必要がありますか? ユーザーがトークンの TTL よりも長くログインしたままにしたい場合はどうすればよいでしょうか?
何かご意見は?
java - Spring Security Oauth2 のヘッダーでユーザー名とパスワードを送信する
アクセス トークンの生成に Spring Security Oauth2 を使用しています。password
付与タイプとして使用する場合、投稿リクエストを次のように送信します
URL でユーザー名とパスワードを送信したくありません。
のソースコードをチェックしTokenEndPoint.java
ましたが、あまり見つかりませんでした。HTTPS
ユーザー名とパスワードを使用して暗号化できることはわかっています。
ヘッダーでユーザー名とパスワードを送信する方法があるかどうか知りたいだけです。
oauth-2.0 - spring boot OAuth2 ロールベースの承認
AuthorizationServerConfigurerAdapter を拡張する専用の承認サーバーがあり、void configure(ClientDetailsServiceConfigurer clients) メソッドをオーバーライドする権限を設定しています。
次に、リソース サーバーで権限を使用してロール ベースの承認を行う方法について説明します。認可サーバーが生成したトークンを介して認証できます。助けが必要。
spring-rest - Spring-OAuth2 の CORS
REST API を保護するために Spring-Boot と Spring-OAuth2 を使用しています。OAuth2 を実装しました。きちんと実行されます。AngularJS を開発してアクセスしようとしましたが、CORS エラーが発生します。
エラー->Cross-Origin Request Blocked: The Same Origin Policy disallows reading the remote resource at http://192.168.2.45:8080/Jaihind/oauth/token. (Reason: CORS header 'Access-Control-Allow-Origin' missing).
URL ->curl -X POST -vu clientapp:123456 http://localhost:8080/Jaihind/oauth/token -H "Accept: application/json" -d "password=password&username=gaurav&grant_type=password&scope=read%20write&client_secret=123456&client_id=clientapp"
以下はコードです。
OAuth2ServerConfiguration.java
フィルターも追加しました。
spring-security - oauth2およびformloginを使用したSpring Securityでusernamepasswordauthenticationfilterが呼び出されない
スプリング ブート アプリケーションでスプリング セキュリティ oauth2 とフォーム ログインを機能させようとしています。
https://github.com/spring-projects/spring-security-oauth/tree/master/samples/oauth2/sparklrからヒントを得ました
と
https://github.com/royclarkson/spring-rest-service-oauth/issues/11
以下は私の構成です
上記の構成では、認証を試みると oauth2 ログインが正常に機能します
/oauth/トークン
ただし、経由でログインします
/ウェブ/認証
常に表示
405リクエストメソッド「POST」はサポートされていません
usernamepasswordauthenticationfilter が呼び出されていません。
上記のコードの ResourceServerConfiguration 部分をコメントした後、
フォームログイン
/ウェブ/認証
正常に動作しています。
また、ログから usernamepasswordauthenticationfilter が呼び出されていることも確認できます。
私の質問は、エンドポイントでさえ oauth2 リソース サーバーとフォーム ログインで異なるように構成されていることです。なぜ oauth2 がフォーム ログインの httpsecurity をオーバーライドし、リソース サーバーの構成時に usernamepasswordauthenticationfilter が呼び出されないのですか?