Amazon Cognito 中的注销端点和 GlobalSignOut API 有什么区别?

1 分钟阅读
0

我想了解如何在 Amazon Cognito 中使用注销端点和 GlobalSignOut API。

简短描述

Amazon Cognito 注销端点会清除浏览器中的用户会话。GlobalSignOut API 使发放给特定用户的所有访问和刷新令牌失效。

解决方法

使用注销端点注销用户

在您使用托管端点进行用户身份验证时,Amazon Cognito 会在您的浏览器中存储一个名为“cognito”的 Cookie。该 Cookie 与使用您用户群体配置的 Amazon Cognito 关联。该 Cookie 的有效期为 1 小时。在用户在活动会话期间尝试再次登录时,Amazon Cognito 会询问用户是否要继续其现有会话。这允许用户在不提供凭证的情况下登录。如果用户选择以 example_username 身份登录按钮来使用现有会话,则 Cookie 的有效期将重置为 1 小时。

当用户在其浏览器中访问注销端点时,Amazon Cognito 会清除会话 Cookie。用户必须提供凭证才能再次登录。

在用户使用第三方身份提供者(IdP)登录时,需要执行额外的步骤。如果用户使用某个第三方 IdP 登录,则访问注销端点会清除浏览器中的“cognito”Cookie。但是,IdP 仍能保留活动会话。在清除用户的 IdP 会话时,请考虑以下信息:

  • Amazon Cognito 支持带有 HTTP POST 绑定的安全断言标记语言版本 2.0(SAML 2.0)IdP 的单点注销(SLO)功能。如果您的提供者在其 SLO 端点上接受 HTTP POST 绑定,则可以考虑为 SAML IdP 实施 SLO。如果用户在启用 SLO 后访问注销端点,则 Amazon Cognito 会向 SAML IdP 发送已签名的注销请求。然后,SAML IdP 会清除 IdP 会话。
  • 对于社交和 OpenID Connect(OIDC)IdP,必须创建自定义工作流才能清除浏览器中的 IdP 会话。

使用 GlobalSignOut API 注销用户

在使用 GlobalSignOut API 时,Amazon Cognito 会撤销发放给用户的所有访问和刷新令牌。请注意,只有 Amazon Cognito 会收到令牌撤销通知。您的应用程序可能会继续接受这些令牌,直到它们过期。

您的应用程序可以同时使用 GlobalSignOutAdminUserGlobalSignOut API 实现全局注销用户。在应用程序使用 REST API 进行 Amazon Cognito 用户身份验证时,您必须使用这些 API 注销用户。

在应用程序尝试使用已撤销的令牌时,会引发 Amazon Cognito 错误,说明您已撤销刷新令牌。用户必须再次登录才能获得一组新的 JSON Web 令牌(JWT)。

您可以在用户群体应用程序客户端中配置访问和 ID 令牌的过期时间。您可以将过期时间更改为 5 分钟到 24 小时之间的值。


AWS 官方
AWS 官方已更新 1 年前