私たちはパブリック API を構築しており、この API を使用するクライアントは認証する必要がありますOAuth2 API
。この目的のために を公開することを提案しました。
ただし、認証をフェデレートする必要もあるため、クライアントがAPIOAuth 2
と通信し、API がバックグラウンドで ID プロバイダーと通信していることがわかります。OAuth1/2
SAML2
完全なフローは次のとおりです。
- クライアントは OAuth2 を API に話しかけます。
- このフローの開始時に、API はクライアントを「Choose Your Federated Provider」HTML ページにリダイレクトします。
- プロバイダーを選択すると、API はプロバイダーと OAauth1/2 をやり取りし、リダイレクトをクライアントに戻して、ユーザーがログインの詳細を提供できるようにします。
- 私たちの API はアクセス コードをアクセス トークンとリフレッシュ トークンに交換します (API はこれらを非公開に保ち、クライアントがオフラインの場合でも使用します)。
- 私たちの API はアクセス コードを生成し、これをクライアントに渡します。
- クライアントは、アクセス トークンのアクセス コードを交換します。
プロバイダーが提供するアクセス トークン/更新トークンは、API によってバックグラウンドで使用されます。たとえば、Google カレンダーを最新の状態に保つために使用され、クライアントには渡されません。
これが API で行われている例は見つかりませんでした。では、API サービスにフェデレーション認証を提供するための確立されたモデルは何でしょうか?