Spring OAuth2 に基づくクライアント証明書モードのデモ

クライアント認証情報モード

Client Credentials Grant : クライアントがユーザーに代わってリソースにアクセスするのではなく、クライアント自身のリソースにアクセスする状況に適用されます。クライアント アプリケーションは、独自の資格情報 (つまり、クライアント ID とクライアント シークレット) を使用して認証サーバーに対して直接認証し、アクセス トークンを取得します。この認証方法には、クライアントが独自のリソースにアクセスすることのみが許可されるため、ユーザーは関与しません。

端的に言えば、エンドユーザーを介さずにアプリケーション間の認証を行う方法です。例:
2 つのシステム A と B があります。システム A は外部に REST サービス インターフェイスを提供し、OAuth2 認証を使用します。システム A のインターフェイスを呼び出すために、B はクライアント資格情報モードを使用して A のインターフェイス サービスにアクセスできます。
実際のアプリケーションでは、このアプローチは企業内の SOA サービスで広く使用されています。
大企業では通常、さまざまなシステム間の通話インターフェイスを統一的に管理するための専用の SOA 部門があり、このような管理の主な利点は次のとおりです。

  1. 高い再利用性
  2. 電流制限などの便利な監視と管理。
  3. 互換性の向上: たとえば、A が提供するインターフェイスが変更された場合、ダウンストリーム呼び出しは SOA を変更するだけで済みます。
  4. より良いセキュリティ

OAuth2のクライアント資格情報モードが普及する前はBASIC認証が最も広く使われていたはずで、もちろん匿名アクセスも可能ですが、セキュリティは良くありません。では、なぜクライアント資格情報モードは安全なのでしょうか? 次に、まずクライアント資格情報モードがどのように機能するかを見てみましょう。

  1. 認証サーバーは、各クライアントに ID とキー (client_id と client_secret) を割り当てます。
  2. クライアントは、ID とキーを使用して認証サーバーからトークンを取得します。
  3. このトークンには有効期限があり、期限が切れると無効になります。トークンは再取得可能です。
    ここのトークンには有効期限があるため、セキュリティが強化されます。この仕組みと現実

おすすめ

転載: blog.csdn.net/oscar999/article/details/131969820