在单个应用同步请求上使用多种授权类型

问题描述 投票:0回答:1

根据 AWS 文档,Appsync 现在支持使用多种授权类型,以允许仅使用默认授权类型(即 api_key)查询某些字段,而仅使用辅助身份验证类型(即 cognito_user_pools)访问其他字段).

但是,我无法设置我的 appsync graphql api,仅当用户请求同时具有两种授权类型时才可检索某种类型,在我的情况下,这些类型是 api_key 和 aws_iam。 api_key 是主要授权类型,iam 是附加授权类型。

这是否可以实现,或者一个请求只能使用一种授权类型?

示例代码如下:

type Car @aws_api_key @aws_iam {
  id: ID!
  year: Int
  color: String
  tireType: String
}

type Query {
  getCar(id: ID!): Car @aws_api_key @aws_iam
}

仅当用户请求同时具有 api-key 标头和表明该请求已正确签名的 Signaturev4 授权标头时,最终结果才应检索 Car 类型。

我尝试在 appsync GQL 设置中添加两种授权类型,并将适当的条件附加到我想要授权的类型,但它没有提供所需的结果。

amazon-web-services lambda graphql serverless aws-appsync
1个回答
0
投票

我使用确切的语法来指定授权类型之间的“OR”关系。您必须创建一个自定义解析器来检查“AND”关系,然后您的解析器将与您的架构不匹配。你应该考虑是否真的需要“AND”。 IAM 身份验证通常比 API 密钥安全得多。

© www.soinside.com 2019 - 2024. All rights reserved.