IdentityServerは、 Flows enumで定義され、クライアントに設定されたさまざまなOpenId Connectフローをサポートします。また、ドキュメントにはフローの各タイプのサンプルとそれらへの多くの参照がありますが、 documentation にあるフローの簡単な定義リストを見つけることができませんでした。しかし、そうではないと思います。これらの違いについて詳しく教えてください。おそらくドキュメントに追加できますか?
だから何ですか:implicitflow、resource owner password credentialflow、認証コードフロー、クライアント認証情報フロー、カスタム許可フロー、およびハイブリッドフロー?また、どのフローがOAuthフローであり、どのフローがOpenID Connectフローですか?
ありがとう!
私は同じ問題に直面しました。現在、作業はまだ進行中です。ドキュメントを完成したら、ここに投稿するかもしれません。当分の間:下書きを確認してください:
leastPrivilageの最初のリンクから:および Aharon Paretzki's OAuth 2 Simplified
フローは、IDトークン(認証コード)と- アクセストークン(つまり「トークン」)がクライアントに返されます。
認証コードフロー:OAuth 2.0 flow
暗黙的なフロー:OAuth 2.0 flow
ハイブリッドフロー:OAuth 2.0 flow
仕様を参照してください-すでにすべて書き留められています:
http://openid.net/specs/openid-connect-core-1_0.html および http://tools.ietf.org/html/rfc6749
さらに、私は最近、さまざまなアプリケーションタイプに分類する要約を書きました。
http://leastprivilege.com/2016/01/17/which-openid-connectoauth-2-o-flow-is-the-right-one/
OAuth2 で定義されているフローは、クライアントがIDプロバイダーサーバーからaccess token
を受信するいくつかの方法にすぎません。この場合はIdentityServer
。 Resource Owner
、User Agent
、Resource Server
などの フロー図 で指定されたエンティティを完全に理解しない限り、フローを理解することは容易ではありません。 here には、これらのエンティティ(貴重な役割)に関する簡単な説明があります。
認証コードフロー:authorization code
を発行する前にaccess token
を発行します。
authorization code.
を要求しますauthorization code
を発行するための承認を許可するように依頼します。access token
でauthorization code
を要求しますaccess token
をクライアントに直接発行します。暗黙のコードフロー:access token
が提供されていなくてもauthorization code
を発行します。
access token
を直接要求します。access token
を発行するための承認を許可するように要求しますauthorization code
を発行しません。暗黙的なフローは、javascript
などのスクリプト言語を使用するクライアントにとって、クライアントがauthorization code
とaccess token
を個別に要求する必要がないため、理想的なフローと見なされます、順番に、クライアントの1つのネットワークラウンドトリップを削減します。
クライアント資格情報フロー:リソース所有者の許可なしにaccess token
を発行します。
access token
を発行します。これは、クライアントがリソース所有者でもある場合に理想的であるため、access token
までの承認権限は必要ありません。
リソース所有者フロー:クライアントがリソース所有者の資格情報(例:Id/Password)を持っている場合はaccess token
を発行
access token
を直接要求します。access token
を即座に取得します。このフローは、IDおよびパスワードを共有することが絶対に安全であると考えているクライアントに最適です。
ハイブリッドフロー(OIDCフロー):authorization code
およびaccess token
を発行します。
これは、Authorization code flow
とImplicit code flow
の組み合わせです。それがHybrid
と呼ばれる理由です。
カスタムフロー
これは文字通りカスタマイズ可能なフローです。これは、OAuth2
のすべてのプロトコル仕様に加えて、ビジネスで特定の認証/検証プロセスが必要な場合に使用できます。
IdentityServerはこの種の状況を十分に認識しており、設計により拡張性をサポートしています。ファクトリパターン、デコレータパターン、およびIoC/DIにより、IdentityServerに追加機能を実装しやすくなります。