一种基于角色权限的云原生微服务分布式鉴权方法和系统技术方案

技术编号:38145492 阅读:11 留言:0更新日期:2023-07-08 10:03
本申请提供一种基于角色权限的云原生微服务分布式鉴权方法和系统,云原生微服务平台中分布式部署有多个功能模块微服务,当接收到指向目标功能微服务的访问请求时,将访问请求转发至与目标功能模块微服务对应的鉴权模块中,其中,鉴权模块与目标功能模块部署在同一容器组中,访问请求至少携带有针对目标功能模块微服务的用户信息和操作权限信息;鉴权模块接收到访问请求后,基于目标功能模块微服务所在容器组中预先缓存的操作权限数据以及访问请求携带的用户信息和操作权限信息,对访问请求进行鉴权。由此,将鉴权模块分布式部署在对应功能模块微服务所在容器组中,并基于所在容器组中预先缓存的操作权限数据,实现对访问请求的高效、精准鉴权。精准鉴权。精准鉴权。

【技术实现步骤摘要】
一种基于角色权限的云原生微服务分布式鉴权方法和系统


[0001]本申请涉及云原生
,特别涉及一种基于角色权限的云原生微服务分布式鉴权方法、系统、计算机可读存储介质和电子设备。

技术介绍

[0002]企业级访问控制系统是企业级管理平台的核心模块。目前,企业级访问控制系统通常使用RBAC方案(Role Based Access Control,基于角色的访问控制)来为用户授予操作权限,以及对用户的操作权限进行验证。
[0003]随着云原生(CloudNative)技术和微服务技术的快速发展,企业级管理平台逐渐开始云原生化和微服务化。在微服务架构下,每个微服务独立运行,作为独立的功能模块对访问请求进行响应,以提供相应的功能。当用户向某个功能模块微服务发出访问请求以调用某项功能或者访问某种资源时,就需要对该访问请求进行鉴权。
[0004]相关技术中提供了两种技术方案来实现微服务架构下企业级管理平台的鉴权:第一种技术方案:将鉴权功能从整个软件系统中剥离出来作为一个微服务独立运行,形成鉴权微服务;第二种技术方案:设置网关作为功能模块微服务的访问入口,任何访问功能模块微服务的请求需要先经过网关进行鉴权。
[0005]然而,随着企业级业务越来越复杂,功能模块微服务的数量也急剧增加,功能模块微服务的每一次访问均需要鉴权,也就是需要调用鉴权微服务,或者需要经过网关鉴权,导致现有鉴权微服务或者网关的集中式鉴权一定程度上降低了功能模块微服务的响应性能。此外,为了实现鉴权,鉴权微服务或者网关需要预先获取并集中存储所有功能模块微服务的操作权限数据,这种集中存储的模式数据结构单一,无法实现个性化处理,还有可能导致不同功能模块微服务的鉴权过程相互影响,降低了鉴权的效率和准确度。
[0006]因此,需要提供一种针对上述现有技术不足的改进技术方案。

技术实现思路

