SpringCloud Alibaba微服务实战二十八 - 网关授权VS微服务授权

简介: SpringCloud Alibaba微服务实战二十八 - 网关授权VS微服务授权

在SpringCloud架构中,实现授权功能有两种实现方式:

  • 在网关层进行授权
  • 由后端微服务自己授权

两种方式在此系列文章中都有实现方案,那么问题来了:哪种才是最优方案,哪种方案更合理呢?

很抱歉,看完这篇文章你也不一定能得到你想要的答案,因为结论是并没有最优方案,两种方案各有千秋,只有根据自身业务选择对应的方案。本文我们将两种方案做一个简单对比,以便大伙在做方案决策有个选择参考。


解决方案对比


首先我们看看两种方案实现的原理:如果对具体实现方式有疑问的同学可以参考这篇文章:

SpringCloud Alibaba微服务实战十九 - 集成RBAC授权


网关授权

基于网关授权我们又叫基于路径匹配器授权,请求在经过网关的时候校验当前请求的路径是否在用户拥有的资源路径中。

在基于路径匹配器授权时需要考虑restful风格的访问路径,如 /account-service/blog/user/{id}/account-service/blog/**等,所以在网关进行授权主要是基于通配符匹配


微服务授权

微服务授权我们又叫基于方法拦截,在资源上打上对应的方法标识然后分配给用户。在请求方法上通过对应的注解判断当前用户是否有访问此方法的权限。如SpringSecurity中的 @PreAuthorize("hasAuthority('')")注解,Shiro中的 @RequiresPermissions('')注解。不管是SpringSecurity还是Shiro他们实现原理都是基于关键字完全匹配


优缺点对比


网关授权

优点

使用网关授权的优点很明显,后端所有微服务只需要是普通的服务即可,不再需要依赖权限那一套。

缺点

  1. 通配符匹配在网关做性能比较差,通配符要拆分,先匹配前缀,前缀匹配了再匹配通配符。这里大家可以看看org.springframework.util.AntPathMatcher#doMatch()的实现逻辑。
  2. 对于Restful风格的URL路径,不能精细化控制权限
    例如一个微服务有如下API
    GET /v1/pb/user
    POST /v1/pb/user
    PUT /v1/pb/user
    这样在网关通过request.getURI().getPath()方法获取到用户请求路径的时候都是同一个地址,给一个用户授予/v1/pb/user权限后他就拥有了GETPUTPOST三种不同权限,很显然这样不能满足精细权限控制。
    至于如何解决这个问题,原来专门写过一篇文章讨论,感兴趣的同学可以看看:SpringCloud Alibaba微服务实战二十五 - Restful接口拦截

微服务授权

优点:

上面提到网关授权的缺点实际上是微服务授权的优点,基于方法拦截是完全匹配,cpu消耗很少,而且也不存在RestFul的问题。

缺点:

实现较为复杂,在 SpringSecurity Oauth2体系中需要全部引入资源服务器相关配置,所以一般会建立一个单独的资源服务器模块,这也是系列文章下篇内容需要解决的问题。


结论


这里我们尝试对两种实现方案做一个总结,如果系统功能、业务模块不是很多可以采用网关授权模式,这样实现最简单也最方便,虽然存在Restful风格不能精细化权限控制问题,但是我们加一个Method字段就可以解决。

如果你的系统规模比较大,有很多资源需要授权那就建议采用微服务授权模式,那为了避免每个微服务都需要处理权限校验的逻辑,我们还需要抽取一个公共的权限认证模块供后端服务引用。


以上,希望对你有所帮助!

目录
相关文章
|
10天前
|
传感器 监控 安全
智慧工地云平台的技术架构解析:微服务+Spring Cloud如何支撑海量数据?
慧工地解决方案依托AI、物联网和BIM技术,实现对施工现场的全方位、立体化管理。通过规范施工、减少安全隐患、节省人力、降低运营成本,提升工地管理的安全性、效率和精益度。该方案适用于大型建筑、基础设施、房地产开发等场景,具备微服务架构、大数据与AI分析、物联网设备联网、多端协同等创新点,推动建筑行业向数字化、智能化转型。未来将融合5G、区块链等技术,助力智慧城市建设。
|
1月前
|
搜索推荐 NoSQL Java
微服务架构设计与实践:用Spring Cloud实现抖音的推荐系统
本文基于Spring Cloud实现了一个简化的抖音推荐系统,涵盖用户行为管理、视频资源管理、个性化推荐和实时数据处理四大核心功能。通过Eureka进行服务注册与发现,使用Feign实现服务间调用,并借助Redis缓存用户画像,Kafka传递用户行为数据。文章详细介绍了项目搭建、服务创建及配置过程,包括用户服务、视频服务、推荐服务和数据处理服务的开发步骤。最后,通过业务测试验证了系统的功能,并引入Resilience4j实现服务降级,确保系统在部分服务故障时仍能正常运行。此示例旨在帮助读者理解微服务架构的设计思路与实践方法。
102 17
|
1月前
|
监控 JavaScript 数据可视化
建筑施工一体化信息管理平台源码,支持微服务架构,采用Java、Spring Cloud、Vue等技术开发。
智慧工地云平台是专为建筑施工领域打造的一体化信息管理平台,利用大数据、云计算、物联网等技术,实现施工区域各系统数据汇总与可视化管理。平台涵盖人员、设备、物料、环境等关键因素的实时监控与数据分析,提供远程指挥、决策支持等功能,提升工作效率,促进产业信息化发展。系统由PC端、APP移动端及项目、监管、数据屏三大平台组成,支持微服务架构,采用Java、Spring Cloud、Vue等技术开发。
|
1月前
|
人工智能 安全 Java
AI 时代:从 Spring Cloud Alibaba 到 Spring AI Alibaba
本次分享由阿里云智能集团云原生微服务技术负责人李艳林主讲,主题为“AI时代:从Spring Cloud Alibaba到Spring AI Alibaba”。内容涵盖应用架构演进、AI agent框架发展趋势及Spring AI Alibaba的重磅发布。分享介绍了AI原生架构与传统架构的融合,强调了API优先、事件驱动和AI运维的重要性。同时,详细解析了Spring AI Alibaba的三层抽象设计,包括模型支持、工作流智能体编排及生产可用性构建能力,确保安全合规、高效部署与可观测性。最后,结合实际案例展示了如何利用私域数据优化AI应用,提升业务价值。
140 4
|
1月前
|
人工智能 自然语言处理 Java
Spring Cloud Alibaba AI 入门与实践
本文将介绍 Spring Cloud Alibaba AI 的基本概念、主要特性和功能,并演示如何完成一个在线聊天和在线画图的 AI 应用。
357 7
|
2月前
|
存储 SpringCloudAlibaba Java
【SpringCloud Alibaba系列】一文全面解析Zookeeper安装、常用命令、JavaAPI操作、Watch事件监听、分布式锁、集群搭建、核心理论
一文全面解析Zookeeper安装、常用命令、JavaAPI操作、Watch事件监听、分布式锁、集群搭建、核心理论。
【SpringCloud Alibaba系列】一文全面解析Zookeeper安装、常用命令、JavaAPI操作、Watch事件监听、分布式锁、集群搭建、核心理论
|
2月前
|
SpringCloudAlibaba 负载均衡 Dubbo
【SpringCloud Alibaba系列】Dubbo高级特性篇
本章我们介绍Dubbo的常用高级特性,包括序列化、地址缓存、超时与重试机制、多版本、负载均衡。集群容错、服务降级等。
【SpringCloud Alibaba系列】Dubbo高级特性篇
|
2月前
|
SpringCloudAlibaba JavaScript Dubbo
【SpringCloud Alibaba系列】Dubbo dubbo-admin安装教程篇
本文介绍了 Dubbo-Admin 的安装和使用步骤。Dubbo-Admin 是一个前后端分离的项目,前端基于 Vue,后端基于 Spring Boot。安装前需确保开发环境(Windows 10)已安装 JDK、Maven 和 Node.js,并在 Linux CentOS 7 上部署 Zookeeper 作为注册中心。
【SpringCloud Alibaba系列】Dubbo dubbo-admin安装教程篇
|
2月前
|
SpringCloudAlibaba Dubbo Java
【SpringCloud Alibaba系列】Dubbo基础入门篇
Dubbo是一款高性能、轻量级的开源Java RPC框架,提供面向接口代理的高性能RPC调用、智能负载均衡、服务自动注册和发现、运行期流量调度、可视化服务治理和运维等功能。
【SpringCloud Alibaba系列】Dubbo基础入门篇
|
2月前
|
Java Nacos Sentinel
Spring Cloud Alibaba:一站式微服务解决方案
Spring Cloud Alibaba(简称SCA) 是一个基于 Spring Cloud 构建的开源微服务框架,专为解决分布式系统中的服务治理、配置管理、服务发现、消息总线等问题而设计。
460 13
Spring Cloud Alibaba:一站式微服务解决方案

热门文章

最新文章