【问题标题】:Are Cognito refresh tokens "valid" JSON web tokens?Cognito 刷新令牌是“有效”的 JSON Web 令牌吗?
【发布时间】:2020-06-10 20:41:12
【问题描述】:

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

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

{
  "cty": "JWT",
  "enc": "A256GCM",
  "alg": "RSA-OAEP"
}

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

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

【问题讨论】:

  • 您是否也将签名凭据粘贴到 jwt.io 中?
  • 我传递了一个秘密块,base64 编码和一个签名 (utf-8)。这些在用于解码刷新令牌的调试器工具中均无效,即使我在验证签名字段中选择“秘密 base64 编码”。

标签: amazon-web-services jwt amazon-cognito


【解决方案1】:

是的,有了这个标头,刷新令牌似乎是一个有效的 JWT。

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

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

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

【讨论】:

  • 感谢您提供此信息。澄清一下:jwt.io 能够验证 JWE 令牌?
  • jwt.io 能够解析和验证签名令牌 (JWS),但无法解析和解密加密令牌 (JWE)
猜你喜欢
  • 2018-04-03
  • 2023-03-25
  • 2018-05-06
  • 1970-01-01
  • 2022-08-14
  • 2023-02-16
  • 2018-09-06
  • 2016-09-23
  • 1970-01-01
相关资源
最近更新 更多