跳到主要内容
ecdsa.com

JWKS(JSON Web 密钥集)

JSON 对象,其 keys 数组存放公钥 JWK;通常发布在颁发者的 jwks_uri 上,供依赖方验证令牌并跟进密钥轮换。
其他写法JWK Setjwks_uriJSON Web Key Setjwks.json

OpenID Connect 发现(/.well-known/openid-configuration)和 OAuth 授权服务器元数据(RFC 8414)以 jwks_uri 发布该 URL;密钥集包含当前所有可用于验证的密钥,每个密钥都带有 kid。验证者会缓存密钥集,选择 kid 与令牌头部一致的密钥,检查该密钥的 kty 和 alg 是否符合预期算法,并在遇到未知 kid 时重新获取(同时做速率限制)。

轮换的做法是:先添加新密钥,再用它签名;只有在用旧密钥签名的所有令牌都过期之后,才移除旧密钥。需要留意的问题:误发布了私有成员(d)、kid 值重复、缺少 alg 的密钥被宽松的库配上错误的算法使用,以及从不刷新的缓存。JWKS 检测可以针对这些问题审查线上端点。

标准与参考资料

全部术语