0

Spring Securityで、残りのapiのすべてのエンドポイントをロックし、ユーザー名とパスワードをまったく使用せずにカスタム検証を実行してログインできるかどうか疑問に思っていました。ユーザーのパスワードを使用しないSpring Securityのカスタム検証

これは、ユーザー/パスではなくトークンを受け取るカスタム検証メソッドを作成するようなものです。メソッドは、呼び出し元をすでに検証している第三者とトークンを検証します。

これは、バックエンドのAPIは、スプリングにより、セキュアであることが必要であり、同時にそれはのOAuth2クライアントではないだけというのOAuth2に聞き覚え:

  1. 私たちは、ログイン機能を構築しています。
  2. 私たちは、クライアント(モバイルアプリケーション)、バックエンド(エンドポイントのようなエンドポイントのSpring MVC)、OAuth2/OpenIdConnectフローのAuthProviderを持っています。
  3. OAuth/OpenIDConnectフローは、モバイルとOpenIDProvider間でのみ発生します。 (最初の呼び出しは、モバイルからバックエンドへと発生し、oauthフローの詳細を提供します)
  4. モバイルアプリケーションはauth_codeを受信し、その後、バックエンドがアプリから「ログイン」に呼び出されます。 auth_code、access_tokenの交換、およびユーザーセッションの作成。 (セッションが必要です)。
  5. セッションを作成する前にauth_codeだけを受け取る必要があるという点で、バックエンドの種類の「ログイン」を参照し、AuthProviderでそれを検証します。

ありがとうございました!

ご意見、ご感想などありがとうございます。

答えて

1

春のセキュリティは、ユーザーかどうかを判断しますを見て認証されますSecurityContextHolderの。これは、以下のものを使用してのような、しかし、あなたがユーザーを認証できることを意味します:

​​
+0

ありがとうRob Winch!あなたのアドバイスに続いて、私はカスタムのバリデーションを処理するカスタムフィルターとプロバイダーを使用することができました。 – munilvc

1

スプリングセキュリティは、ユーザーが必要に応じて動作をカスタマイズできるようにするさまざまなインターフェイスを公開する非常に柔軟なフレームワークです。

私はこれについて移動する方法については、次のリソースをお勧めします:

+1

応答をありがとうございました!リンクは非常に便利で、ビデオは素晴らしいです! – munilvc

関連する問題