我有一个来自 AWS Cognito 的 JWT 令牌。令牌是通过调用 getOpenIdTokenForDeveloperIdentity 获得的,我正在使用 AWS Cognito Developer Authenticated identity 的流程
该令牌使用 SHA512 进行哈希处理,并使用我正在使用的区域/区域的 Amazon RSA 私钥进行签名。
如何使用 python 从外部验证签名?
我有一个来自 AWS Cognito 的 JWT 令牌。令牌是通过调用 getOpenIdTokenForDeveloperIdentity 获得的,我正在使用 AWS Cognito Developer Authenticated identity 的流程
该令牌使用 SHA512 进行哈希处理,并使用我正在使用的区域/区域的 Amazon RSA 私钥进行签名。
如何使用 python 从外部验证签名?
在这里回答我自己的问题,希望对某人有所帮助。
就我而言,我想验证通过 AWS Cognito Developer Authenticated 身份路由获得的 JWT 令牌的签名。不涉及 AWS API Gateway。
像各种网站上的许多海报一样,我很难将我需要的位拼凑在一起,以在外部(即服务器端或通过脚本)验证 AWS JWT 令牌的签名
我想我想出了一个要点来验证 AWS JWT 令牌签名。它将使用 PyCrypto 中 Crypto.Signature 的 pyjwt 或 PKCS1_v1_5c 验证 AWS JWT/JWS 令牌
所以,是的,在我的情况下这是 python,但它在节点中也很容易(npm install jsonwebtoken jwk-to-pem 请求)。
我试图在评论中强调一些陷阱,因为当我试图弄清楚这一点时,我大部分时间都在做正确的事情,但是有一些细微差别,比如 python dict ordering,或者缺少它,以及 json 表示。
我还注意到一些关于使用签名者证书进行验证的问题。我将修改我的要点以显示这一点。
希望它可以帮助某个地方的人。