[0007]本申请的目的在于提供一种基于角色权限的云原生微服务分布式鉴权方法、系统、计算机可读存储介质和电子设备,以解决或缓解上述现有技术中存在的问题。
[0008]为了实现上述目的,本申请提供如下技术方案:
[0009]本申请提供一种基于角色权限的云原生微服务分布式鉴权方法,包括:
[0010]响应于接收到指向目标功能模块微服务的访问请求,将所述访问请求转发至鉴权模块;
[0011]其中,所述目标功能模块微服务为分布式部署在云原生微服务平台中的多个功能模块微服务中的任一个,所述目标功能模块微服务对应设置有所述鉴权模块,且所述鉴权模块与所述目标功能模块微服务部署在同一容器组中,所述访问请求至少携带有针对所述目标功能模块微服务的用户信息和操作权限信息;
[0012]所述鉴权模块基于所述目标功能模块微服务所在容器组中预先缓存的操作权限
数据以及所述访问请求携带的用户信息和操作权限信息,对所述访问请求进行鉴权。
[0013]在一种可能的实现方式中,在所述鉴权模块基于所述目标功能模块微服务所在容器组中预先缓存的操作权限数据以及所述访问请求携带的用户信息和操作权限信息,对所述访问请求进行鉴权之前,还包括:
[0014]所述鉴权模块利用所述云原生微服务平台提供的系统消息通知机制对部署在所述云原生微服务平台的用户权限资源的变更事件进行监听;
[0015]响应于监听到所述用户权限资源的变更事件,所述鉴权模块将用户权限资源文件中记载的操作权限数据实时缓存至所述目标功能模块微服务所在容器组中;其中,所述用户权限资源文件用于定义所述用户权限资源。
[0016]在一种可能的实现方式中,所述目标功能模块微服务对应设置有所述鉴权模块,具体为:
[0017]所述目标功能模块微服务中内嵌有所述鉴权模块;
[0018]所述目标功能模块微服务还包括功能模块API,所述功能模块API作为所述目标功能模块微服务接收所述访问请求的入口;
[0019]对应地,所述响应于接收到指向目标功能模块微服务的访问请求,将所述访问请求转发至鉴权模块,具体为:
[0020]响应于接收到指向目标功能模块微服务的访问请求,所述目标功能模块微服务的功能模块API将所述访问请求转发至所述鉴权模块。
[0021]在一种可能的实现方式中,所述功能模块API具体包括中间件层和实现单元;
[0022]所述鉴权模块基于所述目标功能模块微服务所在容器组中预先缓存的操作权限数据以及所述访问请求携带的用户信息和操作权限信息,对所述访问请求进行鉴权,具体为:
[0023]所述中间件层将所述访问请求携带的用户信息和操作权限信息发送至所述鉴权模块;
[0024]所述鉴权模块基于接收到的所述用户信息和所述操作权限信息,对所述访问请求进行鉴权,并将鉴权结果返回所述中间件层;
[0025]响应于所述鉴权结果为鉴权通过,由所述中间件层将所述访问请求转发至所述实现单元,以由所述实现单元对所述访问请求进行响应。
[0026]在一种可能的实现方式中,所述目标功能模块微服务所在的容器组运行有边车容器,所述目标功能模块微服务部署在所述容器组的业务容器中;
[0027]对应地,所述目标功能模块微服务对应设置有所述鉴权模块,具体为:
[0028]在所述边车容器中注入所述鉴权模块;
[0029]所述响应于接收到指向目标功能模块微服务的访问请求,将所述访问请求转发至鉴权模块,具体为:
[0030]所述边车容器主动拦截发往所述目标功能模块微服务的访问请求,并将所述访问请求转发至所述鉴权模块。
[0031]在一种可能的实现方式中,所述云原生微服务平台中还设置有全局管理微服务;
[0032]在所述鉴权模块利用所述云原生微服务平台提供的系统消息通知机制对部署在所述云原生微服务平台的用户权限资源的变更事件进行监听之前,还包括:
[0033]所述全局管理微服务基于接收到的用户权限管理请求,对所述操作权限数据进行处理,并将处理后的所述操作权限数据记载在所述用户权限资源文件中。
[0034]在一种可能的实现方式中,所述鉴权模块将用户权限资源文件中记载的操作权限数据实时缓存至所述目标功能模块微服务所在容器组中,具体为:
[0035]所述鉴权模块使用预设的数据筛选工具对所述用户权限资源文件中记载的操作权限数据进行筛选,以确定所述目标功能模块微服务对应的目标操作权限数据;
[0036]保持所述目标操作权限数据的结构不变,并实时存储至所述目标功能模块微服务对应的缓存模块中。
[0037]本申请实施例提供一种基于角色权限的云原生微服务分布式鉴权系统,包括:
[0038]转发单元,配置为响应于接收到指向目标功能模块微服务的访问请求,将所述访问请求转发至鉴权模块;
[0039]其中,所述目标功能模块微服务为分布式部署在云原生微服务平台中的多个功能模块微服务中的任一个,所述目标功能模块微服务对应设置有所述鉴权模块,且所述鉴权模块与所述目标功能模块微服务部署本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于角色权限的云原生微服务分布式鉴权方法,其特征在于,包括:响应于接收到指向目标功能模块微服务的访问请求,将所述访问请求转发至鉴权模块;其中,所述目标功能模块微服务为分布式部署在云原生微服务平台中的多个功能模块微服务中的任一个,所述目标功能模块微服务对应设置有所述鉴权模块,且所述鉴权模块与所述目标功能模块微服务部署在同一容器组中,所述访问请求至少携带有针对所述目标功能模块微服务的用户信息和操作权限信息;所述鉴权模块基于所述目标功能模块微服务所在容器组中预先缓存的操作权限数据以及所述访问请求携带的用户信息和操作权限信息,对所述访问请求进行鉴权。2.根据权利要求1所述的基于角色权限的云原生微服务分布式鉴权方法,其特征在于,在所述鉴权模块基于所述目标功能模块微服务所在容器组中预先缓存的操作权限数据以及所述访问请求携带的用户信息和操作权限信息,对所述访问请求进行鉴权之前,还包括:所述鉴权模块利用所述云原生微服务平台提供的系统消息通知机制对部署在所述云原生微服务平台的用户权限资源的变更事件进行监听;响应于监听到所述用户权限资源的变更事件,所述鉴权模块将用户权限资源文件中记载的操作权限数据实时缓存至所述目标功能模块微服务所在容器组中;其中,所述用户权限资源文件用于定义所述用户权限资源。3.根据权利要求2所述的基于角色权限的云原生微服务分布式鉴权方法,其特征在于,所述目标功能模块微服务对应设置有所述鉴权模块,具体为:所述目标功能模块微服务中内嵌有所述鉴权模块;所述目标功能模块微服务还包括功能模块API,所述功能模块API作为所述目标功能模块微服务接收所述访问请求的入口;对应地,所述响应于接收到指向目标功能模块微服务的访问请求,将所述访问请求转发至鉴权模块,具体为:响应于接收到指向目标功能模块微服务的访问请求,所述目标功能模块微服务的功能模块API将所述访问请求转发至所述鉴权模块。4.根据权利要求3所述的基于角色权限的云原生微服务分布式鉴权方法,其特征在于,所述功能模块API具体包括中间件层和实现单元;所述鉴权模块基于所述目标功能模块微服务所在容器组中预先缓存的操作权限数据以及所述访问请求携带的用户信息和操作权限信息,对所述访问请求进行鉴权,具体为:所述中间件层将所述访问请求携带的用户信息和操作权限信息发送至所述鉴权模块;所述鉴权模块基于接收到的所述用户信息和所述操作权限信息,对所述访问请求进行鉴权,并将鉴权结果返回所述中间件层;响应于所述鉴权结果为鉴权通过,由所述中间件层将所述访问请求转发至所述实现单元,以由所述实现单元对所述访问请求进行响应。5.根据权利要求2所述的基于角色权限的云原生微服务分布式鉴权方...

【专利技术属性】
技术研发人员:蒋伊婷张彤何建民潘远航刘爽
申请(专利权)人:成都道客数字科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1