JWKS
以标准JSON格式发布的公钥集合规范(RFC 7517),用于身份提供商向验证方动态暴露公钥,支持通过Key ID(kid)匹配特定密钥,配合密钥轮换机制使用
时间轴 (近 90 天)
当缓存中找不到令牌携带的 kid 时应触发一次强制刷新而非直接拒绝请求,以应对密钥轮换的竞态窗口
验证第三方身份提供商令牌所需的公钥通常通过 JWKS 端点动态获取,服务端需根据令牌头部的 kid 匹配对应密钥
在 Elixir 中可借助 GenServer 或 ETS 表将 JWKS 密钥集合缓存在内存中并设置刷新周期,以避免每次验证都请求 JWKS 端点
密钥轮换时 JWKS 端点会同时发布新旧两个公钥(通过不同 kid 区分),使验证方在过渡期内仍能校验旧密钥签发的存量令牌
JWKS是以JSON格式发布公钥集合的标准,IdP通常在OpenID Connect Discovery文档(/.well-known/openid-configuration)的jwks_uri字段暴露该端点
遇到未知kid时应触发JWKS强制刷新而非直接拒绝请求,以避免密钥轮换期间的误拒问题
JWKS(JSON Web Key Set)端点是用来分发公钥的标准机制
JWKS缓存未命中洪泛攻击可以通过伪造大量携带不同kid的无效JWT,迫使每个请求触发一次JWKS远程拉取,对授权服务器发起分布式拒绝服务攻击
全部知识事实 (8)
当缓存中找不到令牌携带的 kid 时应触发一次强制刷新而非直接拒绝请求,以应对密钥轮换的竞态窗口
50%待验证验证第三方身份提供商令牌所需的公钥通常通过 JWKS 端点动态获取,服务端需根据令牌头部的 kid 匹配对应密钥
50%待验证在 Elixir 中可借助 GenServer 或 ETS 表将 JWKS 密钥集合缓存在内存中并设置刷新周期,以避免每次验证都请求 JWKS 端点
50%待验证密钥轮换时 JWKS 端点会同时发布新旧两个公钥(通过不同 kid 区分),使验证方在过渡期内仍能校验旧密钥签发的存量令牌
50%待验证JWKS是以JSON格式发布公钥集合的标准,IdP通常在OpenID Connect Discovery文档(/.well-known/openid-configuration)的jwks_uri字段暴露该端点
50%待验证遇到未知kid时应触发JWKS强制刷新而非直接拒绝请求,以避免密钥轮换期间的误拒问题
50%待验证JWKS(JSON Web Key Set)端点是用来分发公钥的标准机制
50%待验证JWKS缓存未命中洪泛攻击可以通过伪造大量携带不同kid的无效JWT,迫使每个请求触发一次JWKS远程拉取,对授权服务器发起分布式拒绝服务攻击
50%