SAML サインアウトフロー - Amazon Cognito

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

SAML サインアウトフロー

Amazon Cognito は SAML 2.0 シングルログアウト をサポートしています。サインアウトフロー をサポートするように SAMLIdP を設定すると、Amazon Cognito は署名付きSAMLログアウトリクエストでユーザーを IdP にリダイレクトします。Amazon Cognito は、IdP メタデータSingleLogoutServiceURLの からリダイレクト場所を決定します。Amazon Cognito は、ユーザープール署名証明書を使用してサインアウトリクエストに署名します。

Amazon Cognito SAMLサインアウトの認証フロー図。ユーザーはサインアウトをリクエストし、Amazon Cognito はSAMLサインアウトリクエストを使用してプロバイダーにリダイレクトします。

SAML セッションを持つユーザーをユーザープール/logoutエンドポイントに誘導すると、Amazon Cognito は次のリクエストでSAMLユーザーを IdP メタデータで指定されたSLOエンドポイントにリダイレクトします。

https://[SingleLogoutService endpoint]? SAMLRequest=[encoded SAML request]& RelayState=[RelayState]& SigAlg=http://www.w3.org/2001/04/xmldsig-more#rsa-sha256& Signature=[User pool RSA signature]

その後、ユーザーは IdP LogoutResponseから を使用してsaml2/logoutエンドポイントに戻ります。IdP は HTTP POSTリクエストLogoutResponseで を送信する必要があります。Amazon Cognito は、最初のサインアウトリクエストからリダイレクト先にリダイレクトします。

SAML プロバイダーが複数の LogoutResponse を含む を送信する場合がありますAuthnStatement。このタイプのレスポンスsessionIndexAuthnStatementの最初の の は、最初にユーザーsessionIndexを認証したSAMLレスポンスの と一致する必要があります。sessionIndex が他の にある場合AuthnStatement、Amazon Cognito はセッションを認識しず、ユーザーはサインアウトされません。

AWS Management Console
SAML サインアウトを設定するには
  1. ユーザープール アプリクライアント 、IdP SAML を作成します。

  2. SAML ID プロバイダーを作成または編集するとき、ID プロバイダー情報 で、「サインアウトフローを追加」というタイトルのチェックボックスをオンにします。

  3. ユーザープールのサインインエクスペリエンスタブから、フェデレーティッド ID プロバイダーのサインイン で IdP を選択し、署名証明書 を見つけます。

  4. .crt としてダウンロード を選択します

  5. シングルSAMLログアウトとリクエスト署名をサポートするようにSAMLプロバイダーを設定し、ユーザープール署名証明書をアップロードします。IdP はユーザープールドメイン/saml2/logoutの にリダイレクトする必要があります。

API/CLI

SAMLサインアウトを設定するには

CreateIdentityProvider または UpdateIdentityProviderAPIリクエストの IDPSignoutパラメータを使用してシングルログアウトを設定します。以下は、SAML単一ログアウトをサポートする IdP ProviderDetailsの例です。

"ProviderDetails": { "MetadataURL" : "https://myidp.example.com/saml/metadata", "IDPSignout" : "true",, "RequestSigningAlgorithm" : "rsa-sha256", "EncryptedResponses" : "true", "IDPInit" : "true" }