我一直在尝试验证Amazon Cognito Identity Provider通过其boto3 python客户端返回的“刷新令牌”。我一直在使用https://jwt.io上的验证器。
当我将刷新令牌粘贴到“已编码”框中时,它将返回标题:
{
"cty": "JWT",
"enc": "A256GCM",
"alg": "RSA-OAEP"
}
但是该工具在底部也显示“无效签名”。
我想知道这是否是预期的行为? AWS Cognito刷新令牌不是有效的JWT吗?
答案 0 :(得分:6)
是的,使用此标头,似乎刷新令牌是有效的JWT。
https://jwt.io无法解析它,因为它仅限于签名的JWT(JWS-RFC7515),而这是一个加密的JWT(JWE-RFC7516)。
与JWS相反,JWE由5个由点分隔的部分组成。可以解析其标头,但是有效载荷已加密,没有私有或共享密钥就无法读取。
根据cty
头,此令牌包含另一个JWT,该JWT当然是JWS。此嵌套令牌允许两个世界:签名和加密声明。