掌桥专利:专业的专利平台
掌桥专利
首页

基于微服务的元数据权限管理方法及装置

文献发布时间:2023-06-19 11:22:42


基于微服务的元数据权限管理方法及装置

技术领域

本发明涉及微服务技术领域,具体地说是基于微服务的元数据权限管理方法及装置。

背景技术

因为业务原因,需要对当前系统的数据的元数据进行控制管理,针对不同的用户,可见的权限并不相同,因此需要控制用户的权限,使得不同用户看到的内容、权限或者字段都不相同,因此,可以使用到RBAC(Role-Based Access Control,基于角色的访问控制)的模式,通过角色来达到控制角色的目的。

针对数据源的元数据的管理,若要增加相关RBAC的模式,会使原有业务代码臃肿冗余,严重影响到业务代码的可读性、可维护性,基于此,故而决定将其模块拆分,并作为单独的一个服务,方便其他项目或者系统使用,从而达到统一管理、鉴权的目的。解决因业务功能不断迭代更新,模块间的依赖耦合度越来越深的问题,并且,当日后模块功能增加也并不需要大量修改业务逻辑,基于这种插拔式的Api接口的开发模式,可以实现快速开发。

目前主流的拆分方式为采用服务化的方式,将权限模块拆分为单独的服务系统,当其他业务系统需要鉴权认证时,则通过相关调用规则请求到权限服务,从而屏蔽掉与业务无关的逻辑代码,可以更加专注与业务的开发,可形成插拔式的功能,方便未来业务的水平扩展,也方便与其他系统的无感接入。

基于上述分析,如何通过拆分方式实现元数据权限管理,是需要解决的技术问题。

发明内容

本发明的技术任务是针对以上不足,提供基于微服务的元数据权限管理方法及装置,来解决如何通过拆分方式实现元数据权限管理的问题。

第一方面,本发明提供一种基于微服务的元数据权限管理方法,包括如下步骤:

基于Spring Cloud启动一个Eureka集群,将权限服务注册至Eureka集群,将权限服务与业务代码解耦;

构建RBAC模型服务;

将RBAC模型服务注册至Eureka集群;

针对不同权限的用户,创建对应的角色;

配置每个角色的权限,包括确定角色数据源访问范围、数据库中表访问以及操作权限、相关表中字段表访问以及操作权限;

通过注解的方式对元数据业务层面做切面;

拦截到元数据方法调用时,通过rest请求权限相关服务,检验是否有元数据操作权限。

作为优选,所述权限服务基于功能划分为组织管理、项目管理、角色管理和成员管理;

所述组织管理用于激活进入系统,组织具有两种角色,分别为拥有者和普通员,拥有者用于对组织的所有权限,能够邀请其他用户进入所述组织协同工作,所述普通元为协同工作的参与者;

所述项目管理在基础设置界面,用于修改项目信息、移交项目和删除项目;

角色管理用于添加或取消与项目关联的角色,并用于设置各个角色的权限;

成员管理用于对每个组织内成员进行管理。

作为优选,所述角色包括普通管理员和管理员;

所述普通管理员仅有查看和检索元数据的权限;

所述管理员具有编辑元数据内容以及元数据维护设计的权限,并具有使用新增目录的权限。

作为优选,编辑元数据内容包括修改、更新、删除以及移动元数据。

作为优选,数据维护设计包括根据元数据字典创建目录、打印现有目录结构以及根据目录发现、查找和查看元数据。

作为优选,使用新增目录包括将元数据字典中定义的目录结构添加至现有的目录汇中。

第二方面,本发明提供一种装置,包括:至少一个存储器和至少一个处理器;

所述至少一个存储器,用于存储机器可读程序;

所述至少一个处理器,用于调用所述机器可读程序,执行第一方面任一所述的方法。

第二方面,本发明提供一种计算机可读介质,所述计算机可读介质上存储有计算机指令,所述计算机指令在被处理器执行时,使所述处理器执行第一方面任一所述的方法。

本发明的基于微服务的元数据权限管理方法及装置具有以下优点:

1、将权限功能拆分服务后,可以有效减少系统代码的冗余程度,剥离出权限后,业务代码更加清晰明确,开发人员可以更加专注与业务的开发,方便将来的水平扩展;

2、将权限功能拆分服务后,可将接入需要鉴权需求的相关系统,使之权限逻辑做到统一化管理;

3、通过权限服务,可以以细粒度控制用户的元数据权限。

附图说明

为了更清楚地说明本发明实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

下面结合附图对本发明进一步说明。

图1为实施例1基于微服务的元数据权限管理方法的流程框图;

图2为实施例1基于微服务的元数据权限管理方法中组织管理功能图;

