AWS认证者是在API Gateway的REST API中使用的一种机制,用于验证和授权发出请求的身份。它可用于限制对受保护资源的访问,同时允许通过有资格的用户和请求。
以下是一个使用AWS Lambda函数作为认证器的示例:
1.创建Lambda函数:
exports.handler = async (event) => {
// 获取从API Gateway传来的参数(在示例中为Authorization header)
const token = event.authorizationToken;
try {
// 在此处执行认证逻辑
// 如果验证通过,则返回一个包含policyDocument、principalId、context等字段的JSON对象
// 如果验证失败,则返回一个包含“unauthorized”字段的JSON对象
} catch (error) {
// 如果出现错误,则返回一个包含“internalServerError”字段的JSON对象
}
};
2.将函数打包成ZIP文件,并将其上传到AWS Lambda。
3.在API Gateway中创建一个新的“Authorizer”,并将它与指定的REST API资源方法关联起来。
4.配置创建的“Authorizer”绑定到正确的AWS Lambda函数上,并指定需要传递给Lambda函数的参数。在这种情况下,我们需要传递“Authorization” header。
5.将“Authorizer”添加到API Gateway资源方法的防护策略中。
现在,您的API Gateway资源方法将需要透过认证器才能访问。任何请求带有未经授权或无效令牌的请求都将被拒绝,并返回“unauthorized” JSON响应。已经通过认证的请求将获得包含授权策略文档和其他相关信息的JSON响应。