Можно ли проверить подпись aws v4? - PullRequest
0 голосов
/ 09 апреля 2020

У меня есть API, обслуживаемый через apigateway, который использует аутентификацию AWS_IAM. Я ищу использовать лямбда-авторизатор, чтобы я мог реализовать пользовательскую авторизацию. Я понимаю, что могу использовать Cognito или пользовательское приложение OAuth, и мой клиент отправляет соответствующие токены авторизации.

Однако мой текущий клиент уже отправляет подпись AWS v4 (для реализации AWS_IAM), могу ли я использовать ее для идентификации пользователя и проверки правильности подписи?

Полученный токен в авторизаторе лямбда выглядит так:

AWS4-HMAC-SHA256 Credential=ASIASLKDFSLKDF923C/20200408/us-east-1/execute-api/aws4_request, SignedHeaders=host;x-amz-date;x-amz-security-token, Signature=2c65e09dedasdfasdfwfewfa592a60bcc2623296174e78780a2caad

1 Ответ

1 голос
/ 10 апреля 2020

Я так не думаю. Вы можете найти более подробную информацию о том, как работает процесс подписи здесь .

Но чтобы сохранить ваш щелчок, подпись создается с использованием функции ha sh. В этом случае у вас нет никакого способа получить исходное значение из подписи, которую вы получили. Это сделано специально.

Это исключает возможность идентификации вами пользователя, подписавшего запрос.

Вы можете проверить подпись. Но это не относится к AWS окружающей среде. Это связано с тем, что для проверки подписи вы должны знать пользователя, который отправил запрос, и, зная это, получить доступ к его AWS_ACCESS_KEY и AWS_SECRET_ACCESS_KEY. Используя обе эти данные, вы можете попытаться воссоздать подпись на основе полученного вами запроса и сравнить с ее подписью.

Но я почти уверен, что вы не найдете никаких законных средств для получения доступа к этому виду. информации ...

...