微服务和云原生架构实践-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解析出来

无状态吊销不及时,还在有效期内,吊销了不及时。如果是透明令牌+集中式校验的方式就可以

发布了112 篇原创文章 · 获赞 87 · 访问量 17万+

猜你喜欢

转载自blog.csdn.net/zhaokejin521/article/details/100702013