Python и Flask для аутентификации с помощью Amazon Cognito - PullRequest
0 голосов
/ 11 июня 2018

Вот конечная цель: написать приложение Flask, которое поддерживает вход в систему / аутентификацию с использованием Amazon Cognito User Pools.Обе платформы являются довольно новыми для меня.

Я использовал ордерную аутентификацию без сервера, чтобы получить токен доступа JWT от Cognito.Однако я не уверен, как или что мне нужно, чтобы проверить токен как действительный.Я прочитал несколько ответов на этом сайте, а также следующие ссылки:

https://aws.amazon.com/premiumsupport/knowledge-center/decode-verify-cognito-json-token/ https://aws.amazon.com/blogs/mobile/integrating-amazon-cognito-user-pools-with-api-gateway/

Первая ссылка предполагает:

Чтобы проверить подпись Amazon Cognito JWT, сначала найдите ключ с идентификатором ключа, который соответствует идентификатору ключа JWT.Затем используйте библиотеки для декодирования токена и проверки подписи.

Я получил JWK для открытого ключа из предоставленной ссылки, но я не уверен, как его использовать.Какие библиотеки я могу использовать для декодирования токена, учитывая, что я работаю в среде Python?Я посмотрел на flask-jwt-extended, но предоставленные классы и методы, похоже, не решают мою точную проблему.Должен ли я переопределять классы и функции в flask-jwt-extended, чтобы получить желаемый эффект?

Или, если я неправильно подхожу к этой проблеме, есть какие-нибудь указатели или предложения?

1 Ответ

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

В итоге я выяснил это, но если кому-то еще интересно, я использовал библиотеку PyJWT для декодирования токенов JWT, которые вернул Cognito.Посмотрел довольно далеко в flask-jwt-extended, но предоставленные методы не покрывали нужную мне функциональность.

jwt.algorithms.RSAAlgorithm.from_jwk был полезен для декодирования JWK для получения его открытого ключа

...