本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
在登录后使用 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 的应用程序。

您的应用程序必须从经过身份验证的会话中收集令牌,并将其作为持有者令牌添加到请求中的 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 发出的请求。