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

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

SAML サインアウトフロー

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

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

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

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. ユーザープール アプリケーションクライアント 、および SAML IdP を作成します。

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

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

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

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

API/CLI

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

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

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