Авторизуйте идентификатор токена, используя Custom Authorizer с Lambda и Boto3 - PullRequest
0 голосов
/ 12 июня 2018

У меня есть группа пользователей, зарегистрированных в 3 разных пулах пользователей.Я хочу предоставить доступ пользователям двух пулов пользователей и запретить другим.API Gateway позволяет использовать токен id для проверки того, принадлежит ли пользователь авторизатору пула пользователей, и предоставляет доступ, посмотрев на токен id, который мы получаем после входа в систему. Я хотел знать, есть ли способ повторить это в boto3?

Я хочу получить токен id в моем лямбда-авторизаторе, проверить, к какому пулу пользователей он принадлежит, и затем разрешить доступ к ресурсу AWS, настроенному в моем запросе на интеграцию.Я не хочу делать какие-либо вызовы API от моей лямбды после авторизации.Это возможно?

1 Ответ

0 голосов
/ 12 июня 2018

токен Cognito ID имеет форму JWT (веб-токен JSON).Заявка ISS представлена ​​в формате https://cognito-idp.{region}.amazonaws.com/{userPoolId}.

Каждый пул пользователей имеет соответствующий JWK, который можно найти по адресу https://cognito-idp.{region}.amazonaws.com/{userPoolId}/.well-known/jwks.json.

. То, что вам нужно будет сделать вВаш Lambda Authorizer получает запрос ISS из токена ID (это должна делать любая приличная библиотека JWT) и обрабатывает UserPoolId.Затем, если он из действительного пула пользователей, проверьте токен, используя JWK для этого пула пользователей и приличную библиотеку JWT.Поэтому, если пользователь находится в одном из соответствующих пользовательских пулов и , токен действителен, вы предоставляете доступ.

...