一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种基于域内角色访问控制模型的机器人可扩展权限管理方法与流程

2022-08-11 02:52:14 来源:中国专利 TAG:


1.本发明涉及机器人权限控制技术领域,尤其是一种基于域内角色访问控制模型的面向机器人流程自动化系统的可扩展权限管理方法。


背景技术:

2.权限管理是机器人流程自动化系统后台以至所有后台系统在建设时都必然涉及到的重要组成部分。目的是针对系统中的所有用户,把用户可以读写的资源限制在一定范围内。用户只能访问其被合法授权的功能、数据等资源,从而避免因非授权操作等意外导致的生产安全事故。
3.现有权限管理模型是rbac模型(基于角色访问控制模型)。rbac模型约束了四个层级的实现,分别是rbac0、rbac1、rbac2、rbac3。rbac0模型是权限最基础也是最核心的模型,它包括用户/角色/权限。其中用户和角色是多对多的关系,角色和权限也是多对多的关系。rbac1模型在rbac0模型的基础上引入了角色继承概念,即角色具有上下级的关系,角色间的继承关系可分为一般继承关系和受限继承关系。rbac2模型在rbac0模型的基础上进行了角色的约束控制,rbac2模型中添加了责任分离关系,其规定了权限被赋予角色时,或角色被赋予用户时,以及当用户在某一时刻激活一个角色时所应遵循的强制性规则。rbac3模型是基于rbac0模型,将rbac1和rbac2进行了整合,即rbac3=rbac1 rbac2。
4.采用rbac模型作为权限管理模型可满足大部分rpa系统和后台系统的需求。但是存在一定的前提条件。rbac0模型作为基础层级模型,提供的能力无法满足rpa系统和相当一部分后台系统对于权限控制的要求。根据实际需求,更多的开发者会选择基于rbac0的rbac1或rbac2层级,甚至整合rbac1和rbac2的rbac3层级才能匹配所建设系统的复杂度。但rbac0以上层级模型的开发实现本身即存在一定的难度,在此基础上,rbac模型中定义的用户/角色/权限实体不完全符合现代大部分系统和后台系统的实际需求,开发者需要自行进行适当的延伸。
5.在传统设计下,两个实体间需要创建至少一张关联表存储其关联关系。然而随着系统中延伸的实体增加,相应的实体表及其与系统中已有实体的关联关系表也会增加,最后权限数据的新增、删除、修改、查询将变得困难。


技术实现要素:

