amazon-web-services – 为什么AWS Cognito会为JWT使用多个公钥?

当我下载特定用户池的JWT集时可用:
https://cognito-idp.{region} .amazonaws.com / {userPoolId} /.熟知/ jwks.json

JSON包含2个键.我为池创建的所有用户似乎只使用其中一个密钥.

每个用户池有多个密钥的原因是什么?

最佳答案 从
decoding-aws-cognito-jwt

“首先,从下面的URL获取JSON Web密钥集(JWKS)文件.将区域和userPoolId替换为Cognito用户池的配置.

https://cognito-idp. {区域} .amazonaws.com / {userPoolId} /.众所周知/ jwks.json

此JSON哈希是一组JWK,因此名称为JWKS.它可能包含或不包含超过1 JWK.如果有多个JWK,我们应该使用哪一个进行解码?

在JWT中,令牌的标题部分中有一个名为kid的键,这是JWT的第一个哈希.而在每个JWK中,还有一个叫做kid的钥匙.因此,我们应该使用具有匹配的kid值的JWK来解码JWT.“

点赞