1

我目前正在开发一个简单的 api 来接收 Github 事件有效负载,并且我想验证它们是否来自正确的来源。有了这个,我正在努力在请求标头中使用 hmac 签名(由 github 使用我提供的秘密生成)。为了验证签名,ApiGateway 授权方需要签名 (X-Hub-Signature)、用于生成签名的秘密以及消息的正文。据我所知,Api Gateway 不允许您将正文传递给 ApiGateway Authorizer。有谁知道不需要额外代理 lambdas 和 s3 的解决方法?

*注意:请求者是 Github Webhook 服务(无法将正文添加到标头)

基本 ApiGateway 身份验证文档: https ://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-use-lambda-authorizer.html

4

1 回答 1

1

这是你如何做到的。

将您的内容传递给传入请求的授权标头,它将被传递给您的自定义授权者。

从下面的属性中获取内容,

event.authorizationToken

其中event是传递给 lambda 的参数之一(第一个),

我目前加密并将所有信息添加到该标头,并传递给自定义授权器 lambda。

您还可以在自定义 Authorizer lambda 中访问以下附加参数:

var headers = event.headers;
var queryStringParameters = event.queryStringParameters;
var pathParameters = event.pathParameters;
var stageVariables = event.stageVariables;
var requestContext = event.requestContext;

希望能帮助到你。

于 2018-11-09T20:04:55.483 回答