Amazon web services 使用ApiGateway授权程序验证Github有效负载签名(X-Hub-Signature)
我目前正在开发一个简单的api来接收Github事件有效负载,我想验证它们是否来自正确的源。有了这个,我就可以在请求头中使用hmac签名(由github使用我提供的秘密生成)。为了验证签名,ApiGateway授权人需要签名(X-Hub-signature)、用于生成签名的秘密以及消息正文。据我所知,Api网关不允许您将主体传递给Api网关授权者。有人知道一种不需要额外的代理lambda和s3的方法吗 *注意:请求者是Github Webhook服务(无法将主体添加到标题) 基本ApiGateway身份验证文档: 以下是您的操作方法 将您的内容传递到传入请求的授权标题,它将传递给您的自定义授权人 从下面的属性中获取的内容 event.authorizationToken 其中,事件是传递给lambda的参数之一(第1个) 我目前加密并将所有信息添加到该头中,并将其发送到自定义授权人lambda 您还可以访问自定义授权器lambda中的其他参数,如下所示:Amazon web services 使用ApiGateway授权程序验证Github有效负载签名(X-Hub-Signature),amazon-web-services,amazon-cloudformation,aws-api-gateway,lambda-authorizer,Amazon Web Services,Amazon Cloudformation,Aws Api Gateway,Lambda Authorizer,我目前正在开发一个简单的api来接收Github事件有效负载,我想验证它们是否来自正确的源。有了这个,我就可以在请求头中使用hmac签名(由github使用我提供的秘密生成)。为了验证签名,ApiGateway授权人需要签名(X-Hub-signature)、用于生成签名的秘密以及消息正文。据我所知,Api网关不允许您将主体传递给Api网关授权者。有人知道一种不需要额外的代理lambda和s3的方法吗 *注意:请求者是Github Webhook服务(无法将主体添加到标题) 基本ApiGatew
var headers = event.headers;
var queryStringParameters = event.queryStringParameters;
var pathParameters = event.pathParameters;
var stageVariables = event.stageVariables;
var requestContext = event.requestContext;
希望能有所帮助。tyler据我所知,只要您收到请求,就会提供完整的请求对象。包括头、路径、查询字符串、阶段变量或上下文变量请求参数。尝试记录请求,希望您能找到答案。我不知道我是否没有理解这一点,但我遇到的问题是,请求是由Github生成的,并设置为我的端点(Github webhook)。因此,我无法格式化头部(除非我想在我的swagger api cloudformation文件中创建一个大而丑陋的重新模板)。这就是你所指的吗?很抱歉,问题中没有此内容(已更新)。如果您将整个请求发送给您的授权人,如果您注意到回答的后面部分,您可以记录来自传入请求的所有详细信息并验证它们,并根据请求内容发送“访问”或“拒绝”。