发布于: Jul 30, 2021

今天,我们发布了一种灵活而简单的方法,可以使用 AWS Lambda 为 AWS AppSync GraphQL API 调用实施自定义授权逻辑。

AWS AppSync 是一种托管的 GraphQL 服务,您可以使用它创建一个灵活的 API,以较少的网络调用来安全地访问、操作和组合来自一个或多个数据源的数据,从而简化应用程序开发。借助 AWS AppSync,您可以创建 GraphQL API,您的应用程序通过互联网能与之交互。虽然 API 端点可供公开访问,但它们绝不允许未经授权的访问。访问 AppSync API 始终需要一种授权方法,如请求标头中的令牌,或使用 AWS 凭证签署请求。直到最近,AppSync 还提供四种不同的授权模式:

  • API 密钥
  • Amazon Cognito 用户池
  • OpenID Connect
  • AWS Identity and Access Management (IAM)

我们现在正添加基于 AWS Lambda 的新授权模式,用于现有授权模式无法完全涵盖其特定要求的使用案例,让您能实施自定义授权策略来保护您的 GraphQL API。

每当请求到达 AppSync 时,所选 Lambda 函数将从客户端接收授权令牌,并执行开发人员定义的所需授权逻辑。AppSync 将在调用后从 Lambda 接收负载,相应地允许或拒绝 API 调用,并摄取从 Lambda 到 AppSync 中 GraphQL 解析器的授权调用的特定上下文数据。

AppSync 现在能够使用 AWS Lambda 实施自定义授权逻辑,提供满足您所有授权要求所需的灵活性。您可以在单个 API 中将基于 AWS Lambda 的授权与任何现有 AppSync 授权模式进行混合搭配,并将特定授权提供程序链接到 GraphQL 架构中的类型、字段或操作。

Lambda 授权程序目前在所有提供 AppSync 的 AWS 区域可用。有关更多详细信息,请参阅我们的博客文章 AppSync 文档