数日前にOauth2について読みましたが、クライアント、リソース所有者、リソースサーバー、承認サーバーなどのエンティティがあり、説明も理解しました。しかし、私は助成金の種類を完全には理解していません。それでも私は次の種類について混乱しました。 Oauth2には、次のような4つの異なる付与タイプがあります。
実装を区別するために、上記のタイプのリアルタイムの例をいくつか教えてください。 Spring Security oauth2の付与実装の種類と、セキュリティを備えたSpringoauth2のフルフローを知る必要があります。
Spring MVC、SpringSecurityを使用してoauth2で実装されたいくつかの例を実行しました。しかし、それは私を混乱させます私はapiの実装の明確な絵を得ることができません。
SpringmvcとSpringセキュリティを備えた優れたOauth2フローとドキュメントを探しています。私を助けてください。
フローとそれらの違いを理解するという点では、 このプレゼンテーション は私がオンラインで見つけた最高のリソースです。この後、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プロトコルを正しく理解する必要があります。
認証コードはリダイレクトベースのフローです。ほとんどのアプリケーションでは、FacebookまたはGoogle経由でログインするときに、この付与タイプを使用します。
暗黙的は主にモバイルまたはシングルページアプリケーションで使用されます。クライアントの機密性はここでは保証されません。これにも、認証コードと同様のリダイレクトフローがあります。これは更新トークンをサポートしていません。
パスワード付与タイプは、クライアントアプリケーションとリソース所有者が同じアプリケーションに属している場合に使用されます。これは、アプリケーションがエンドツーエンドで機能している場合に当てはまります。ここでは、ユーザー名とパスワードを共有しています。 FacebookまたはGoogleを介して認証する上記の2つとは異なります。
クライアント資格情報:独自のサービスにアクセスする方法。あるマイクロサービスが別のマイクロサービスにアクセスするようなものです。
OAuth2を使用する場合、付与タイプは、アプリケーションがアクセストークンを取得する方法です。以下は、OAuth2仕様に従った付与タイプです-
説明とソースコードでいくつかの良い例を見つけました-
Spring + OAuth2 Authorization Grant
Spring + OAuth 2 Client Credentials Grant
Spring + OAuth 2 Password Grant
また、先月の春を利用してOAuth2に参加しました。
OAuth2仕様 のほとんどを読み、 spring-security ソースからのサンプルを使用しました。これはすばらしいことです。そうすることで、仕様の次にソースを試して表示するために使用できる実行中のアプリケーションを入手しました。