如何从外部验证已使用RSA私钥签名的JWT令牌

时间:2017-01-08 20:46:48

标签: amazon-web-services jwt public-key-encryption amazon-cognito pyjwt

我有来自AWS Cognito的JWT令牌。令牌是通过调用getOpenIdTokenForDeveloperIdentity获得的,我正在使用AWS Cognito Developer身份验证标识的流程

使用SHA512对令牌进行哈希处理,并使用Amazons RSA私钥对我正在使用的区域/区域进行签名。

如何使用python外部验证签名?

1 个答案:

答案 0 :(得分:2)

在这里回答我自己的问题,希望能帮到别人。

在我的情况下,我想验证通过AWS Cognito Developer Authenticated身份路由获得的JWT令牌的签名。没有AWS API Gateway参与。

与各个网站上的许多海报一样,我无法拼凑出我需要在外部验证AWS JWT令牌签名的位,即服务器端或脚本

我想我已经弄明白并向verify an AWS JWT token signature提出了一个要点。它将从PyCrypto中的Crypto.Signature验证带有pyjwt或PKCS1_v1_5c的AWS JWT / JWS令牌

所以,是的,在我的情况下这是python,但它在节点中也很容易实现(npm install jsonwebtoken jwk-to-pem request)。

我试图强调评论中的一些问题,因为当我试图解决这个问题时,我主要是做正确的事,但有一些细微差别,如p​​ython dict排序,或者缺少json和json表示。

我还注意到有关使用签名者证书进行验证的一些问题。我会修改我的要点以表明这一点。

希望它可以帮助某个人。