在登录后使用 API Gateway 访问资源 - Amazon Cognito

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

在登录后使用 API Gateway 访问资源

Amazon Cognito 用户池令牌的常见用途是授权向 API Gateway REST API 发出的请求。访问令牌中的 OAuth 2.0 作用域可以授权方法和路径,HTTP GET例如/app_assets。ID 令牌可以用作 API 的通用身份验证,也可以将用户属性传递给后端服务。API Gateway 还有其他自定义授权选项,例如适用于 HTTP 的 JWT 授权方和 APIs 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 令牌有效且未过期。当您将 ID 令牌传递给 Amazon Cognito 授权方时,您可以在应用程序服务器上对 ID 令牌内容进行额外验证。

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

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