本发明涉及通讯技术,更具体地说,它涉及一种rbac动态数据权限的调用方法及系统架构。
背景技术:
1、微服务(micro service)是一种面向服务的、拥抱云原生的体系结构架构(soa),将应用程序通过领域划分等方式,拆分为松散耦合的、细粒度的、通讯间使用轻量级协议多个服务。通常,各个服务拥有自己的堆栈,有着明确的业务边界,能够结合容器等技术轻松的实现缩放,进行负载均衡等。
2、随着微服务架构的广泛传播与应用,微服务网关的重要性得以逐渐显现出来。业务服务经由统一网关封装,解决了系统权限控制代码冗余、结构复杂,模块高耦合、标准不一等问题,为系统的低耦合、高扩展,易维护提供了稳妥的解决方案。它包含两个核心概念:
3、1、路由转发:接收一切外界请求,转发到后端的微服务上去;
4、2、过滤器:在服务网关中可以完成一系列的横切功能,例如用户身份校验、限流以及监控等。
5、目前,有的系统通过在每个web页面文件中固化其所需的权限,再通过其他动态关联实现权限配置。但这种方案只能适配传统b/s架构下针对页面请求的权限管理,无法适配以微服务为代表的分布式系统中的http接口控制,服务间的配置传递等权限需求。
6、如图1所示,常规的数据权限方案为:(1)网关接收请求,转发至对应服务;(2)服务解析请求中的身份信息识别用户;(3)根据固化在代码中的数据权限规则生成查询;(4)多级服务调用,并重复步骤(2)。即在微服务架构中,通常存在一个请求需要调用过个服务的情况,而每个服务调用,均需重复解析用户信息等步骤。
7、然而,每个服务调用均需要重新解析用户信息,将消耗服务器的性能;数据权限规则固化在代码中,导致数据权限规则固定不灵活,无法通过web页面等方式直观配置,也无法令修改实时生效。
8、此外,由于微服务分布式的特征,各个服务间往往存在配置分散的问题。如将信息存储于相互分离的数据库与缓存中,权限等信息的更改需要额外的同步机制。针对以单次请求为单位的事务,难以做到配置隔离,且不便进行统一管理,为系统带来不必要的流程复杂度,降低系统效率。
技术实现思路
1、本发明要解决的技术问题是针对现有技术的不足,提供一种rbac动态数据权限的调用方法及系统架构,解决了目前的权限方案难以做到配置隔离,且不便进行统一管理,为系统带来不必要的流程复杂度,降低系统效率的问题。
2、本发明所述的一种rbac动态数据权限的调用方法,包括,
3、配置缓存步骤,用于将用户动态配置与url进行绑定,以形成关系链;
4、配置解析步骤,用于解析所述关系链,以获取数据权限配置,并将所述数据权限配置加载到服务命令中;
5、配置调用步骤,用于根据所述服务命令的数据权限配置调用所需的服务。
6、配置缓存步骤,具体包括,
7、s11、根据用户动态配置在url中设置数据权限配置;
8、s12、将url与用户角色进行关联,得到由用户角色、url和用户动态配置形成的关系链;
9、s13、将所述关系链进行数据缓存。
10、在所述关系链中,所述url与用户角色为多对多的关系。
11、在所述关系链中,所述url与数据权限配置为一对一的关系。
12、配置解析步骤,具体包括,
13、s21、当微服务网关接收到服务请求时,从所述服务请求中解析出用户角色及url;
14、s22、根据所述用户角色和url,从所述数据缓存中获取数据权限配置,并将其加载在服务命令中。
15、所述服务命令为请求头。
16、所述微服务网关接收到服务请求时,拦截所述服务请求,并对其进行合法性认证。
17、配置调用步骤,具体包括,
18、s31、提取所述服务命令中的数据权限配置;
19、s32、根据所述数据权限配置生成用户查询,以为用户提供服务;
20、s33、若继续调用其他微服务,则返回s31。
21、一种rbac动态数据权限的系统架构,包括,
22、配置缓存模块,用于将用户动态配置与url进行绑定,以形成关系链;
23、配置解析模块,用于解析所述关系链,以获取数据权限配置,并将所述数据权限配置加载到服务命令中;
24、配置调用模块,用于根据所述服务命令的数据权限配置调用所需的服务。
25、有益效果
26、本发明的优点在于:利用微服务网关统一入口接收服务请求,将动态配置与url进行结合,通过请求头在服务间的传递,实现了服务间配置的统一存取及实时同步变更。实现在微服务集群中做到以请求为事务隔离单位的、可以动态配置的数据权限控制,降低了流程的复杂度,提高了系统效率。
1.一种rbac动态数据权限的调用方法,其特征在于,包括,
2.根据权利要求1所述的一种rbac动态数据权限的调用方法,其特征在于,配置缓存步骤,具体包括,
3.根据权利要求2所述的一种rbac动态数据权限的调用方法,其特征在于,在所述关系链中,所述url与用户角色为多对多的关系。
4.根据权利要求2所述的一种rbac动态数据权限的调用方法,其特征在于,在所述关系链中,所述url与数据权限配置为一对一的关系。
5.根据权利要求1所述的一种rbac动态数据权限的调用方法,其特征在于,配置解析步骤,具体包括,
6.根据权利要求1或5所述的一种rbac动态数据权限的调用方法,其特征在于,所述服务命令为请求头。
7.根据权利要求5所述的一种rbac动态数据权限的调用方法,其特征在于,所述微服务网关接收到服务请求时,拦截所述服务请求,并对其进行合法性认证。
8.根据权利要求5所述的一种rbac动态数据权限的调用方法,其特征在于,配置调用步骤,具体包括,
9.一种rbac动态数据权限的系统架构,其特征在于,包括,