您当前的位置: 首页 >  网络

杨林伟

暂无认证

  • 2浏览

    0关注

    3337博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

微服务轮子项目(03) - 服务认证架构设计(有网络隔离)

杨林伟 发布时间:2020-12-11 11:48:26 ,浏览量:2

文章目录
    • 1. 环境说明
    • 2. 架构图
    • 3. 设计思路
      • 3.1 授权服务器
      • 3.2 API网关
      • 3.3 TokenResolver(TokenArgumentResolver类)

1. 环境说明

网络隔离是指用户访问的网络环境只能访问负载均衡/API网关,而访问不了后面的微服务机器

2. 架构图

在这里插入图片描述

3. 设计思路 3.1 授权服务器
  • 负责登录认证
  • token派发
  • token刷新
  • 应用接入管理
3.2 API网关

添加认证中心的sdk负责所有请求的鉴权,包括登录验证和url级别的权限判断,主要的JWT原理如下:

  • 拦截请求获取判断是否带有token参数(parameterheader)
  • 通过公钥pubkey.txt解密token
  • 判断token中的权限信息是否能访问当前url
  • 把用户名和角色信息放到请求的header中,传给后面的微服务
3.3 TokenResolver(TokenArgumentResolver类)

嵌入在微服务程序中负责获取当前登录人,主要原理如下:

  • 判断当前url请求的方法有没有带有@LoginUser注解
  • 判断@LoginUser注解的isFull属性是否为true则通过username查询用户对象
  • 构建SysUser对象传给目标方法
关注
打赏
1662376985
查看更多评论
立即登录/注册

微信扫码登录

0.0602s