跳至内容

如何为使用 Cognito 用户池的应用程序实施 SAML 注销流程?

1 分钟阅读
0

我想为使用 Amazon Cognito 用户池的应用程序配置 SAML 单点注销。我的应用程序还使用 SAML 身份提供者 (IdP) 进行身份验证。

解决方法

先决条件:

在 SAML IdP 中启用 SAML 注销

完成以下步骤:

  1. Amazon Cognito 控制台。
  2. 在导航窗格中,选择 User pools(用户池),然后选择您的用户池。
  3. 选择 Social and external providers(社交和外部提供商),然后选择您的 SAML IdP。
  4. 在您的 SAML IdP 配置设置中,选择 Add sign-out flow(添加注销流程)和 Sign SAML requests to this provider(向该提供商签署 SAML 请求)。然后,保存配置。
  5. 选择 View signing certificate(查看签名证书)。
  6. 选择 Download as .crt(以 .crt 格式下载)。
  7. 选择 Close(关闭)。

配置您的外部 IdP 以启用注销

要在 Cognito 应用程序中配置单点注销,请参阅 IdP 的文档,以便在 SAML 应用程序中启用单点注销。

配置应用程序时,请完成以下步骤:

  1. 将您的 Cognito 用户池中的 .crt 文件作为签名证书上传到您的 IdP 的 SAML 应用程序配置中。
  2. 在 IdP 的配置中启用单点注销。
    **注意:**您的 IdP 可能会将单点注销称为单点登出 (SLO)。
  3. 对于 IdP 配置,请使用以下值:
    对于 single sign-out URL(单点注销 URL),输入 https://YourDomain.auth.Region.amazoncognito.com/saml2/logout。
    对于 service provider (SP) issuer(服务提供商 (SP) 发布者),输入 urn:amazon:cognito:sp:YourUserPoolID。
    **注意:**将 YourDomain、Region 和 YourUserPoolID 替换为您的值。您的 IdP 必须将 SAML LogoutResponse 作为 HTTP POST 请求发送。然后,Cognito 将用户重定向到初始请求中的注销 URL。

测试单点注销

向 Cognito/登出端点发出 GET 请求。确保在请求中包含 client_id 和 logout_uri 参数。

登出 URL 示例:

https://YourDomain.auth.Region.amazoncognito.com/logout?client_id=YourAppClientID&logout_uri=YourAllowedSignOutURL

**注意:**对于自定义应用程序,必须从用户的浏览器中删除本地存储的令牌或会话信息,例如 localStorage 和 sessionStorage。Cognito 登出 URL 仅为使用托管用户界面的应用程序清除 Cognito Cookie。

相关信息

通过单点注销来注销 SAML 用户

AWS 官方已更新 1 年前