理解 FusionAuth JWT 中的签名密钥配置与影子密钥
本文深入探讨了 FusionAuth 中 JSON Web Token (JWT) 的签名密钥配置机制,重点介绍了“影子密钥”(Shadow Keys)的概念及其在密钥轮换和向后兼容性中的关键作用。文章解释了如何配置主签名密钥和影子密钥,以确保在密钥更新期间现有令牌仍能被验证,从而避免服务中断。对于使用 FusionAuth 进行身份管理的开发人员,理解这一配置对保障系统安全性至关重要。
背景速读
FusionAuth 是一个开源的身份认证和授权平台,开发者用它来为自己的应用添加登录、注册、密码重置等功能。JWT(JSON Web Token)是这类系统中常用的一种令牌格式,用于在用户登录后验证其身份。
这篇讨论的核心是 FusionAuth 中签名密钥的配置,以及一个叫"影子密钥"的概念。背景是:当轮换或更换 JWT 签名密钥时,如果立即生效,旧密钥签发的令牌会被系统拒绝,导致已登录用户突然无法使用。影子密钥机制允许新旧密钥并存一段时间——旧密钥继续有效(作为"影子"),直到所有用旧密钥签发的令牌自然过期,从而实现无缝过渡。该帖子讨论的就是如何理解和配置这个机制。