SAML ユーザープール IdP 認証フロー - Amazon Cognito

SAML ユーザープール IdP 認証フロー

ユーザープールから直接、SAML ベースの IdP を統合できます。

  1. アプリはユーザーに AWS によってホストされる UI を指定することで、サインアップとサインインを開始します。モバイルアプリはウェブビューを使用して AWS によってホストされているウェブページを表示することができます。

  2. 通常、ユーザープールはユーザーの E メールアドレスからユーザーの ID プロバイダーを判断します。

    また、アプリがユーザーをユーザープールにダイレクトする前に情報を収集した場合は、クエリパラメータを通じてその情報を Amazon Cognito に提供することができます。

  3. ユーザーは ID プロバイダーにリダイレクトされます。

  4. 必要に応じて IdP がユーザーを認証します。IdP がユーザーにアクティブなセッションがあると認識している場合、IdP で認証がスキップされ、シングルサインイン (SSO) が提供されます。

  5. IdP は Amazon Cognito サービスに SAML アサーションを POST します。

  6. SAML アサーションが検証され、アサーションからユーザー属性 (クレーム) が収集されると、Amazon Cognito がユーザープールのユーザープロファイルを内部で作成または更新します。Amazon Cognito が、サインインされたユーザーの OIDC トークンをアプリに返します。

次の図は、このプロセスの認証フローを示しています。


                    ユーザープールでの SAML IdP を使用した認証フロー図。
注記

5 分以内に完了しなかったリクエストはキャンセルされ、ログインページにリダイレクトされて、Something went wrong エラーメッセージが表示されます。

ユーザーが認証されると、ユーザープールから ID、アクセス、更新トークンが返されます。ID トークンは ID 管理用の標準 OIDC トークンであり、アクセストークンは標準 OAuth 2.0 トークンです。ID トークンおよびアクセストークンは 1 時間で失効しますが、アプリは更新トークンを使用して新しいトークンを取得します。ユーザーの再認証は不要です。デベロッパーは、更新トークンの有効期限、つまりユーザーが再認証を必要とする頻度を選択できます。ユーザーが外部 IdP 経由で認証された (フェデレーティッドユーザーなど) 場合でも、アプリは外部 IdP のトークンの有効期限にかかわらず、更新トークンと共に Amazon Cognito トークンを使用して、ユーザーの再認証までの時間を判断します。ユーザープールは更新トークンを自動的に使用し、失効したときに新しい ID トークンとアクセストークンを取得します。更新トークンも失効している場合、AWS でホストされるアプリのページ経由で認証が自動的にサーバーで開始されます。