图3为实施例1基于微服务的元数据权限管理方法中项目管理功能图;

图4为实施例1基于微服务的元数据权限管理方法中角色管理功能图;

图5为实施例1基于微服务的元数据权限管理方法中成员管理功能图;

图6为实施例1基于微服务的元数据权限管理方法对应系统的架构框图;

图7为实施例1基于微服务的元数据权限管理方法中时序图;

图8为实施例1基于微服务的元数据权限管理方法中权限服务组织架构图;

图9为实施例1基于微服务的元数据权限管理方法中元数据角色管理流程框图。

具体实施方式

下面结合附图和具体实施例对本发明作进一步说明,以使本领域的技术人员可以更好地理解本发明并能予以实施,但所举实施例不作为对本发明的限定,在不冲突的情况下,本发明实施例以及实施例中的技术特征可以相互结合。

本发明实施例提供基于微服务的元数据权限管理方法及装置,用于解决如何通过拆分方式实现元数据权限管理的技术问题。

实施例1:

如图1所示,本发明的基于微服务的元数据权限管理方法,包括如下步骤:

S100、基于Spring Cloud启动一个Eureka集群,将权限服务注册至Eureka集群,将权限服务与业务代码解耦;

S200、构建RBAC模型服务;

S300、将RBAC模型服务注册至Eureka集群;

S400、针对不同权限的用户,创建对应的角色;

S500、配置每个角色的权限,包括确定角色数据源访问范围、数据库中表访问以及操作权限、相关表中字段表访问以及操作权限;

S600、通过注解的方式对元数据业务层面做切面;

S700、拦截到元数据方法调用时,通过rest请求权限相关服务,检验是否有元数据操作权限。

其中本系统采用B/S架构,后端采用关系型数据库、SpringBoot、SpringCloud、Mybatis,前端采用React进行前后端分离。

如图权限服务按功能划分为组织管理、项目管理、角色管理、成员管理。具体如图2-5所示。

组织管理用激活进入系统,此户注册并通过邮箱时系统是无法对项目进行操作的,需要用户先创建组织,或者被邀请进入他人的组织才行。组织具有拥有者和普通成员两种角色,拥有者拥有对组织的所有权限,可邀请其他用户进入该组织协同工作,普通成员是协同工作的参与者。

组织管理在基础设置界面,可以修改项目信息、移交项目和删除项目。移交项目是指用户可以将该项目移交给另一个自己所在的组织,如果在另一个组织里该用户不是组织拥有者,那么移交过去的项目对于该用户来说将不再具有管理权限。

角色管理主要用于添加(也可取消添加)与该项目关联的角色,以及设置各个角色所具有权限。组织拥有者可以配置角色与项目的关联关系,每个项目可以关联多个角色,目的是通过角色去管理项目的模块权限和数据权限。通过角色来划分不同用户对于项目的使用权限的。角色从属于组织,每个组织下可以添加多个角色,角色是控制用户权限的载体。

成员管理参与组织的用户都属于这个组织下的成员。拥有者可以通过邀请的方式让其它用户加入自己的组织协同工作(被邀请人需要进入邮箱接受邀请),被邀请人为该组织的普通成员角色。

采用Spring Cloud作为整体解决方案,启动一个Eureka集群,将权限服务注册进去,达到对于其他服务的发现,其他系统通过restful的方式去调用权限服务,达到业务代码解耦的目的。

模块架构如图6所示。

元数据管理是对数据采集、存储、加工和展现等数据全生命周期的描述信息,帮助用户理解数据关系和相关属性。元数据管理工具可以了解数据资产分布及产生过程。实现元数据的模型定义并存储,在功能层包装成各类元数据功能,最终对外提供应用及展现;提供元数据分类和建模、血缘关系和影响分析,方便数据的跟踪和回溯。

针对敏感数据,或者不同的元数据,不同的用户应该相互隔离访问,即使是同一数据源,不同用户的所拥有的权限也要区别对待,做到数据的安全性管控,因此引入权限管理。

元数据管理主要用于维护、查看已发布的元数据,由于元数据发布需要经过严格的审核流程,一旦审核通过,原则上元数据的更改需要重新走元数据申报流程,包括已发布元数据的实效申请和新元数据的添加申请,而不允许对已发布的元数据进行直接修改。此功能只能开放给核心管理用户使用,为了安全起见,元数据维护功能的所有操作都记录到操作审计日之中去。

普通管理员只有查看、检索元数据的权限。而管理员除了具有查看、检索元数据权限外,可以使用新增目录的功能,将元数据字典中定义的目录结构添加到现有的目录中去,并且可以修改、更新、删除元数据。元数据维护设计包括根据元数据字典创建目录、打印现有目录结构、根据目录发现、查找元数据、查看元数据内容等功能,核心管理层还可以查询、修改、删除、移动已经发布的元数据内容。

