CN114301714B - 一种多租户权限控制方法和*** - Google Patents
一种多租户权限控制方法和*** Download PDFInfo
- Publication number
- CN114301714B CN114301714B CN202210066705.8A CN202210066705A CN114301714B CN 114301714 B CN114301714 B CN 114301714B CN 202210066705 A CN202210066705 A CN 202210066705A CN 114301714 B CN114301714 B CN 114301714B
- Authority
- CN
- China
- Prior art keywords
- user
- tenant
- client
- authority
- identification
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 50
- 238000004590 computer program Methods 0.000 claims description 10
- 238000012795 verification Methods 0.000 abstract description 5
- 238000010586 diagram Methods 0.000 description 8
- 230000006870 function Effects 0.000 description 4
- 238000002955 isolation Methods 0.000 description 4
- 238000004891 communication Methods 0.000 description 3
- 238000012545 processing Methods 0.000 description 3
- 238000013461 design Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000000802 evaporation-induced self-assembly Methods 0.000 description 1
- 238000007689 inspection Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Landscapes
- Storage Device Security (AREA)
Abstract
本申请实施例公开了一种多租户权限控制方法和***,所述方法包括:根据客户端发送的用户账号信息判断用户的用户类型,并将用户类型令牌和用户信息发送至所述客户端,以使得用户根据所述用户信息进行操作;根据所述客户端发送的用户操作请求,调用多租户权限控制模型在数据库中判断用户的角色和租户关系标识是否具有操作标识的权限,并将判断结果返回所述客户端;根据所述客户端发送的数据调用请求,调用多租户权限控制模型在数据库中判断用户的角色和租户关系标识是否具有数据标识的权限,若有权限,调取对应的数据返回所述客户端。在客户端以及服务端会对用户需求进行多重权限检验,防止越权操作,提升安全性的同时,减少数据库的数据冗余。
Description
技术领域
本申请实施例涉及计算机技术领域,具体涉及一种多租户权限控制方法和***。
背景技术
随着工业信息化发展,权限控制以及用户访问安全问题愈发重要。
通常,对于一般的业务***来说,权限模型一般采用传统的RBAC(Role-BasedAccess Control,基于角色的访问控制)模型,而对于多租户形式的工业***来说,传统的RBAC模型设计的权限***会使角色表数据冗余,并且数据隔离范围有限,无法实现同一个用户在不同租户中的数据隔离。而现有的工业***只通过服务端鉴定用户的权限。这种鉴权方式过于单一,容易被越权操作,存在安全隐患。
发明内容
为此,本申请实施例提供一种多租户权限控制方法和***,在客户端以及服务端会对用户需求进行多重权限检验,防止越权操作,提升安全性的同时,减少数据库的数据冗余。
为了实现上述目的,本申请实施例提供如下技术方案:
根据本申请实施例的第一方面,提供了一种多租户权限控制方法,所述方法包括:
根据客户端发送的用户账号信息判断用户的用户类型,并将用户类型令牌和用户信息发送至所述客户端,以使得用户根据所述用户信息进行操作;所述用户信息包括用户基本信息、用户菜单范围和用户权限范围;所述用户基本信息包括用户与角色和租户的对应关系;
根据所述客户端发送的用户操作请求,调用多租户权限控制模型在数据库中判断用户的角色和租户关系标识是否具有操作标识的权限,并将判断结果返回所述客户端;
根据所述客户端发送的数据调用请求,调用多租户权限控制模型在数据库中判断用户的角色和租户关系标识是否具有数据标识的权限,若有权限,调取对应的数据返回所述客户端。
可选地,根据所述客户端发送的用户操作请求,调用多租户权限控制模型在数据库中判断用户的角色和租户关系标识是否具有操作标识的权限,包括:
根据所述用户操作请求携带的令牌进行验证,若所述令牌在缓存中存在对应的用户信息,则从缓存中取出所述用户信息;
根据用户标识和租户标识,调用多租户权限控制模型从数据库查询角色和租户关系标识以及操作权限标识;
在数据库中查询所述操作权限标识是否与用户操作请求的目标操作对应的权限标识相同,若相同,则具有操作标识的权限;若不同,则不具有操作标识的权限。
可选地,根据所述客户端发送的数据调用请求,调用多租户权限控制模型在数据库中判断用户的角色和租户关系标识是否具有数据标识的权限,包括:
根据所述数据调用请求携带的令牌进行验证,若所述令牌在缓存中存在对应的用户信息,则从缓存中取出所述用户信息;
根据用户标识和租户标识,调用多租户权限控制模型从数据库查询角色和租户关系标识以及数据权限标识;
在数据库中查询所述数据权限标识是否与数据调用请求的目标数据对应的权限标识相同,若相同,则具有数据标识的权限;若不同,则不具有数据标识的权限。
可选地,根据客户端发送的用户账号信息判断用户的用户类型,并将用户类型令牌和用户信息发送至所述客户端,包括:
根据用户账号信息判断用户的用户类型为单租户用户,则生成单租户令牌,将单租户令牌和用户信息以key和value的形式存入缓存,并将所述单租户令牌和用户信息返回客户端;或者
根据用户账号信息判断用户的用户类型为多租户用户,则生成临时令牌,将租户列表以及临时令牌发送至客户端,以使得客户端的用户选择租户后,通过临时令牌验证用户信息,再删除临时令牌,并生成新的多租户令牌,将所述多租户令牌以及用户信息以key和value的形式存入缓存,并将所述多租户令牌和用户信息返回客户端。
可选地,所述数据库包括实体类数据表、关系表和权限表;
所述实体类数据表包括用户表、租户表、角色表和资源表;
所述关系表包括用户与租户关系表、用户与角色关系表,角色与租户关系表。
可选地,用户与租户关系表用于对用户与租户进行绑定,表中每一行存储一个主键关系标识、用户表示和租户表示;
所述用户与角色关系表用于对用户与角色进行绑定,表中每一行存储一个主键关系标识、用户标识和角色标识;
所述角色与租户关系表用于对角色与租户进行绑定,表中每一行存储一个关系标识、角色标识和租户标识;
所述权限表用于对资源和角色与租户关系进行绑定,表中每一行存储一个主键权限标识、资源标识和角色与租户关系标识。
可选地,所述将用户类型令牌和用户信息发送至所述客户端,以使得用户根据所述用户信息进行操作,所述方法包括:
将用户类型令牌和用户信息发送至所述客户端,以使得所述客户端根据所述用户菜单范围和用户权限范围对用户的操作进行权限判断,若用户进行的操作具有权限,则继续。
根据本申请实施例的第二方面,提供了一种多租户权限控制***,所述***包括:
类型判定模块,用于根据客户端发送的用户账号信息判断用户的用户类型,并将用户类型令牌和用户信息发送至所述客户端,以使得用户根据所述用户信息进行操作;所述用户信息包括用户基本信息、用户菜单范围和用户权限范围;所述用户基本信息包括用户与角色和租户的对应关系;
操作权限判断模块,用于根据所述客户端发送的用户操作请求,调用多租户权限控制模型在数据库中判断用户的角色和租户关系标识是否具有操作标识的权限,并将判断结果返回所述客户端;
数据权限判断模块,用于根据所述客户端发送的数据调用请求,调用多租户权限控制模型在数据库中判断用户的角色和租户关系标识是否具有数据标识的权限,若有权限,调取对应的数据返回所述客户端。
根据本申请实施例的第三方面,提供了一种电子设备,包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器运行所述计算机程序时执行以实现上述第一方面所述的方法。
根据本申请实施例的第四方面,提供了一种计算机可读存储介质,其上存储有计算机可读指令,所述计算机可读指令可被处理器执行以实现上述第一方面所述的方法。
综上所述,本申请实施例提供了一种多租户权限控制方法和***,通过根据客户端发送的用户账号信息判断用户的用户类型,并将用户类型令牌和用户信息发送至所述客户端,以使得用户根据所述用户信息进行操作;所述用户信息包括用户基本信息、用户菜单范围和用户权限范围;所述用户基本信息包括用户与角色和租户的对应关系;根据所述客户端发送的用户操作请求,调用多租户权限控制模型在数据库中判断用户的角色和租户关系标识是否具有操作标识的权限,并将判断结果返回所述客户端;根据所述客户端发送的数据调用请求,调用多租户权限控制模型在数据库中判断用户的角色和租户关系标识是否具有数据标识的权限,若有权限,调取对应的数据返回所述客户端。在客户端以及服务端会对用户需求进行多重权限检验,防止越权操作,提升安全性的同时,减少数据库的数据冗余。
附图说明
为了更清楚地说明本发明的实施方式或现有技术中的技术方案,下面将对实施方式或现有技术描述中所需要使用的附图作简单地介绍。显而易见地,下面描述中的附图仅仅是示例性的,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图引伸获得其它的实施附图。
本说明书所绘示的结构、比例、大小等,均仅用以配合说明书所揭示的内容,以供熟悉此技术的人士了解与阅读,并非用以限定本发明可实施的限定条件,故不具技术上的实质意义,任何结构的修饰、比例关系的改变或大小的调整,在不影响本发明所能产生的功效及所能达成的目的下,均应仍落在本发明所揭示的技术内容能涵盖的范围内。
图1为本申请实施例提供的一种多租户权限控制流程示意图;
图2为本申请实施例提供的权限控制模型框图;
图3为本申请实施例提供的数据绑定方式示意图;
图4为本申请实施例提供的一种多租户权限控制***框图;
图5示出了本申请实施例所提供的一种电子设备的结构示意图;
图6示出了本申请实施例所提供的一种计算机可读存储介质的示意图。
具体实施方式
以下由特定的具体实施例说明本发明的实施方式,熟悉此技术的人士可由本说明书所揭露的内容轻易地了解本发明的其他优点及功效,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
与现有技术相比,本申请实施例的多租户权限控制方法在原RBAC模型的基础上,添加了租户的概念。加强了租户间的数据隔离,减少了数据库的数据冗余,并且增加了权限的控制流程,在客户端以及服务端会对用户操作进行双重检验,防止用户通过不合法的途径越权操作。
图1示出了本申请实施例提供的多租户权限控制方法,所述方法包括:
步骤101:根据客户端发送的用户账号信息判断用户的用户类型,并将用户类型令牌和用户信息发送至所述客户端,以使得用户根据所述用户信息进行操作;所述用户信息包括用户基本信息、用户菜单范围和用户权限范围;所述用户基本信息包括用户与角色和租户的对应关系;
步骤102:根据所述客户端发送的用户操作请求,调用多租户权限控制模型在数据库中判断用户的角色和租户关系标识是否具有操作标识的权限,并将判断结果返回所述客户端;
步骤103:根据所述客户端发送的数据调用请求,调用多租户权限控制模型在数据库中判断用户的角色和租户关系标识是否具有数据标识的权限,若有权限,调取对应的数据返回所述客户端。
在一种可能的实施方式中,所述步骤101中,根据客户端发送的用户账号信息判断用户的用户类型,并将用户类型令牌和用户信息发送至所述客户端,包括:
根据用户账号信息判断用户的用户类型为单租户用户,则生成单租户令牌,将单租户令牌和用户信息以key和value的形式存入缓存,并将所述单租户令牌和用户信息返回客户端;或者根据用户账号信息判断用户的用户类型为多租户用户,则生成临时令牌,将租户列表以及临时令牌发送至客户端,以使得客户端的用户选择租户后,通过临时令牌验证用户信息,再删除临时令牌,并生成新的多租户令牌,将所述多租户令牌以及用户信息以key和value的形式存入缓存,并将所述多租户令牌和用户信息返回客户端。
在一种可能的实施方式中,所述步骤102中,根据所述客户端发送的用户操作请求,调用多租户权限控制模型在数据库中判断用户的角色和租户关系标识是否具有操作标识的权限,包括:
根据所述用户操作请求携带的令牌进行验证,若所述令牌在缓存中存在对应的用户信息,则从缓存中取出所述用户信息;根据用户标识和租户标识,调用多租户权限控制模型从数据库查询角色和租户关系标识以及操作权限标识;在数据库中查询所述操作权限标识是否与用户操作请求的目标操作对应的权限标识相同,若相同,则具有操作标识的权限;若不同,则不具有操作标识的权限。
在一种可能的实施方式中,所述步骤103中,根据所述客户端发送的数据调用请求,调用多租户权限控制模型在数据库中判断用户的角色和租户关系标识是否具有数据标识的权限,包括:
根据所述数据调用请求携带的令牌进行验证,若所述令牌在缓存中存在对应的用户信息,则从缓存中取出所述用户信息;根据用户标识和租户标识,调用多租户权限控制模型从数据库查询角色和租户关系标识以及数据权限标识;在数据库中查询所述数据权限标识是否与数据调用请求的目标数据对应的权限标识相同,若相同,则具有数据标识的权限;若不同,则不具有数据标识的权限。
在一种可能的实施方式中,所述数据库包括实体类数据表、关系表和权限表;所述实体类数据表包括用户表、租户表、角色表和资源表;所述关系表包括用户与租户关系表、用户与角色关系表,角色与租户关系表。
用户与租户关系表用于对用户与租户进行绑定,表中每一行存储一个主键关系标识、用户表示和租户表示。
所述用户与角色关系表用于对用户与角色进行绑定,表中每一行存储一个主键关系标识、用户标识和角色标识。
所述角色与租户关系表用于对角色与租户进行绑定,表中每一行存储一个关系标识、角色标识和租户标识。
所述权限表用于对资源和角色与租户关系进行绑定,表中每一行存储一个主键权限标识、资源标识和角色与租户关系标识。
在一种可能的实施方式中,在步骤101中,所述将用户类型令牌和用户信息发送至所述客户端,以使得用户根据所述用户信息进行操作,所述方法包括:
将用户类型令牌和用户信息发送至所述客户端,以使得所述客户端根据所述用户菜单范围和用户权限范围对用户的操作进行权限判断,若用户进行的操作具有权限,则继续。
图2示出了本申请实施例提供的多租户权限控制方法适用的RBAC模型,结合了租户的概念,将用户与角色绑定改进为角色与租户绑定为单个域,用户再与域进行绑定,使得用户登录不同的租户平台后获取的数据是互相隔离的。每个角色必须与租户绑定(多对多的关系),用户与角色再进行绑定(多对多的关系),这样用户对应的每一个角色都只存在于一个租户中。从功能上做到了租户隔离,同时每个角色不能独立于租户存在,角色可以存在于多个租户中,但是每个角色所对应的具体权限不同,实现分层控制。
图3为本申请实施例提供的数据绑定方式示意图;租户之间存在数据隔离,当用户登录***选择不同的租户时,数据范围是不同的,租户与租户之间的数据存在隔离,数据不会同时出现在多个租户中,用户可以切换租户操作其对应的数据,但用户无法跨租户操作数据。所有数据都需要与相对应的租户进行绑定。
在本申请实施例提供的多租户权限控制方法使用的数据库中,包括实体类数据表、关系表和权限表。实体类数据表包括用户表、租户表、角色表和资源表。资源表用于存储资源信息。资源表中的perms_flag字段为权限标识符,权限字符为用户自定义的字符串,用户可以根据这个权限标识符在代码层面对权限字符范围进行调整。权限表用于存储资源信息对应的权限信息。
关系表包括用户与租户关系表、用户与角色关系表,角色与租户关系表。用户与租户通过用户与租户关系表进行绑定,该表中每一行存储一个主键关系id以及用户id和租户id。用户与角色通过用户与角色关系表进行绑定,该表中每一行存储一个主键关系id以及用户id和角色id。角色与租户通过角色与租户关系表进行绑定,该表中每一行存储一个关系id以及角色id和租户id。
资源和角色与租户关系通过权限表进行绑定,该表中每一行存储一个主键权限id以及资源id和角色与租户关系id,通过这张表实现同一角色在不同租户中拥有不同的权限。
用户每次请求接口,服务端都会进行权限验证,判断接口请求是否在用户的权限范围内。每次访问数据时,服务端同样会进行相应的数据权限校验。在客户端以及服务端会对用户操作进行双重检验,防止用户通过不合法的途径越权操作。
下面对本申请实施例提供的多租户权限控制方法的又一实施例进行详细说明:
步骤1:用户在登录页面输入账号和口令,点击登录按钮,以使得客户端向服务端发送登录请求。用户登录后,不同用户所展示的菜单页面不同。
步骤2:服务端对用户的账号和密码进行认证,若没有通过认证,则返回客户端登录失败的消息。若通过认证,则执行步骤3;
步骤3:根据用户账号信息判断用户为多租户用户或单租户用户;若用户为单租户用户,则生成单租户令牌,将单租户令牌和用户信息以key和value的形式存入缓存,并将所述单租户令牌和用户信息返回客户端。若用户为多租户用户,则生成临时令牌,将租户列表以及临时令牌发送至客户端,以使得客户端的用户选择租户后,通过临时令牌验证用户信息,之后删除临时令牌,并生成新的多租户令牌,将所述多租户令牌以及用户信息以key和value的形式存入缓存,并将所述多租户令牌和用户信息返回客户端。用户信息包括用户基本信息、用户的菜单范围和用户的权限范围,以集合的形式,返回给客户端。
步骤4:客户端在接收到返回的消息后,根据所述用户的菜单范围和权限范围渲染界面。当用户操作菜单功能时,客户端根据所述用户的权限范围对用户的操作权限进行判断:根据所述用户操作请求携带的令牌进行验证,若所述令牌在缓存中存在对应的用户信息,则从缓存中取出所述用户信息;根据用户标识和租户标识,调用多租户权限控制模型从数据库查询角色和租户关系标识以及操作权限标识;在数据库中查询所述操作权限标识是否与用户操作请求的目标操作对应的权限标识相同,若相同,则具有操作标识的权限,继续请求菜单功能;若不同,则不具有操作标识的权限,则提示用户没有菜单功能的操作权限。
步骤5:服务端接收客户端发送的数据库业务数据调用请求后,调用多租户权限控制模型,结合用户当前租户和用户信息,判断用户的数据权限范围:根据所述数据调用请求携带的令牌进行验证,若所述令牌在缓存中存在对应的用户信息,则从缓存中取出所述用户信息;根据用户标识和租户标识,调用多租户权限控制模型从数据库查询角色和租户关系标识以及数据权限标识;在数据库中查询所述数据权限标识是否与数据调用请求的目标数据对应的权限标识相同,若相同,则具有数据标识的权限;若不同,则不具有数据标识的权限。若有权限,调取对应的数据返回所述客户端。
综上所述,本申请实施例提供了一种多租户权限控制方法和***,通过根据客户端发送的用户账号信息判断用户的用户类型,并将用户类型令牌和用户信息发送至所述客户端,以使得用户根据所述用户信息进行操作;所述用户信息包括用户基本信息、用户菜单范围和用户权限范围;所述用户基本信息包括用户与角色和租户的对应关系;根据所述客户端发送的用户操作请求,调用多租户权限控制模型在数据库中判断用户的角色和租户关系标识是否具有操作标识的权限,并将判断结果返回所述客户端;根据所述客户端发送的数据调用请求,调用多租户权限控制模型在数据库中判断用户的角色和租户关系标识是否具有数据标识的权限,若有权限,调取对应的数据返回所述客户端。在客户端以及服务端会对用户需求进行多重权限检验,防止越权操作,提升安全性的同时,减少数据库的数据冗余。
基于相同的技术构思,本申请实施例还提供了一种多租户权限控制***,如图4所示,所述***包括:
类型判定模块401,用于根据客户端发送的用户账号信息判断用户的用户类型,并将用户类型令牌和用户信息发送至所述客户端,以使得用户根据所述用户信息进行操作;所述用户信息包括用户基本信息、用户菜单范围和用户权限范围;所述用户基本信息包括用户与角色和租户的对应关系;
操作权限判断模块402,用于根据所述客户端发送的用户操作请求,调用多租户权限控制模型在数据库中判断用户的角色和租户关系标识是否具有操作标识的权限,并将判断结果返回所述客户端;
数据权限判断模块403,用于根据所述客户端发送的数据调用请求,调用多租户权限控制模型在数据库中判断用户的角色和租户关系标识是否具有数据标识的权限,若有权限,调取对应的数据返回所述客户端。
本申请实施方式还提供一种与前述实施方式所提供的方法对应的电子设备。请参考图5,其示出了本申请的一些实施方式所提供的一种电子设备的示意图。所述电子设备20可以包括:处理器200,存储器201,总线202和通信接口203,所述处理器200、通信接口203和存储器201通过总线202连接;所述存储器201中存储有可在所述处理器200上运行的计算机程序,所述处理器200运行所述计算机程序时执行本申请前述任一实施方式所提供的方法。
其中,存储器201可能包含高速随机存取存储器(RAM:Random Access Memory),也可能还包括非不稳定的存储器(non-volatile memory),例如至少一个磁盘存储器。通过至少一个物理端口203(可以是有线或者无线)实现该***网元与至少一个其他网元之间的通信连接,可以使用互联网、广域网、本地网、城域网等。
总线202可以是ISA总线、PCI总线或EISA总线等。所述总线可以分为地址总线、数据总线、控制总线等。其中,存储器201用于存储程序,所述处理器200在接收到执行指令后,执行所述程序,前述本申请实施例任一实施方式揭示的所述方法可以应用于处理器200中,或者由处理器200实现。
处理器200可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器200中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器200可以是通用处理器,包括中央处理器(Central Processing Unit,简称CPU)、网络处理器(Network Processor,简称NP)等;还可以是数字信号处理器(DSP)、专用集成电路(ASIC)、现成可编程门阵列(FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本申请实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器201,处理器200读取存储器201中的信息,结合其硬件完成上述方法的步骤。
本申请实施例提供的电子设备与本申请实施例提供的方法出于相同的发明构思,具有与其采用、运行或实现的方法相同的有益效果。
本申请实施方式还提供一种与前述实施方式所提供的方法对应的计算机可读存储介质,请参考图6,其示出的计算机可读存储介质为光盘30,其上存储有计算机程序(即程序产品),所述计算机程序在被处理器运行时,会执行前述任意实施方式所提供的方法。
需要说明的是,所述计算机可读存储介质的例子还可以包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他光学、磁性存储介质,在此不再一一赘述。
本申请的上述实施例提供的计算机可读存储介质与本申请实施例提供的方法出于相同的发明构思,具有与其存储的应用程序所采用、运行或实现的方法相同的有益效果。
需要说明的是:
在此提供的算法和显示不与任何特定计算机、虚拟装置或者其它设备有固有相关。各种通用装置也可以与基于在此的示教一起使用。根据上面的描述,构造这类装置所要求的结构是显而易见的。此外,本申请也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本申请的内容,并且上面对特定语言所做的描述是为了披露本申请的最佳实施方式。
在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本申请的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
类似地,应当理解,为了精简本申请并帮助理解各个发明方面中的一个或多个,在上面对本申请的示例性实施例的描述中,本申请的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本申请要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本申请的单独实施例。
本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。
此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本申请的范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。
本申请的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(DSP)来实现根据本申请实施例的虚拟机的创建装置中的一些或者全部部件的一些或者全部功能。本申请还可以实现为用于执行这里所描述的方法的一部分或者全部的设备或者装置程序(例如,计算机程序和计算机程序产品)。这样的实现本申请的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。
应该注意的是上述实施例对本申请进行说明而不是对本申请进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本申请可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。
以上所述,仅为本申请较佳的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。
Claims (9)
1.一种多租户权限控制方法,其特征在于,所述方法包括:
根据用户账号信息判断用户的用户类型为单租户用户,则生成单租户令牌,将单租户令牌和用户信息以key和value的形式存入缓存,并将所述单租户令牌和用户信息返回客户端;或者根据用户账号信息判断用户的用户类型为多租户用户,则生成临时令牌,将租户列表以及临时令牌发送至客户端,以使得客户端的用户选择租户后,通过临时令牌验证用户信息,再删除临时令牌,并生成新的多租户令牌,将所述多租户令牌以及用户信息以key和value的形式存入缓存,并将所述多租户令牌和用户信息返回客户端,以使得用户根据所述用户信息进行操作;所述用户信息包括用户基本信息、用户菜单范围和用户权限范围;所述用户基本信息包括用户与角色和租户的对应关系;
根据所述客户端发送的用户操作请求,调用多租户权限控制模型在数据库中判断用户的角色和租户关系标识是否具有操作标识的权限,并将判断结果返回所述客户端;
根据所述客户端发送的数据调用请求,调用多租户权限控制模型在数据库中判断用户的角色和租户关系标识是否具有数据标识的权限,若有权限,调取对应的数据返回所述客户端。
2.如权利要求1所述的方法,其特征在于,根据所述客户端发送的用户操作请求,调用多租户权限控制模型在数据库中判断用户的角色和租户关系标识是否具有操作标识的权限,包括:
根据所述用户操作请求携带的令牌进行验证,若所述令牌在缓存中存在对应的用户信息,则从缓存中取出所述用户信息;
根据用户标识和租户标识,调用多租户权限控制模型从数据库查询角色和租户关系标识以及操作权限标识;
在数据库中查询所述操作权限标识是否与用户操作请求的目标操作对应的权限标识相同,若相同,则具有操作标识的权限;若不同,则不具有操作标识的权限。
3.如权利要求1所述的方法,其特征在于,根据所述客户端发送的数据调用请求,调用多租户权限控制模型在数据库中判断用户的角色和租户关系标识是否具有数据标识的权限,包括:
根据所述数据调用请求携带的令牌进行验证,若所述令牌在缓存中存在对应的用户信息,则从缓存中取出所述用户信息;
根据用户标识和租户标识,调用多租户权限控制模型从数据库查询角色和租户关系标识以及数据权限标识;
在数据库中查询所述数据权限标识是否与数据调用请求的目标数据对应的权限标识相同,若相同,则具有数据标识的权限;若不同,则不具有数据标识的权限。
4.如权利要求1所述的方法,其特征在于,所述数据库包括实体类数据表、关系表和权限表;
所述实体类数据表包括用户表、租户表、角色表和资源表;
所述关系表包括用户与租户关系表、用户与角色关系表,角色与租户关系表。
5.如权利要求4所述的方法,其特征在于,用户与租户关系表用于对用户与租户进行绑定,表中每一行存储一个主键关系标识、用户表示和租户表示;
所述用户与角色关系表用于对用户与角色进行绑定,表中每一行存储一个主键关系标识、用户标识和角色标识;
所述角色与租户关系表用于对角色与租户进行绑定,表中每一行存储一个关系标识、角色标识和租户标识;
所述权限表用于对资源和角色与租户关系进行绑定,表中每一行存储一个主键权限标识、资源标识和角色与租户关系标识。
6.如权利要求1所述的方法,其特征在于,所述将用户类型令牌和用户信息发送至所述客户端,以使得用户根据所述用户信息进行操作,所述方法包括:
将用户类型令牌和用户信息发送至所述客户端,以使得所述客户端根据所述用户菜单范围和用户权限范围对用户的操作进行权限判断,若用户进行的操作具有权限,则继续。
7.一种多租户权限控制***,其特征在于,所述***包括:
类型判定模块,用于根据用户账号信息判断用户的用户类型为单租户用户,则生成单租户令牌,将单租户令牌和用户信息以key和value的形式存入缓存,并将所述单租户令牌和用户信息返回客户端;或者根据用户账号信息判断用户的用户类型为多租户用户,则生成临时令牌,将租户列表以及临时令牌发送至客户端,以使得客户端的用户选择租户后,通过临时令牌验证用户信息,再删除临时令牌,并生成新的多租户令牌,将所述多租户令牌以及用户信息以key和value的形式存入缓存,并将所述多租户令牌和用户信息返回客户端,以使得用户根据所述用户信息进行操作;所述用户信息包括用户基本信息、用户菜单范围和用户权限范围;所述用户基本信息包括用户与角色和租户的对应关系;
操作权限判断模块,用于根据所述客户端发送的用户操作请求,调用多租户权限控制模型在数据库中判断用户的角色和租户关系标识是否具有操作标识的权限,并将判断结果返回所述客户端;
数据权限判断模块,用于根据所述客户端发送的数据调用请求,调用多租户权限控制模型在数据库中判断用户的角色和租户关系标识是否具有数据标识的权限,若有权限,调取对应的数据返回所述客户端。
8.一种电子设备,包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器运行所述计算机程序时执行以实现如权利要求1-6任一项所述的方法。
9.一种计算机可读存储介质,其特征在于,其上存储有计算机可读指令,所述计算机可读指令可被处理器执行以实现如权利要求1-6任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210066705.8A CN114301714B (zh) | 2022-01-20 | 2022-01-20 | 一种多租户权限控制方法和*** |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210066705.8A CN114301714B (zh) | 2022-01-20 | 2022-01-20 | 一种多租户权限控制方法和*** |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114301714A CN114301714A (zh) | 2022-04-08 |
CN114301714B true CN114301714B (zh) | 2024-01-19 |
Family
ID=80978189
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210066705.8A Active CN114301714B (zh) | 2022-01-20 | 2022-01-20 | 一种多租户权限控制方法和*** |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114301714B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115118765B (zh) * | 2022-06-20 | 2024-04-05 | 北京京东乾石科技有限公司 | 服务处理的方法、装置、电子设备和存储介质 |
CN115827205B (zh) * | 2023-01-10 | 2023-05-30 | 北京有生博大软件股份有限公司 | 基于多租户模式下的权限调度方法及调度*** |
CN117313051B (zh) * | 2023-09-12 | 2024-07-05 | 天翼爱音乐文化科技有限公司 | 一种多租户统一权限管理方法、***、装置及存储介质 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108600177A (zh) * | 2018-03-27 | 2018-09-28 | 北京明朝万达科技股份有限公司 | 一种权限控制方法和装置 |
CN109214151A (zh) * | 2018-09-28 | 2019-01-15 | 北京赛博贝斯数据科技有限责任公司 | 用户权限的控制方法及*** |
CN109670336A (zh) * | 2018-12-20 | 2019-04-23 | 福建南威软件有限公司 | 一种多级应用的云化管理方法 |
CN109829336A (zh) * | 2019-02-12 | 2019-05-31 | 浪潮软件股份有限公司 | 一种菜单权限的管理方法及装置 |
CN111400676A (zh) * | 2020-02-28 | 2020-07-10 | 平安国际智慧城市科技股份有限公司 | 基于共享权限的业务数据处理方法、装置、设备和介质 |
CN111641627A (zh) * | 2020-05-26 | 2020-09-08 | 深圳壹账通智能科技有限公司 | 用户角色权限管理方法、装置、计算机设备及存储介质 |
CN112019543A (zh) * | 2020-08-27 | 2020-12-01 | 四川长虹电器股份有限公司 | 一种基于brac模型的多租户权限*** |
-
2022
- 2022-01-20 CN CN202210066705.8A patent/CN114301714B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108600177A (zh) * | 2018-03-27 | 2018-09-28 | 北京明朝万达科技股份有限公司 | 一种权限控制方法和装置 |
CN109214151A (zh) * | 2018-09-28 | 2019-01-15 | 北京赛博贝斯数据科技有限责任公司 | 用户权限的控制方法及*** |
CN109670336A (zh) * | 2018-12-20 | 2019-04-23 | 福建南威软件有限公司 | 一种多级应用的云化管理方法 |
CN109829336A (zh) * | 2019-02-12 | 2019-05-31 | 浪潮软件股份有限公司 | 一种菜单权限的管理方法及装置 |
CN111400676A (zh) * | 2020-02-28 | 2020-07-10 | 平安国际智慧城市科技股份有限公司 | 基于共享权限的业务数据处理方法、装置、设备和介质 |
CN111641627A (zh) * | 2020-05-26 | 2020-09-08 | 深圳壹账通智能科技有限公司 | 用户角色权限管理方法、装置、计算机设备及存储介质 |
CN112019543A (zh) * | 2020-08-27 | 2020-12-01 | 四川长虹电器股份有限公司 | 一种基于brac模型的多租户权限*** |
Also Published As
Publication number | Publication date |
---|---|
CN114301714A (zh) | 2022-04-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN114301714B (zh) | 一种多租户权限控制方法和*** | |
CN107508680B (zh) | 数字证书管理方法、装置及电子设备 | |
CN112637214B (zh) | 资源访问方法、装置及电子设备 | |
US11196772B2 (en) | Data access policies | |
US9418219B2 (en) | Inter-process message security | |
CN109246089B (zh) | 一种基于角色的前后端分离架构访问控制***及方法 | |
US10831915B2 (en) | Method and system for isolating application data access | |
JP2014503909A (ja) | 改ざん防止ロケーションサービス | |
CN111931154B (zh) | 基于数字凭证的业务处理方法、装置及设备 | |
CN110784450A (zh) | 一种基于浏览器的单点登录方法和装置 | |
CN106330958A (zh) | 一种安全访问方法及装置 | |
US20090328137A1 (en) | Method for protecting data in mashup websites | |
CN111814172A (zh) | 一种数据授权信息的获取方法、装置及设备 | |
KR20160018554A (ko) | 신뢰 및 비신뢰 플랫폼에 걸쳐 인터넷 액세스가능 애플리케이션 상태를 로밍하는 기법 | |
CN112149108A (zh) | 访问控制方法、装置、电子设备及存储介质 | |
CN111090616B (zh) | 一种文件管理方法、对应装置、设备及存储介质 | |
CN112433985A (zh) | 控制提交给计算***的信息的组合 | |
US20210042043A1 (en) | Secure Data Processing | |
CN111818094B (zh) | 一种身份注册方法、装置及设备 | |
CN113901428A (zh) | 多租户***的登录方法及装置 | |
CN112733102A (zh) | 一种基于Ambari的快速链接安全访问方法和*** | |
CN111639020B (zh) | 一种程序漏洞复现方法、***、装置、电子设备及其存储介质 | |
CN106330818B (zh) | 客户端内嵌页面的保护方法和*** | |
CN116980182B (zh) | 异常请求检测方法、装置和电子设备 | |
CN114065237A (zh) | 验证方法、装置、电子设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |