SAML登出流程 - Amazon Cognito

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

SAML登出流程

Amazon Cognito 支持 SAML 2.0 單次註銷。當您將 SAML IdP 設定為支援登出流程時,Amazon Cognito 會將已簽署SAML登出請求的使用者重新導向至您的 IdP。Amazon Cognito 會從您的 IdP 中繼資料SingleLogoutServiceURL中判斷重新導向位置。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 中的 a 返回到您的saml2/logout端點。您的 IdP 必須傳LogoutResponseHTTP POST請求。然後,Amazon Cognito 會從其初始登出請求將其重新導向至重新導向目的地。

您的SAML提供商可能會發送一個LogoutResponse以上AuthnStatement的郵件。此類型回應AuthnStatement中的第一個必須符合最初驗證使用者的SAML回應sessionIndex中的。sessionIndex如果在任何其他sessionIndex位置AuthnStatement,Amazon Cognito 將無法識別工作階段,而且您的使用者將不會被登出。

AWS Management Console
若要設定SAML登出
  1. 建立使用者集區應用程式用戶端和 SAML IdP。

  2. 建立或編輯SAML身分識別提供者時,在 [身分識別提供者資訊] 下方,勾選標題為 [新增登出流程] 的核取方塊。

  3. 在使用者集區的 [登入體驗] 索引標籤的 [同盟身分提供者登入] 下,選擇您的 IdP 並找到 [簽署憑證]。

  4. 選擇下載為 .crt。

  5. 將您的SAML提供者設定為支援SAML單一登出和要求簽署,並上傳使用者集區簽署憑證。您的 IdP 必須重新導向至您/saml2/logout的使用者集區網域中。

API/CLI

若要設定SAML登出

使用CreateIdentityProviderUpdateIdentityProviderAPI請求的IDPSignout參數設定單一登出。以下是支援SAML單ProviderDetails一登出的 IdP 範例。

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