如何使用 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 中启用这两个验证?如果是,如何实现?我还有哪些其他选择?