如何使用 AWS Cognito 作为单点登录?

How to use AWS Cognito as Single-sign-on?

我有 2 个站点:

两个站点都在不同的域中。如何在两个站点之间实施 SSO?

是的,您可以通过以下方式进行

  • 在第一个站点上完成登录,您将获得一个令牌
  • 在第二个站点上使用此令牌

问题是安全地将令牌(具有到期值)从站点 A 传递到 B。 Cognito 没有提供内置的 SSO 设施。您必须自己管理令牌的加密、存储和传输。

根据您是否会为单独域的单个域提供 SSO,您可以选择和处理。您可以将从 AWS Cognito 获得的令牌(如 ID 令牌(用户信息)和访问令牌(访问信息))存储在本地存储或 cookie 中。

cookie 的问题在于它们只能用于特定域。因此,它们只允许单域单点登录。因此,如果您需要支持多个域,则单 cookie 解决方案不能满足该要求。 基于令牌的方法(例如,OAuth2、OpenID Connect、SAML 等)具有多域支持。令牌可以存储在所有域都可以访问的本地存储中。或者,可以使用多个 cookie,每个域一个。