6.针对现有技术的不足,本发明提供一种基于域内角色访问控制模型的机器人可扩展权限管理方法,本发明提供更多主权维度及扩展管理能力,还能降低开发实现难度,而又能满足于系统和大部分后台系统建设需求。
7.本发明的技术方案为:一种基于域内角色访问控制模型的机器人可扩展权限管理方法,包括以下步骤:
8.s1)、定义第一层级实体基本属性,并以自增长整型id为主键创建相应数据库表;
9.s2)、定义第二层级实体作为主权实体所需要的基本属性,并以自增长整型id为主键创建相应数据库表;并且定义第二层级实体作为主权实体的可授权权限值集合;
10.s3)、定义第三层级实体作为资源实体所需要的基本属性,并以自增长整型id为主键创建相应的数据库表;同时定义第三层级实体作为资源实体的可授权权限值集合;
11.s4)、定义主权对象、授权对象、授权权限值、租户作为主权实体权限表的列,并以自增长整型id为主键创建相应的数据库表;
12.s5)、定义主权对象继承者、主权对象、租户作为主权实体继承关系表的列,并以自增长整型id为主键创建相应的数据库表;
13.s6)、根据需要定义第二层实体与第三层之间的关系;
14.s7)、权限系统服务启动时,把主权实体权限表和主权实体继承关系表的全部有效数据以键值对集合的方式加载到内存中。
15.作为优选的,步骤s4)中,定义的主权对象取值为第二层级实体。
16.作为优选的,步骤s4)中,定义的授权对象取值为第二层级实体或第三层级实体。
17.作为优选的,步骤s4)中,定义的授权权限值根据授权对象层级取值为第二层级实体可授权权限合集或第三层级实体可授权权限合集。
18.作为优选的,步骤s4)中,单行实体权限表数据可表示为在租户中的主权对象拥有授权对象的授权权限值。
19.作为优选的,步骤s5)中,定义的主权对象继承者、主权对象取值为第二层级实体。
20.作为优选的,步骤s5)中,单行主权实体继承关系表数据可表示为在租户中的主权对象继承者继承主权对象的拥有的所有授权对象的授权权限值。
21.作为优选的,步骤s7)中,定义的权限数据的存储步骤如下:
22.步骤s81):权限管理系统根据客户端所调用的存储接口类型和主权对象类型,确定存储的是主权实体权限数据还是主权实体继承数据;
23.步骤s82):主权实体权限数据按照主权对象类型前缀 主权对象id、授权对象类型前缀 授权对象id、授权权限值、当前租户id的格式存储到主权实体权限表的主权对象、授权对象、授权权限值、租户列中;
24.然后主权实体权限数据追加到权限系统内存的权限数据键值对集合;
25.步骤s83):主权实体继承数据按照主权对象继承者类型前缀 主权对象继承者id、主权对象类型前缀 主权对象id、当前租户id的格式存储到主权实体继承关系表的主权对象继承者、主权对象、租户列中;
26.然后主权实体继承数据追加到权限系统内存的权限数据键值对集合。
27.作为优选的,所述的权限数据的在存储过程中,需要对其进行验证,所述的权限数据的验证步骤如下:
28.步骤s91):权限管理系统根据客户端所请求接口的操作类型、当前登录用户id、操作目标授权对象类型、操作目标授权对象id,从内存权限数据键值对集合中递归查找当前登录用户是否直接拥有或间接拥有从其他主权对象中继承的目标授权对象的授权权限值;
29.步骤s92):如果当前用户拥有目标授权对象的授权权限值,则继续执行客户端请求接口的业务逻辑;如果当前用户未拥有目标授权对象的授权权限值,则向客户端响应“未授权”结果。
30.作为优选的,当业务发展需要扩展第二层级实体或第三层级实体时,重复步骤s2)和s6)的操作,然后对定义权限数据进行存储和验证处理;具体如下:
31.步骤101:定义新第二层级实体或第三层级实体的基本属性,并以自增长整型id为主键创建相应数据库表;
32.步骤102:定义新第二层级实体或第三层级实体的可授权权限值集合;
33.步骤103:定义新第二层级实体或第三层级实体与现有各第二层级实体以及第三层级实体之间的关系。
34.本发明的有益效果为:
35.1、本发明在rbac模型描述的用户/角色/权限基础上,扩展到租户-主权实体-资源-权限,以及租户-主权实体继承者-主权实体,主权实体可以是用户、角色、用户组、部门或其他自定义实体,相比rbac模型中描述的实体更具扩展性也更灵活,适用范围更广;
36.2、本发明可拓展到多联数据表的构建,减少数据库跨表操作的同时数据模型更简单易于理解;
37.3、本发明解决了权限系统设计时或权限系统上线后因业务需求而增加的实体管理困难问题;
38.4、本发明基于域内角色访问控制模型的主权实体权限和主权实体继承关系数据模型,简化了传统权限系统“一表一关联表”的多关联表数据库表设计同时提供更多主权维度及扩展管理能力。
附图说明
39.图1为本发明实施例中定义的第一层级实体的示意图;
40.图2为本发明实施例中定义的第二层级实体的示意图;
41.图3为本发明实施例中定义的第二层级实体可授权权限合集的示意图;
42.图4为本发明实施例中定义的第三层级实体的示意图;
43.图5为本发明实施例中定义的第三层级实体可授权权限合集的示意图;
44.图6为本发明实施例中定义的主权实体权限表的示意图;
45.图7为本发明实施例中定义的主权实体继承关系表的示意图;
46.图8为本发明实施例中定义的各主权实体之间的关系图。
具体实施方式
47.下面结合附图对本发明的具体实施方式作进一步说明:
48.本实施例提供一种基于域内角色访问控制模型的机器人可扩展权限管理方法,包括以下步骤:
49.s1)、定义第一层级实体基本属性,本实施例中,所述的第一层级实体为租户,并以自增长整型id为主键创建相应数据库表;参见图1所示。
50.s2)、定义第二层级实体作为主权实体所需要的基本属性,本实施例中,所述的第二层级实体包括了用户、用户组、部门、角色、项目等。并以自增长整型id为主键创建相应数据库表;同时定义第二层级实体作为主权实体的可授权权限值集合;参见图2、3所示。
51.s3)、定义第三层级实体作为资源实体所需要的基本属性,并以自增长整型id为主
键创建相应的数据库表;同时定义第三层级实体作为资源实体的可授权权限值集合;其中,所述的第三层级实体包括了菜单、api、机器人、流程等。参见图4、5所示。
52.s4)、定义主权对象、授权对象、授权权限值、租户作为主权实体权限表的列,并以自增长整型id为主键创建相应的数据库表;参见图6所示。
53.并且本实施例中,定义的主权对象取值为第二层级实体。定义的授权对象取值为第二层级实体或第三层级实体。定义的授权权限值根据授权对象层级取值为第二层级实体可授权权限合集或第三层级实体可授权权限合集。单行实体权限表数据可表示为在租户中的主权对象拥有授权对象的授权权限值。
54.s5)、定义主权对象继承者、主权对象、租户作为主权实体继承关系表的列,并以自增长整型id为主键创建相应的数据库表;
55.本实施例中,定义的主权对象继承者、主权对象取值为第二层级实体。单行主权实体继承关系表数据可表示为在租户中的主权对象继承者继承主权对象的拥有的所有授权对象的授权权限值,参见如图7所示。
56.s6)、根据需要定义第二层实体与第三层之间的关系,各主权实体之间的关系参见图8所示;
57.s7)、权限系统服务启动时,把主权实体权限表和主权实体继承关系表的全部有效数据以键值对集合的方式加载到内存中。定义的权限数据的存储步骤如下:
58.步骤s81):权限管理系统根据客户端所调用的存储接口类型和主权对象类型,确定存储的是主权实体权限数据还是主权实体继承数据;
59.步骤s82):主权实体权限数据按照主权对象类型前缀 主权对象id、授权对象类型前缀 授权对象id、授权权限值、当前租户id的格式存储到主权实体权限表的主权对象、授权对象、授权权限值、租户列中;
60.然后主权实体权限数据追加到权限系统内存的权限数据键值对集合;
61.步骤s83):主权实体继承数据按照主权对象继承者类型前缀 主权对象继承者id、主权对象类型前缀 主权对象id、当前租户id的格式存储到主权实体继承关系表的主权对象继承者、主权对象、租户列中;
62.然后主权实体继承数据追加到权限系统内存的权限数据键值对集合。
63.作为本实施例优选的,所述的权限数据的在存储过程中,需要对其进行验证,所述的权限数据的验证步骤如下:
64.步骤s91):权限管理系统根据客户端所请求接口的操作类型、当前登录用户id、操作目标授权对象类型、操作目标授权对象id,从内存权限数据键值对集合中递归查找当前登录用户是否直接拥有或间接拥有从其他主权对象中继承的目标授权对象的授权权限值;
65.步骤s92):如果当前用户拥有目标授权对象的授权权限值,则继续执行客户端请求接口的业务逻辑;如果当前用户未拥有目标授权对象的授权权限值,则向客户端响应“未授权”结果。
66.作为优选的,当业务发展需要扩展第二层级实体或第三层级实体时,重复步骤s2)和s6)的操作,然后对定义权限数据进行存储和验证处理;具体如下:
67.步骤101:定义新第二层级实体或第三层级实体的基本属性,并以自增长整型id为主键创建相应数据库表;
68.步骤102:定义新第二层级实体或第三层级实体的可授权权限值集合;
69.步骤103:定义新第二层级实体或第三层级实体与现有各第二层级实体以及第三层级实体之间的关系。
70.本发明在rbac模型描述的用户/角色/权限基础上,扩展到租户-主权实体-资源-权限,以及租户-主权实体继承者-主权实体。主权实体可以是用户、角色、用户组、部门或其他自定义实体,各租户相互独立且数据隔离,即在当前租户下无法查看其他租户下的主权实体、资源等信息。相比rbac模型中描述的实体更具扩展性也更灵活,适用范围更广。
71.上述实施例和说明书中描述的只是说明本发明的原理和最佳实施例,在不脱离本发明精神和范围的前提下,本发明还会有各种变化和改进,这些变化和改进都落入要求保护的本发明范围内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献