シングルサインアウトで SAML ユーザーをサインアウトする
Amazon Cognito は SAML 2.0 シングルログアウト
サインアウトフローをサポートするように SAML IdP を設定すると、Amazon Cognito は、署名付き SAML ログアウトリクエストを使用してユーザーを IdP にリダイレクトします。Amazon Cognito は、IdP メタデータの SingleLogoutService
URL からリダイレクト場所を決定します。Amazon Cognito は、ユーザープール署名証明書を使用してサインアウトリクエストに署名します。
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 プロバイダーは、複数の AuthnStatement
を含む LogoutResponse
を送信する場合があります。このタイプのレスポンスの最初の AuthnStatement
の sessionIndex
は、最初にユーザーを認証した SAML レスポンスの sessionIndex
と一致する必要があります。sessionIndex
が他の AuthnStatement
にある場合、Amazon Cognito はセッションを認識せず、ユーザーはサインアウトされません。