知识卡片
JWT的三段结构与信任前提
内容
JWT 是一种在多方之间传递身份声明(claims)的标准格式,实际使用时通常以 JWS(带数字签名的 JWT)形式出现,是用点号分隔的三段 Base64 字符串:header 描述用的什么签名算法和令牌类型;payload 是真正携带的声明内容,比如签发者、令牌归属的用户、过期时间;signature 是对前两段内容的数字签名,用来保证内容没有被篡改。这套结构能work的前提是接收方本来就信任签发者(issuer)并且有办法校验签名的有效性——JWT 本身不解决”我该不该信任这个签发者”这个问题,它解决的是”内容有没有在传输过程中被人改过”这个更窄的问题。发散:这个边界很容易被误解——拿到一个签名有效的 JWT,只能说明”这确实是某个持有对应私钥的签发者发的、内容没被篡改”,不代表这个签发者本身可信、也不代表令牌没过期没被撤销,验证签名只是信任链条里的一环,不是全部。
参考来源
《Cloud Native Spring in Action》第11章《Security: Authentication and SPA》