当用户登陆后,通过权限服务解析出用户对应的角色,当用户访问数据源对应的元数据时,根据用户对应的角色权限控制用户是否有权限访问相关的表,或者对与相关表操作的权限粒度是否符合对应的角色权限,从而达到控制用户对于元数据的权限问题。时序图如图7所示。

步骤S200构建的RBAC模型服务中,搭建了一个组织-项目-角色-用户的权限服务。

步骤S300中将RBAC模型服务注册到Eureka集群,或者可以注册到一个其它注册中心,该注册中心中配置有权限服务,即权限服务以及RBAC模型服务位于同一个Eureka集群或注册中心。

步骤S600确定数据相关方法的切点,对其进行切面,通过注解的方式拦截代理该方法。

上述方法中元数据接收管理流程如图9所示。剥离出的权限服务采用RBAC(Role-Based Access Control,基于角色的访问控制)的设计去控制管理用户的权限。

本发明基于微服务的元数据权限管理方法,将权限功能拆分服务后,可以有效减少系统代码的冗余程度,剥离出权限后,业务代码更加清晰明确,开发人员可以更加专注与业务的开发,方便将来的水平扩展;将权限功能拆分服务后,可将接入需要鉴权需求的相关系统,使之权限逻辑做到统一化管理;且通过权限服务,可以以细粒度控制用户的元数据权限。

实施例2:

本发明的一种装置,包括:至少一个存储器和至少一个处理器;

上述至少一个存储器,用于存储机器可读程序;

上述至少一个处理器,用于调用所述机器可读程序,执行实施例1公开的方法。

实施例3:

本发明的一种计算机可读介质,上述计算机可读介质上存储有计算机指令,上述计算机指令在被处理器执行时,使上述处理器执行实施例1公开的方法。具体地,可以提供配有存储介质的系统或者装置,在该存储介质上存储着实现上述实施例中任一实施例的功能的软件程序代码,且使该系统或者装置的计算机(或CPU或MPU)读出并执行存储在存储介质中的程序代码。

在这种情况下,从存储介质读取的程序代码本身可实现上述实施例中任何一项实施例的功能,因此程序代码和存储程序代码的存储介质构成了本发明的一部分。

用于提供程序代码的存储介质实施例包括软盘、硬盘、磁光盘、光盘(如CD-ROM、CD-R、CD-RW、DVD-ROM、DVD-RAM、DVD-RW、DVD+RW)、磁带、非易失性存储卡和ROM。可选择地,可以由通信网络从服务器计算机上下载程序代码。

此外,应该清楚的是,不仅可以通过执行计算机所读出的程序代码,而且可以通过基于程序代码的指令使计算机上操作的操作系统等来完成部分或者全部的实际操作,从而实现上述实施例中任意一项实施例的功能。

此外,可以理解的是,将由存储介质读出的程序代码写到插入计算机内的扩展板中所设置的存储器中或者写到与计算机相连接的扩展单元中设置的存储器中,随后基于程序代码的指令使安装在扩展板或者扩展单元上的CPU等来执行部分和全部实际操作,从而实现上述实施例中任一实施例的功能。

需要说明的是,上述各流程和各系统结构图中不是所有的步骤和模块都是必须的,可以根据实际的需要忽略某些步骤或模块。各步骤的执行顺序不是固定的,可以根据需要进行调整。上述各实施例中描述的系统结构可以是物理结构,也可以是逻辑结构,即,有些模块可能由同一物理实体实现,或者,有些模块可能分由多个物理实体实现,或者,可以由多个独立设备中的某些部件共同实现。

以上各实施例中,硬件单元可以通过机械方式或电气方式实现。例如,一个硬件单元可以包括永久性专用的电路或逻辑(如专门的处理器,FPGA或ASIC)来完成相应操作。硬件单元还可以包括可编程逻辑或电路(如通用处理器或其它可编程处理器),可以由软件进行临时的设置以完成相应操作。具体的实现方式(机械方式、或专用的永久性电路、或者临时设置的电路)可以基于成本和时间上的考虑来确定。

上文通过附图和优选实施例对本发明进行了详细展示和说明,然而本发明不限于这些已揭示的实施例,基与上述多个实施例本领域技术人员可以知晓,可以组合上述不同实施例中的代码审核手段得到本发明更多的实施例,这些实施例也在本发明的保护范围之内。

相关技术
  • 基于微服务的元数据权限管理方法及装置
  • 基于微服务的多应用系统权限统一管理方法和计算机可读存储介质
技术分类

06120112900753