通过单点注销注销SAML用户 - Amazon Cognito

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

通过单点注销注销SAML用户

亚马逊 Cognito 支持 SAML 2.0 单点注销(. SLO 使用SLO,当用户从您的用户池中注销时,您的应用程序可以从其SAML身份提供商 (IdPs) 中注销他们。这样,当用户想要再次登录您的应用程序时,他们必须使用自己的 SAML IdP 进行身份验证。否则,他们可能有 IdP 或用户池浏览器 Cookie,无需提供凭据即可将其传递到您的应用程序。

当您将 SAML IdP 配置为支持注SAML销流程时,Amazon Cognito 会将带有签名注销请求的用户重定向到您的 IdP。Amazon Cognito 根据您的 IdP 元数据SingleLogoutServiceURL中的来确定重定向位置。Amazon Cognito 使用您的用户池签名证书签署退出请求。

亚马逊 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 必须发送LogoutResponse请求。HTTP POST然后,Amazon Cognito 会将他们从最初的退出请求重定向到重定向目的地。

您的SAML提供商可能会发送LogoutResponse包含多个AuthnStatement内容的。此类响应sessionIndexAuthnStatement中的第一个必须与最初对用户进行身份验证的SAML响应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" }