结合Zuul的鉴权流程

我们逐步演进系统架构设计。需要注意的是:secret是签名的关键,因此一定要保密,我们放到鉴权中心保存,其它任何服务中都不能获取secret。

没有RSA加密时

在微服务架构中,我们可以把服务的鉴权操作放到网关中,将未通过鉴权的请求直接拦截,如图:

  • 1、用户请求登录

  • 2、Zuul将请求转发到授权中心,请求授权

  • 3、授权中心校验完成,颁发JWT凭证

  • 4、客户端请求其它功能,携带JWT

  • 5、Zuul将jwt交给授权中心校验,通过后放行

  • 6、用户请求到达微服务

  • 7、微服务将jwt交给鉴权中心,鉴权同时解析用户信息

  • 8、鉴权中心返回用户数据给微服务

  • 9、微服务处理请求,返回响应

发现什么问题了?

每次鉴权都需要访问鉴权中心,系统间的网络请求频率过高,效率略差,鉴权中心的压力较大。

结合RSA的鉴权

直接看图:

  • 我们首先利用RSA生成公钥和私钥。私钥保存在授权中心,公钥保存在Zuul和各个信任的微服务

  • 用户请求登录

  • 授权中心校验,通过后用私钥对JWT进行签名加密

  • 返回jwt给用户

  • 用户携带JWT访问

  • Zuul直接通过公钥解密JWT,进行验证,验证通过则放行

  • 请求到达微服务,微服务直接用公钥解析JWT,获取用户信息,无需访问授权中心

结合zuul网关的鉴权流程相关推荐

  1. Spring Cloud Gateway实现网关统一鉴权,网关统一Token认证

    需求背景 在微服务的场景下,采用了Spring Cloud Oauth2进行token的管理,实现认证和授权,在这下背景下,有两种解决方案: 网关统一鉴权 此模式适用于网关下的所有模式都是通过一种模式 ...

  2. .Net Core使用Ocelot网关(二) -鉴权认证

    前言 上一章.Net Core使用Ocelot网关(一) -负载,限流,熔断,Header转换 已经简单的介绍了ocelot的使用了,但是网关暴露的接口如果什么人都能访问的话安全性就太低啦.所以我们需 ...

  3. 01 飞书开发-网页应用JSSDK鉴权流程

    本次飞书网页应用代码示例采用uni-app框架,注重代码的思想,触类旁通 1.1 网页应用 JSSDK鉴权流程 1.1.1 获取tenant_access_token \src\manifest.js ...

  4. Spring Security 鉴权流程

    如果对该文章感兴趣欢迎关注我的小博客 Forest,我会分享更多学习时遇到的知识 (●'◡'●) 参考资料 SpringSecurity原理剖析与权限系统设计 SpringSecurity动态鉴权流程 ...

  5. 5G UE鉴权流程详解 UE Authentication

    名词 SUCI (Subscription Concealed Identifier)订阅隐藏标识符 SUPI (Subscription Permanent Identifier)订阅永久标识符 S ...

  6. LTE(4G) AUTHENTICATION(鉴权)流程

    authentication(鉴权) 鉴权的目的是为了保证接入网络的UE是否合法的UE,网络时合法的网络,LTE的鉴权有双重鉴权的概念,网络对于UE进行鉴权,UE也会对网络进行鉴权 MME触发,且网络 ...

  7. satoken+ gateway网关统一鉴权 初版

    一:感谢大佬 本博客内容 参考了satoken官网实现,satoken官网地址: https://sa-token.cc/doc.html#/micro/gateway-auth 二:项目层级介绍 j ...

  8. 搭建gataway鉴权流程

    先完善Login接口 controller @RestController @RequestMapping("/login") @Api(value = "管理API&q ...

  9. SpringSecurity鉴权流程分析 附源码注释,xdm,一起来看看吧

    纸上得来终觉浅,绝知此事要躬行. 阅读本文: 如需简单使用

最新文章

  1. 弧形玻璃清洁机器人_宅家大扫除清洁装备+清洁好物+全屋家电维护一文搞定
  2. 换一种方式编写 Spring MVC 接口
  3. git统计每个人的代码行数_项目出了bug如何甩锅?使用这个Git工具帮你找到元凶...
  4. css 注入,electron程序,如何在主进程远程页面中注入js及css?
  5. mybatis配置id自增mysql_mybatis配置oracle的主键自增长
  6. android linux内核开发环境,定制Android 4.2.2开发环境
  7. 大数据处理时的一种BitMap小算法
  8. Qt文档阅读笔记-QThreadPool官方解析及实例
  9. sql无法写入mysql_windows7 sqlserver2012 无法写入受保护的内存 解决办法
  10. Vue之安装Google开发插件
  11. LC5软件破解用户口令
  12. pert计算公式期望值_信息系统项目管理师计算题详解:PERT(计划评审技术)计算...
  13. Face2Face: Real-time Face Capture and Reenactment
  14. 百度导航怎么不显示服务器,win7系统百度首页导航不见了怎么办
  15. 2023年开工第一天
  16. 原生JS 和 jQuery 通过url传递 和 接收 自定义参数
  17. linux-c之函数(函数指针、函数传参、命令行参数)
  18. 【贪心】605. 种花问题
  19. linux操作系统各版本直接的区别?
  20. redmine mysql迁移_redmine迁移

热门文章

  1. 使用Chrome快速实现数据的抓取(四)——优点
  2. vue设置全局变量或函数
  3. 正则表达式获取body内容
  4. linux分区工具fdisk的使用
  5. py2exe使用相对路径的当前目录问题
  6. 大话设计模式—适配器模式
  7. C4C销售订单中业务伙伴的自动决定功能Partner determination procedure
  8. Angular6错误 Service: No provider for Renderer2
  9. Ansible剧本介绍及使用演示(week5_day2)--技术流ken
  10. word中中文保持正体,英文用斜体的方法.