0

如何使用 API 密钥和自定义授权方来验证对 API 网关的请求?

我有以下要求:

  • 在我的 API 网关上使用 API 密钥(通过使用计划)来促进节流和它提供的开箱即用的其他可能功能。
  • 在验证 API 密钥后,使用 lambda 向传入请求添加额外验证。
  • 使用 swagger 添加上述配置。

这是我的招摇:

securityDefinitions:
  api_key:
    type: apiKey
    name: x-api-key
    in: header
  additional-auth:
    type: apiKey
    name: x-api-key
    in: header
    x-amazon-apigateway-authtype: 'custom'
    x-amazon-apigateway-authorizer:
      authorizerUri: <urn-to-additional-authorizer-lambda>
      type: request
      authorizerCredentials: <urn-to-role>
      authorizerResultTtlInSeconds: 0
      identitySource : method.request.header.x-api-key

然后将两者都指定为我的端点的安全性:

      security:
        - api_key: []
        - additional-auth: []

但这不做api_key检查,只做additional-auth检查。如果我additional-auth从安全性中删除它,它会很好地使用 API 密钥。

是否可以从 swagger 中启用这两个验证?如果是,如何实现?我还有哪些其他选择?

4

0 回答 0