Используйте ApiGateway Authorizer для проверки подписи полезной нагрузки Github (X-Hub-Signature)
В настоящее время я работаю над простым API для получения полезных нагрузок событий Github, и я хочу проверить, что они поступают из правильного источника. С этим я работаю, чтобы использовать подпись hmac в заголовке запросов (сгенерированную github с использованием предоставленного мной секрета). Для проверки подписи, авторизатору ApiGateway требуется подпись (X-Hub-Signature), секрет, используемый для создания подписи, и тело сообщения. Насколько я могу судить, Api Gateway не позволяет передавать тело авторизатору ApiGateway. Кто-нибудь знает способ обойти это, что не требует дополнительных прокси лямбда и s3?
* Примечание: запрашивающая сторона - служба Github Webhook (не может добавить тело в заголовок)
Основные документы по аутентификации ApiGateway: https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-use-lambda-authorizer.html
1 ответ
Вот как ты это делаешь.
Передайте ваш контент в заголовок авторизации вашего входящего запроса, он будет доставлен на ваш пользовательский авторизатор.
Возьмите содержимое из атрибута ниже,
event.authorizationToken
где событие - это один из параметров (1-й), передаваемый в лямбду,
В настоящее время я шифрую и добавляю всю информацию в этот заголовок и получаю лямбду Custom Authorizer.
Вы также можете получить доступ к дополнительным параметрам, как показано ниже в вашем настраиваемом лямбде Authorizer:
var headers = event.headers;
var queryStringParameters = event.queryStringParameters;
var pathParameters = event.pathParameters;
var stageVariables = event.stageVariables;
var requestContext = event.requestContext;
Надеюсь, поможет.