微服务和云原生架构实践-JWT简介
什么是JWT
JSON Web Token(JWT)是RFC 7519定义的⼀个开放标准,它定义了⼀种紧凑和⾃ 包含的JSON对象格式,通过它可以在多个实体间安全地传输信息。信息经过签 名,可信任和可校验。主要⽤于认证/SSO和信息交换。 签名⽅式 HMAC~secret RSA ~ public/private key
类⽐签名⽀票
两种令牌类型
透明令牌
- By Reference Token
- 随机字符串,⽆法猜测,严格服务器集中校验
⾃包含令牌
- By Value Token
- 可以包含⽤户元数据或者声明(claims),⽆状态校验
- JSON Web Token(JWT)
JWT令牌结构
JWT令牌结构
流程HMAC
流程RSA
流程RSA是用的密钥对来认证的
JWT优劣
优点:
- CORS
- 不需要CSRF保护
- 易于和Mobile集成
⽆状态校验
- 不需要分布式会话存储
- 减少授权服务器压⼒
不⾜:
- 信息公开可见
- 易于受XSS攻击
- 可能包含过期授权信息
- 令牌⼤⼩随信息量增长
- ⽆状态和吊销互斥
因为不需要cookie所以不牵扯到跨域CORS
JWT无状态不需要集中式分布式缓存,减少了授权服务器的压力
只要拿到了串就能界面信息,就可以用base64解析出来
无状态吊销不及时,还在有效期内,吊销了不及时。如果是透明令牌+集中式校验的方式就可以
还没有评论,来说两句吧...