微服务和云原生架构实践-JWT简介

我不是女神ヾ 2024-04-18 18:32 134阅读 0赞

什么是JWT

  1. JSON Web Token(JWT)是RFC 7519定义的⼀个开放标准,它定义了⼀种紧凑和⾃ 包含的JSON对象格式,通过它可以在多个实体间安全地传输信息。信息经过签 名,可信任和可校验。主要⽤于认证/SSO和信息交换。 签名⽅式 HMAC~secret RSA ~ public/private key

类⽐签名⽀票

watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3poYW9rZWppbjUyMQ_size_16_color_FFFFFF_t_70

两种令牌类型

透明令牌

  • By Reference Token
  • 随机字符串,⽆法猜测,严格服务器集中校验

⾃包含令牌

  • By Value Token
  • 可以包含⽤户元数据或者声明(claims),⽆状态校验
  • JSON Web Token(JWT)

JWT令牌结构

watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3poYW9rZWppbjUyMQ_size_16_color_FFFFFF_t_70 1

JWT令牌结构

watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3poYW9rZWppbjUyMQ_size_16_color_FFFFFF_t_70 2

流程HMAC

watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3poYW9rZWppbjUyMQ_size_16_color_FFFFFF_t_70 3

流程RSA

流程RSA是用的密钥对来认证的

watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3poYW9rZWppbjUyMQ_size_16_color_FFFFFF_t_70 4

JWT优劣

优点:

  • CORS
  • 不需要CSRF保护
  • 易于和Mobile集成
  • ⽆状态校验

    • 不需要分布式会话存储
    • 减少授权服务器压⼒

不⾜:

  • 信息公开可见
  • 易于受XSS攻击
  • 可能包含过期授权信息
  • 令牌⼤⼩随信息量增长
  • ⽆状态和吊销互斥

因为不需要cookie所以不牵扯到跨域CORS

JWT无状态不需要集中式分布式缓存,减少了授权服务器的压力

只要拿到了串就能界面信息,就可以用base64解析出来

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

发表评论

表情:
评论列表 (有 0 条评论,134人围观)

还没有评论,来说两句吧...

相关阅读

    相关 服务架构简介

    微服务架构简介 一、 单体架构   单体架构也称之为单体系统或者是单体应用。就是一种把系统中所有的功能、模块耦合 在一个应用中的架构方式。MVC架构就是一种典型的单体