【发布时间】:2019-12-20 11:39:43
【问题描述】:
API 网关具有执行授权的内置功能。
但是 awslabs 提供的示例已将 lambda 挂钩到 API 网关,其中 lambda 根据此 code 授权以下 API 网关:
MyApi:
Type: AWS::Serverless::Api
Properties:
StageName: Prod
Auth:
DefaultAuthorizer: MyLambdaRequestAuthorizer
Authorizers:
MyLambdaRequestAuthorizer:
FunctionPayloadType: REQUEST
FunctionArn: !GetAtt MyAuthFunction.Arn
所以,客户端提供的认证令牌被 lambda 接收,然后被授权:
exports.handler = async function (event) {
const token = event.queryStringParameters.auth.toLowerCase()
....
switch (token) {
case 'allow':
return generateAuthResponse('user', 'Allow', methodArn)
case 'deny':
return generateAuthResponse('user', 'Deny', methodArn)
default:
return Promise.reject('Error: Invalid token') // Returns 500 Internal Server Error
}
}
但这不是 API 网关提供的内置身份验证。
API 网关如何提供内置身份验证?
【问题讨论】:
标签: authentication aws-lambda authorization aws-api-gateway amazon-iam