如何使用 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,每个域一个。
我有 2 个站点:
- 用户注册、登录和其他内容(将在 认知用户池)
- 用户个人资料(自理)
两个站点都在不同的域中。如何在两个站点之间实施 SSO?
是的,您可以通过以下方式进行
- 在第一个站点上完成登录,您将获得一个令牌
- 在第二个站点上使用此令牌
问题是安全地将令牌(具有到期值)从站点 A 传递到 B。 Cognito 没有提供内置的 SSO 设施。您必须自己管理令牌的加密、存储和传输。
根据您是否会为单独域的单个域提供 SSO,您可以选择和处理。您可以将从 AWS Cognito 获得的令牌(如 ID 令牌(用户信息)和访问令牌(访问信息))存储在本地存储或 cookie 中。
cookie 的问题在于它们只能用于特定域。因此,它们只允许单域单点登录。因此,如果您需要支持多个域,则单 cookie 解决方案不能满足该要求。 基于令牌的方法(例如,OAuth2、OpenID Connect、SAML 等)具有多域支持。令牌可以存储在所有域都可以访问的本地存储中。或者,可以使用多个 cookie,每个域一个。