Как я могу внешне проверить токен JWT, который был подписан с закрытым ключом RSA

У меня есть токен JWT от AWS Cognito. Токен получен с помощью вызова getOpenIdTokenForDeveloperIdentity, и я использую поток для аутентификации AWS Cognito Developer Authenticated

Токен хешируется с помощью SHA512 и подписывается закрытым ключом Amazons RSA для региона / зоны, которую я использую.

Как я могу внешне проверить подпись с помощью Python?

1 ответ

Отвечая на мой вопрос здесь, в надежде, что это кому-нибудь поможет.

В моем случае я хотел проверить подпись токена JWT, полученного через идентификационный маршрут AWS Cognito Developer Authenticated. Нет участия AWS API Gateway.

Как и многие постеры на разных сайтах, у меня возникли проблемы с соединением именно тех битов, которые мне нужны для внешней проверки подписи токена AWS JWT, т. Е. На стороне сервера или с помощью сценария.

Я думаю, что выяснил и поставил суть, чтобы проверить подпись токена AWS JWT. Он будет проверять токен AWS JWT/JWS с помощью pyjwt или PKCS1_v1_5c из Crypto.Signature в PyCrypto.

Итак, да, это был python в моем случае, но это также легко выполнимо в узле (npm install jsonwebtoken jwk-to-pem request).

Я попытался выделить несколько замечаний в комментариях, потому что, когда я пытался понять это, я в основном делал правильные вещи, но были некоторые нюансы, такие как упорядочение в python dict или его отсутствие, и представление json.

Я также заметил несколько вопросов о проведении проверки с использованием сертификата подписавшего. Я исправлю свою суть, чтобы показать это тоже.

Надеюсь, это может кому-нибудь помочь.

Другие вопросы по тегам