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

简介: 微服务轮子项目(04) - 服务认证架构设计(无网络隔离)

1. 环境说明

无网络隔离是指用户访问的网络环境与整个系统的部署网络环境是相通的,例如用户可以绕过API网关直接访问后台的服务。

2. 架构与设计思路

2.1 架构图

2.2 设计思路

2.2.1 统一认证
  • 负责登录认证
  • token派发
  • token刷新
  • 应用接入管理
2.2.2 API网关

只负责路由转发

2.2.3 微服务

每个服务都需加入认证中心的sdk负责所有请求的鉴权

2.2.4 TokenResolver

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

  • 判断当前url请求的方法有没有带有@LoginUser注解
  • 判断@LoginUser注解的isFull属性是否为true则通过username查询用户对象
  • 构建SysUser对象传给目标方法

3. 优化

与前面的架构对比,下图改进保证每个服务的API都有认证,并且客户端与服务内部分别使用不同的token同时融合了redisTokenjwt两者的优点,架构图如下:

3.1 设计思路

3.1.1 客户端使用redisToken
  • 减少网络带宽消耗:普通的uuid token对于jwt的长度小很多
  • 能实现更多的功能:使用redisToken功能更多,能方便实现如token自动续约、在线用户列表、踢人等功能
3.1.2 内部服务使用jwt
  • 场景符合:由于是内部服务使用,客户端只能获取access token没有jwt,所以无需让jwt token失效符合jwt特性
  • 提升性能:服务与服务之间的通信只需通过jwt自解析认证,无需网络连接,大大减少redis的压力和提升性能
  • 增加安全性:内部服务与客户端所使用的token不一样,能有效防止客户端绕开网关直接请求后面服务

4. 实践思路

  1. 自己实现一个RedisTokenStorestoreAccessToken的时候使用私钥生成JWT并存到Redis
  2. 网关添加过滤器在认证access_token成功后,获取JWT存到header中请求后面的内部服务
  3. 每个内部服务都添加@EnableResourceServer配置为资源服务器,并且ylw.oauth2.token.store设置为resJwt使用公钥自解析JWT
目录
相关文章
|
11月前
|
人工智能 运维 安全
配置驱动的动态 Agent 架构网络:实现高效编排、动态更新与智能治理
本文所阐述的配置驱动智能 Agent 架构,其核心价值在于为 Agent 开发领域提供了一套通用的、可落地的标准化范式。
5249 119
|
10月前
|
运维 监控 数据可视化
Python 网络请求架构——统一 SOCKS5 接入与配置管理
通过统一接入端点与标准化认证,集中管理配置、连接策略及监控,实现跨技术栈的一致性网络出口,提升系统稳定性、可维护性与可观测性。
|
小程序 前端开发
2025商业版拓展校园圈子论坛网络的创新解决方案:校园跑腿小程序系统架构
校园跑腿小程序系统是一款创新解决方案,旨在满足校园配送需求并拓展校友网络。跑腿员可接单配送,用户能实时跟踪订单并评价服务。系统包含用户、客服、物流、跑腿员及订单模块,功能完善。此外,小程序增设信息咨询发布、校园社区建设和活动组织等功能,助力校友互动、经验分享及感情联络,构建紧密的校友网络。
480 1
2025商业版拓展校园圈子论坛网络的创新解决方案:校园跑腿小程序系统架构
|
人工智能 监控 安全
NTP网络子钟的技术架构与行业应用解析
在数字化与智能化时代,时间同步精度至关重要。西安同步电子科技有限公司专注时间频率领域,以“同步天下”品牌提供可靠解决方案。其明星产品SYN6109型NTP网络子钟基于网络时间协议,实现高精度时间同步,广泛应用于考场、医院、智慧场景等领域。公司坚持技术创新,产品通过权威认证,未来将结合5G、物联网等技术推动行业进步,引领精准时间管理新时代。
|
11月前
|
人工智能 安全 数据可视化
配置驱动的动态Agent架构网络:实现高效编排、动态更新与智能治理
本文系统性地提出并阐述了一种配置驱动的独立运行时Agent架构,旨在解决当前低代码/平台化Agent方案在企业级落地时面临困难,为Agent开发领域提供了一套通用的、可落地的标准化范式。
762 18
配置驱动的动态Agent架构网络:实现高效编排、动态更新与智能治理
|
10月前
|
Cloud Native Serverless API
微服务架构实战指南:从单体应用到云原生的蜕变之路
🌟蒋星熠Jaxonic,代码为舟的星际旅人。深耕微服务架构,擅以DDD拆分服务、构建高可用通信与治理体系。分享从单体到云原生的实战经验,探索技术演进的无限可能。
微服务架构实战指南:从单体应用到云原生的蜕变之路
|
机器学习/深度学习 计算机视觉 iOS开发
RT-DETR改进策略【模型轻量化】| 替换骨干网络 CVPR-2024 RepViT 轻量级的Vision Transformers架构
RT-DETR改进策略【模型轻量化】| 替换骨干网络 CVPR-2024 RepViT 轻量级的Vision Transformers架构
1087 0
RT-DETR改进策略【模型轻量化】| 替换骨干网络 CVPR-2024 RepViT 轻量级的Vision Transformers架构
|
缓存 Cloud Native Java
Java 面试微服务架构与云原生技术实操内容及核心考点梳理 Java 面试
本内容涵盖Java面试核心技术实操,包括微服务架构(Spring Cloud Alibaba)、响应式编程(WebFlux)、容器化(Docker+K8s)、函数式编程、多级缓存、分库分表、链路追踪(Skywalking)等大厂高频考点,助你系统提升面试能力。
1638 0