我目前正在使用一个简单的api来接收Github事件有效负载,并且我想验证它们是否来自正确的来源。有了这个,我正在努力在请求标头中使用hmac签名(由github使用我提供的秘密生成)。为了验证签名,ApiGateway授权者需要签名(X-Hub-Signature),用于生成签名的机密以及消息正文。据我所知,Api Gateway不允许您将正文传递给ApiGateway授权者。有人知道不需要其他代理lambda和s3的方法吗?
*注意:请求者是Github Webhook服务(无法在标头中添加正文)
基本ApiGateway身份验证文档: https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-use-lambda-authorizer.html
答案 0 :(得分:0)
这是您的操作方式。
将您的内容传递到传入请求的 Authorization 标头中,该内容将传递到您的自定义Authorizer中。
从以下属性中获取
的内容event.authorizationToken
其中 event 是传递给lambda的参数之一(第1个)
我目前正在加密所有信息并将其添加到该标头中,并传递给“自定义授权者” lambda。
您还可以在自定义授权方lambda中访问以下其他参数:
var headers = event.headers;
var queryStringParameters = event.queryStringParameters;
var pathParameters = event.pathParameters;
var stageVariables = event.stageVariables;
var requestContext = event.requestContext;
希望有帮助。