使用ApiGateway授权方验证Github有效负载签名(X-Hub-Signature)

时间:2018-11-09 19:38:14

标签: amazon-web-services amazon-cloudformation aws-api-gateway lambda-authorizer

我目前正在使用一个简单的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

1 个答案:

答案 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;

希望有帮助。