微服务轮子项目(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
目录
相关文章
|
9月前
|
Cloud Native Serverless API
微服务架构实战指南:从单体应用到云原生的蜕变之路
🌟蒋星熠Jaxonic,代码为舟的星际旅人。深耕微服务架构,擅以DDD拆分服务、构建高可用通信与治理体系。分享从单体到云原生的实战经验,探索技术演进的无限可能。
微服务架构实战指南:从单体应用到云原生的蜕变之路
|
JSON 中间件 Go
Go 网络编程:HTTP服务与客户端开发
Go 语言的 `net/http` 包功能强大,可快速构建高并发 HTTP 服务。本文从创建简单 HTTP 服务入手,逐步讲解请求与响应对象、URL 参数处理、自定义路由、JSON 接口、静态文件服务、中间件编写及 HTTPS 配置等内容。通过示例代码展示如何使用 `http.HandleFunc`、`http.ServeMux`、`http.Client` 等工具实现常见功能,帮助开发者掌握构建高效 Web 应用的核心技能。
584 61
|
缓存 Cloud Native Java
Java 面试微服务架构与云原生技术实操内容及核心考点梳理 Java 面试
本内容涵盖Java面试核心技术实操,包括微服务架构(Spring Cloud Alibaba)、响应式编程(WebFlux)、容器化(Docker+K8s)、函数式编程、多级缓存、分库分表、链路追踪(Skywalking)等大厂高频考点,助你系统提升面试能力。
1594 0
|
网络协议 安全 Devops
Infoblox DDI (NIOS) 9.0 - DNS、DHCP 和 IPAM (DDI) 核心网络服务管理
Infoblox DDI (NIOS) 9.0 - DNS、DHCP 和 IPAM (DDI) 核心网络服务管理
640 4
|
Ubuntu 网络协议 Unix
02理解网络IO:实现服务与客户端通信
网络IO指客户端与服务端通过网络进行数据收发的过程,常见于微信、QQ等应用。本文详解如何用C语言实现一个支持多客户端连接的TCP服务端,涉及socket编程、线程处理及通信流程,并分析“一消息一线程”模式的优缺点。
637 0
|
Cloud Native Serverless 流计算
云原生时代的应用架构演进:从微服务到 Serverless 的阿里云实践
云原生技术正重塑企业数字化转型路径。阿里云作为亚太领先云服务商,提供完整云原生产品矩阵:容器服务ACK优化启动速度与镜像分发效率;MSE微服务引擎保障高可用性;ASM服务网格降低资源消耗;函数计算FC突破冷启动瓶颈;SAE重新定义PaaS边界;PolarDB数据库实现存储计算分离;DataWorks简化数据湖构建;Flink实时计算助力风控系统。这些技术已在多行业落地,推动效率提升与商业模式创新,助力企业在数字化浪潮中占据先机。
803 12
|
弹性计算 API 持续交付
后端服务架构的微服务化转型
本文旨在探讨后端服务从单体架构向微服务架构转型的过程,分析微服务架构的优势和面临的挑战。文章首先介绍单体架构的局限性,然后详细阐述微服务架构的核心概念及其在现代软件开发中的应用。通过对比两种架构,指出微服务化转型的必要性和实施策略。最后,讨论了微服务架构实施过程中可能遇到的问题及解决方案。
|
Cloud Native Devops 云计算
云计算的未来:云原生架构与微服务的革命####
【10月更文挑战第21天】 随着企业数字化转型的加速,云原生技术正迅速成为IT行业的新宠。本文深入探讨了云原生架构的核心理念、关键技术如容器化和微服务的优势,以及如何通过这些技术实现高效、灵活且可扩展的现代应用开发。我们将揭示云原生如何重塑软件开发流程,提升业务敏捷性,并探索其对企业IT架构的深远影响。 ####
518 3
|
Cloud Native 安全 数据安全/隐私保护
云原生架构下的微服务治理与挑战####
随着云计算技术的飞速发展,云原生架构以其高效、灵活、可扩展的特性成为现代企业IT架构的首选。本文聚焦于云原生环境下的微服务治理问题,探讨其在促进业务敏捷性的同时所面临的挑战及应对策略。通过分析微服务拆分、服务间通信、故障隔离与恢复等关键环节,本文旨在为读者提供一个关于如何在云原生环境中有效实施微服务治理的全面视角,助力企业在数字化转型的道路上稳健前行。 ####

热门文章

最新文章