登录后使用 API Gateway 访问资源 - Amazon Cognito
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

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

登录后使用 API Gateway 访问资源

Amazon Cognito 用户池令牌的常见用途是授权向 API Gate way REST AP I 发出的请求。访问令牌中的 OAuth 2.0 作用域可以对方法和路径进行授权,比如HTTP GET/app_assetsID 令牌可以用作 API 的通用身份验证,也可以将用户属性传递给后端服务。API Gateway 还有其他自定义授权选项,比如 HTTP API 的 JWT 授权方和可以应用更精细逻辑的 Lambda 授权者

下图说明了访问令牌中具有 OAuth 2.0 范围的 REST API 的应用程序。

使用 Amazon Cognito 用户池进行身份验证并通过 Amazon API Gateway 授权访问 API 资源的应用程序流程图。

您的应用程序必须从经过身份验证的会话中收集令牌,并将其作为不记名令牌添加到请求的Authorization标头中。配置您为评估令牌内容的 API、路径和方法配置的授权方。只有当请求符合您为授权方设置的条件时,API Gateway 才会返回数据。

API Gateway API 可以通过以下方式批准来自应用程序的访问权限:

  • 访问令牌包含正确的 OAuth 2.0 范围。REST API 的 Amazon Cognito 用户池授权者是一种常见的实现,进入门槛很低。您还可以评估向此类授权方发出的请求的正文、查询字符串参数和标头。

  • ID 令牌有效且未过期。当您将身份令牌传递给 Amazon Cognito 授权机构时,您可以在应用程序服务器上对 ID 令牌内容进行额外验证。

  • 访问或 ID 令牌中的群组、声明、属性或角色符合您在 Lambda 函数中定义的要求。Lambda 授权方解析请求标头中的令牌并对其进行评估以做出授权决策。您可以在函数中构建自定义逻辑,也可以向 Amazon 验证权限发出 API 请求。

您还可以使用来自用户池的令牌来授权Amazon AppSync 向 GraphQL API 发出的请求。