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

本文涉及的产品
Redis 开源版,标准版 2GB
推荐场景:
搭建游戏排行榜
云数据库 Tair(兼容Redis),内存型 2GB
简介: 微服务轮子项目(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
相关实践学习
基于Redis实现在线游戏积分排行榜
本场景将介绍如何基于Redis数据库实现在线游戏中的游戏玩家积分排行榜功能。
云数据库 Redis 版使用教程
云数据库Redis版是兼容Redis协议标准的、提供持久化的内存数据库服务,基于高可靠双机热备架构及可无缝扩展的集群架构,满足高读写性能场景及容量需弹性变配的业务需求。 产品详情:https://www.aliyun.com/product/kvstore     ------------------------------------------------------------------------- 阿里云数据库体验:数据库上云实战 开发者云会免费提供一台带自建MySQL的源数据库 ECS 实例和一台目标数据库 RDS实例。跟着指引,您可以一步步实现将ECS自建数据库迁移到目标数据库RDS。 点击下方链接,领取免费ECS&RDS资源,30分钟完成数据库上云实战!https://developer.aliyun.com/adc/scenario/51eefbd1894e42f6bb9acacadd3f9121?spm=a2c6h.13788135.J_3257954370.9.4ba85f24utseFl
目录
相关文章
|
20天前
|
安全 虚拟化
在数字化时代,网络项目的重要性日益凸显。本文从前期准备、方案内容和注意事项三个方面,详细解析了如何撰写一个优质高效的网络项目实施方案,帮助企业和用户实现更好的体验和竞争力
在数字化时代,网络项目的重要性日益凸显。本文从前期准备、方案内容和注意事项三个方面,详细解析了如何撰写一个优质高效的网络项目实施方案,帮助企业和用户实现更好的体验和竞争力。通过具体案例,展示了方案的制定和实施过程,强调了目标明确、技术先进、计划周密、风险可控和预算合理的重要性。
40 5
|
20天前
|
云安全 人工智能 安全
阿里云稳居公共云网络安全即服务市占率第一
日前,全球领先的IT市场研究和咨询公司IDC发布了《中国公有云网络安全即服务市场份额,2023:规模稳步增长,技术创新引领市场格局》报告。报告显示,阿里云以27.0%的市场份额蝉联榜首。
|
25天前
|
人工智能 安全 Cloud Native
|
2月前
|
监控 API 持续交付
构建高效后端服务:微服务架构的深度探索
【10月更文挑战第20天】 在数字化时代,后端服务的构建对于支撑复杂的业务逻辑和海量数据处理至关重要。本文深入探讨了微服务架构的核心理念、实施策略以及面临的挑战,旨在为开发者提供一套构建高效、可扩展后端服务的方法论。通过案例分析,揭示微服务如何帮助企业应对快速变化的业务需求,同时保持系统的稳定性和灵活性。
47 9
|
1月前
|
运维 安全 5G
|
25天前
|
设计模式 Java API
微服务架构演变与架构设计深度解析
【11月更文挑战第14天】在当今的IT行业中,微服务架构已经成为构建大型、复杂系统的重要范式。本文将从微服务架构的背景、业务场景、功能点、底层原理、实战、设计模式等多个方面进行深度解析,并结合京东电商的案例,探讨微服务架构在实际应用中的实施与效果。
87 6
|
25天前
|
设计模式 Java API
微服务架构演变与架构设计深度解析
【11月更文挑战第14天】在当今的IT行业中,微服务架构已经成为构建大型、复杂系统的重要范式。本文将从微服务架构的背景、业务场景、功能点、底层原理、实战、设计模式等多个方面进行深度解析,并结合京东电商的案例,探讨微服务架构在实际应用中的实施与效果。
36 1
|
3月前
|
安全 应用服务中间件 API
微服务分布式系统架构之zookeeper与dubbo-2
微服务分布式系统架构之zookeeper与dubbo-2
|
3月前
|
负载均衡 Java 应用服务中间件
微服务分布式系统架构之zookeeper与dubbor-1
微服务分布式系统架构之zookeeper与dubbor-1