シングルサインアウトでSAMLユーザーをサインアウトする - Amazon Cognito

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

シングルサインアウトでSAMLユーザーをサインアウトする

Amazon Cognito は SAML 2.0 シングルログアウト () をサポートしていますSLO。 を使用するとSLO、アプリケーションはユーザープールからサインアウトするときに、SAMLID プロバイダー (IdPs) からユーザーをサインアウトできます。これにより、ユーザーがアプリケーションに再度サインインする場合は、IdP SAML で認証する必要があります。それ以外の場合、認証情報を提供する必要なしにアプリケーションに渡す IdP またはユーザープールブラウザの Cookie が存在する可能性があります。

サインアウトフロー をサポートするように 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の最初の の は、最初にユーザーを認証したSAMLレスポンスsessionIndexの と一致する必要があります。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 または UpdateIdentityProviderAPIリクエストの IDPSignoutパラメータを使用して単一のログアウトを設定します。SAML 単一ログアウトをサポートする IdP ProviderDetailsの例を次に示します。

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