Cognito 刷新令牌是否“有效”的 JSON Web 令牌?

Nic*_*ach 4 amazon-web-services jwt amazon-cognito

我一直在尝试验证 Amazon Cognito 身份提供商通过他们的 boto3 python 客户端返回的“刷新令牌”。我一直在https://jwt.io使用验证器。

当我将刷新令牌粘贴到“编码”框中时,它返回一个标题:

{
  "cty": "JWT",
  "enc": "A256GCM",
  "alg": "RSA-OAEP"
}
Run Code Online (Sandbox Code Playgroud)

但该工具还在底部显示“无效签名”。

我想知道这是否是预期的行为?AWS Cognito 刷新令牌是否不是有效的 JWT?

Flo*_*lli 8

是的,使用此标头,刷新令牌似乎是有效的 JWT。

https://jwt.io无法解析它,因为它仅限于签名的 JWT(JWS - RFC7515),而这个是加密的(JWE - RFC7516)。

与 JWS 不同的是,JWE 由 5 个用点分隔的部分组成。它的标头可以被解析,但有效载荷是加密的,没有私钥或共享密钥就无法读取。

根据cty标头,此令牌包含另一个 JWT,它肯定是 JWS。这个嵌套的令牌允许两个世界:签名和加密声明。