【问题标题】:Multiple Authorization types with AWS AppSync使用 AWS AppSync 的多种授权类型
【发布时间】:2018-12-13 06:50:36
【问题描述】:

似乎 AppSync 项目只能配置一种授权类型(API_KEYAWS_IAM 等)。我使用AMAZON_COGNITO_USER_POOLS 作为我的主要类型,但我也有一个(Node.js)客户端,我想提供API_KEY 访问权限。

这可能吗?

如果没有,您能提出任何替代方案吗?

【问题讨论】:

标签: aws-appsync


【解决方案1】:

如果您没有订阅,Rohan 的答案有效;如果您在一个 AppSync 端点中确实有订阅并在另一个 AppSync 端点中改变数据,那么当后台数据更新时,订阅不会更新(这是有道理的,因为订阅是作为 AppSync 中的侦听器附加的端点)。在 AppSync 支持多种方法之前,您可能想尝试一下 IAM; here 有一些详细信息,说明如何让它在应用程序 + Lambda 中与 Cognito 一起使用。该示例在 python 中,但对于 node.js,您将生成带有 https://www.npmjs.com/package/aws4 之类的签名。如果在其他地方运行你的 node.js 客户端,同样的方法也可以工作,前提是你生成了一些 API 密钥

【讨论】:

  • 非常感谢马修,这很有帮助。是的,我确实遇到了订阅问题,这对我来说是个问题。我会好好看看提供的链接。再次感谢!
【解决方案2】:

有两种方法可以解决您的用例。

  1. 您可以使用相同的架构预置一个单独的 AppSync 终端节点(您可以在 AWS 账户中的每个区域创建最多 25 个),并使用不同的授权架构对其进行配置。仅当您需要端点之间的硬隔离时才使用此方法。

  2. 截至 2019 年 5 月,AWS AppSync 支持 multiple authorization schemes 用于 GraphQL API。您可以启用 AMAZON_COGNITO_USER_POOLS 作为默认身份验证方案,并将 API_KEY 作为附加身份验证方案。这是推荐的方法,也适用于订阅,这解决了 Matthew 在另一个答案中的担忧。

【讨论】:

  • 感谢 Rohan,这是一个有趣的想法。会试一试。请允许我“+1”,以便将来每个 AppSync 端点拥有多个身份验证架构!
  • 这确实应该是一个功能请求。在某些情况下,同一端点需要多个配置。
【解决方案3】:

截至 2019 年 5 月,AWS AppSync 宣布在同一 API 中支持多种身份验证类型。 https://aws.amazon.com/blogs/mobile/using-multiple-authorization-types-with-aws-appsync-graphql-apis/

【讨论】:

    猜你喜欢
    • 2020-12-11
    • 2018-07-04
    • 1970-01-01
    • 1970-01-01
    • 2020-12-02
    • 2019-03-11
    • 2021-07-28
    • 2021-09-23
    • 1970-01-01
    相关资源
    最近更新 更多