web-dev-qa-db-ja.com

Oauth2 GrantTypesとGoodドキュメントのリアルタイムの例。SpringMVCを使用したOauth2の例

数日前にOauth2について読みましたが、クライアント、リソース所有者、リソースサーバー、承認サーバーなどのエンティティがあり、説明も理解しました。しかし、私は助成金の種類を完全には理解していません。それでも私は次の種類について混乱しました。 Oauth2には、次のような4つの異なる付与タイプがあります。

  1. 認証コード
  2. 暗黙的
  3. リソース所有者のパスワード資格情報
  4. クライアント資格情報

実装を区別するために、上記のタイプのリアルタイムの例をいくつか教えてください。 Spring Security oauth2の付与実装の種類と、セキュリティを備えたSpringoauth2のフルフローを知る必要があります。

Spring MVC、SpringSecurityを使用してoauth2で実装されたいくつかの例を実行しました。しかし、それは私を混乱させます私はapiの実装の明確な絵を得ることができません。

SpringmvcとSpringセキュリティを備えた優れたOauth2フローとドキュメントを探しています。私を助けてください。

11
Pravinkumar

フローとそれらの違いを理解するという点では、 このプレゼンテーション は私がオンラインで見つけた最高のリソースです。この後、OAuth2の仕様の説明を読むと、従うのがはるかに簡単になります。

残念ながら、コードサンプルに関しては、Spring Security OAuth2の優れたサンプルコードはありません(SparklrとTonrの例は問題ありませんが、あまり明確ではありません)。 Spring Security OAuth2コードの単体テストを調べるのが最善のリソースです github上

私が聞きたい質問の1つは、独自のOAuth2プロバイダーを作成しようとしているのか、それともOAuth2クライアントとしてFacebookやGoogleなどに接続したいのかということです。 2番目の部分の場合は、Spring Security OAuth2をスキップして、代わりに Spring Social project を確認することをお勧めします。

編集:OAuth2プロバイダーを作成するには、Dave Syerによるこのコードを確認してください(彼はSpring Security OAuthプロジェクトのリーダーです)。20年にOAuth2プロバイダーとリソースサーバーを作成する方法を示しています。コード行。これは、SpringSecurityを作成する最も簡単な方法ですOAuthコード。 https://github.com/dsyer/sparklr-boot

SpringBootとSpringSecurity OAuthプロジェクトを使用します。もちろん、これらすべてがどのように機能するかを理解するには、Spring Security、JavaConfig構成、およびOAuth2プロトコルを正しく理解する必要があります。

13
Jigish

認証コードはリダイレクトベースのフローです。ほとんどのアプリケーションでは、FacebookまたはGoogle経由でログインするときに、この付与タイプを使用します。

暗黙的は主にモバイルまたはシングルページアプリケーションで使用されます。クライアントの機密性はここでは保証されません。これにも、認証コードと同様のリダイレクトフローがあります。これは更新トークンをサポートしていません。

パスワード付与タイプは、クライアントアプリケーションとリソース所有者が同じアプリケーションに属している場合に使用されます。これは、アプリケーションがエンドツーエンドで機能している場合に当てはまります。ここでは、ユーザー名とパスワードを共有しています。 FacebookまたはGoogleを介して認証する上記の2つとは異なります。

クライアント資格情報:独自のサービスにアクセスする方法。あるマイクロサービスが別のマイクロサービスにアクセスするようなものです。

2

OAuth2を使用する場合、付与タイプは、アプリケーションがアクセストークンを取得する方法です。以下は、OAuth2仕様に従った付与タイプです-

  • 認証コードの付与
  • 暗黙の付与
  • リソース所有者の資格情報の付与
  • クライアント資格情報の付与

説明とソースコードでいくつかの良い例を見つけました-
Spring + OAuth2 Authorization Grant
Spring + OAuth 2 Client Credentials Grant
Spring + OAuth 2 Password Grant

2
Gordan

また、先月の春を利用してOAuth2に参加しました。

OAuth2仕様 のほとんどを読み、 spring-security ソースからのサンプルを使用しました。これはすばらしいことです。そうすることで、仕様の次にソースを試して表示するために使用できる実行中のアプリケーションを入手しました。

1
Jonas Geiregat