SP 開始 SAML サインインの使用 - Amazon Cognito

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

SP 開始 SAML サインインの使用

ベストプラクティスとして、ユーザープールに service-provider-initiated (SP 開始) サインインを実装します。Amazon Cognito はユーザーのセッションを開始し、IdP にリダイレクトします。この方法では、サインインリクエストを提示するユーザーを最も細かく制御できます。特定の条件下で IdP 開始サインインを許可することもできます。詳細については、「Amazon Cognito ユーザープールでの SAML セッション開始」を参照してください。

以下のプロセスは、ユーザーが SAML プロバイダーを介してユーザープールにサインインする方法を示しています。

Amazon Cognito SP 開始 SAML サインインの認証フロー図。
  1. ユーザーはサインインページで E メールアドレスを入力します。ユーザーの IdP へのリダイレクトを確認するには、カスタムアプリケーションで E メールアドレスを収集するか、ウェブビューでホストされた UI を呼び出します。ホストされた UI を設定して、 のリストを表示する IdPs か、E メールアドレスのみの入力を求めることができます。

  2. アプリはユーザープールリダイレクトエンドポイントを呼び出し、アプリに対応するクライアント ID とユーザーに対応する IdP ID を持つセッションをリクエストします。

  3. Amazon Cognito は、 AuthnRequest要素でオプションで署名された SAML リクエストを使用して、ユーザーを IdP にリダイレクトします。

  4. IdP は、インタラクティブにユーザーを認証するか、ブラウザ Cookie で記憶されたセッションを使用してユーザーを認証します。

  5. IdP は、POST ペイロード内のオプションで暗号化された SAML アサーションを使用して、ユーザーをユーザープールの SAML レスポンスエンドポイントにリダイレクトします。

    注記

    Amazon Cognito は、5 分以内にレスポンスを受信しないセッションをキャンセルし、ユーザーをホストされた UI にリダイレクトします。ユーザーがこの結果を経験すると、Something went wrongエラーメッセージを受け取ります。

  6. SAML アサーションを検証し、レスポンスのクレームからユーザー属性をマッピングすると、Amazon Cognito はユーザープールでユーザーのプロファイルを内部的に作成または更新します。通常、ユーザープールはユーザーのブラウザセッションに認証コードを返します。

  7. ユーザーは認証コードをアプリケーションに提示し、アプリケーションはコードを JSON ウェブトークン (JWTs。

  8. アプリはユーザーの ID トークンを認証として受け入れて処理し、アクセストークンを使用して リソースへの承認されたリクエストを生成し、更新トークンを保存します。

ユーザーが認証され、認証コードの付与を受け取ると、ユーザープールは ID、アクセス、および更新トークンを返します。ID トークンは、OIDC ベースの ID 管理用の認証オブジェクトです。アクセストークンは、OAuth 2.0 スコープを持つ認証オブジェクトです。更新トークンは、ユーザーの現在のトークンの有効期限が切れたときに新しい ID トークンとアクセストークンを生成するオブジェクトです。ユーザープールアプリクライアントでユーザーのトークンの期間を設定できます。

更新トークンの期間を選択することもできます。ユーザーの更新トークンの有効期限が切れたら、再度サインインする必要があります。SAML IdP を介して認証された場合、ユーザーのセッション期間は、IdP とのセッションの有効期限ではなく、トークンの有効期限によって設定されます。アプリは、各ユーザーの更新トークンを保存し、有効期限が切れたらセッションを更新する必要があります。ホストされた UI は、1 時間有効なブラウザ Cookie でユーザーセッションを維持します。