2

私たちはパブリック API を構築しており、この API を使用するクライアントは認証する必要がありますOAuth2 API。この目的のために を公開することを提案しました。

ただし、認証をフェデレートする必要もあるため、クライアントがAPIOAuth 2と通信し、API がバックグラウンドで ID プロバイダーと通信していることがわかります。OAuth1/2SAML2

完全なフローは次のとおりです。

  1. クライアントは OAuth2 を API に話しかけます。
  2. このフローの開始時に、API はクライアントを「Choose Your Federated Provider」HTML ページにリダイレクトします。
  3. プロバイダーを選択すると、API はプロバイダーと OAauth1/2 をやり取りし、リダイレクトをクライアントに戻して、ユーザーがログインの詳細を提供できるようにします。
  4. 私たちの API はアクセス コードをアクセス トークンとリフレッシュ トークンに交換します (API はこれらを非公開に保ち、クライアントがオフラインの場合でも使用します)。
  5. 私たちの API はアクセス コードを生成し、これをクライアントに渡します。
  6. クライアントは、アクセス トークンのアクセス コードを交換します。

プロバイダーが提供するアクセス トークン/更新トークンは、API によってバックグラウンドで使用されます。たとえば、Google カレンダーを最新の状態に保つために使用され、クライアントには渡されません。

これが API で行われている例は見つかりませんでした。では、API サービスにフェデレーション認証を提供するための確立されたモデルは何でしょうか?

4

1 に答える 1

0

OAuth Essentials ページで Ping Identity が提供する情報の一部を確認してください。具体的には、「A Standards-based Mobile App IdM Architecture White Paper」(無料、登録制) というタイトルのホワイト ペーパーがあり、SAML + OAuth を使用してフェデレーションを必要とするネイティブ モバイル アプリを保護する方法について説明しています。 . [注: 私は Ping で働いています]。このユース ケースやその他の OAuth 関連のケースを解決するために発生する必要がある情報フローとトークン交換について説明します。

HTH - イアン

于 2012-12-06T20:33:30.050 に答える