将令牌与用户池结合使用 - Amazon Cognito
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

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

将令牌与用户池结合使用

通过令牌验证用户的身份并授予对资源的访问权限。令牌中的声明是有关您的用户的信息。ID 令牌包含有关用户身份的声明,例如他们的用户名、姓氏和电子邮件地址。访问令牌包含类似于 scope 的声明,经过身份验证的用户可以使用它们访问第三方 API、Amazon Cognito 用户自助 API 操作和 UserInfo 端点。访问令牌和 ID 令牌均包含 cognito:groups 声明,其中包含用户在用户群体中的组成员资格。有关用户群体组的更多信息,请参阅 向用户池添加组

Amazon Cognito 还有刷新令牌,您可以使用它来获取新的令牌或撤销现有令牌。刷新令牌来检索新的 ID 令牌和访问令牌。撤消令牌来撤消刷新令牌允许的用户访问权限。

Amazon Cognito 以 Base64 编码字符串的形式发布令牌。您可以将任何 Amazon Cognito ID 或访问令牌从 Base64 解码为纯文本 JSON。Amazon Cognito 刷新令牌已加密,对用户群体用户和管理员不透明,并且只能由您的用户群体读取。

使用令牌进行身份验证

当用户登录您的应用程序时,Amazon Cognito 会验证登录信息。如果登录成功,Amazon Cognito 会创建会话并为经过身份验证的用户返回 ID 令牌、访问令牌和刷新令牌。您可以使用这些令牌向您的用户授予对 Amazon API Gateway 等下游资源和 API 的访问权限。或者,您可以用它们交换用于访问其他 Amazon Web Services的临时 Amazon 凭证。


      身份验证概述
存储令牌

您的应用程序必须能够存储不同大小的令牌。令牌大小变化的原因可能包括但不限于其它声明、编码算法的更改以及加密算法的更改等。当您在用户群体中启用令牌吊销时,Amazon Cognito 会向 JSON Web 令牌添加其他声明,从而增加令牌大小。新 origin_jtijti 声明已添加到访问和 ID 令牌中。有关令牌撤消的更多信息,请参阅撤消令牌

重要

最佳实践是在应用程序环境中保护传输和存储中的所有令牌。令牌可以包含有关用户的个人识别信息,以及有关用于用户池的安全模型的信息。

自定义令牌

您可以自定义 Amazon Cognito 传递给应用程序的访问令牌和 ID 令牌。在 令牌生成前 Lambda 触发器 中,您可以添加、修改和隐藏令牌声明。令牌生成前触发器是一个 Lambda 函数,Amazon Cognito 会向其发送一组默认声明。声明包括 OAuth 2.0 范围、用户群体组成员资格、用户属性等。然后,该函数可以根据这些信息在运行时进行更改,并将更新的令牌声明返回给 Amazon Cognito。

使用版本 2 事件自定义访问令牌需要支付额外费用。有关更多信息,请参阅 Amazon Cognito 定价