CN112883390B - 一种权限控制方法、装置及存储介质 - Google Patents

一种权限控制方法、装置及存储介质 Download PDF

Info

Publication number
CN112883390B
CN112883390B CN202110190564.6A CN202110190564A CN112883390B CN 112883390 B CN112883390 B CN 112883390B CN 202110190564 A CN202110190564 A CN 202110190564A CN 112883390 B CN112883390 B CN 112883390B
Authority
CN
China
Prior art keywords
authority
entity
target
constraint item
association
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
Application number
CN202110190564.6A
Other languages
English (en)
Other versions
CN112883390A (zh
Inventor
陈恩龙
王志浩
周建城
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Tencent Technology Shenzhen Co Ltd
Original Assignee
Tencent Technology Shenzhen Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Tencent Technology Shenzhen Co Ltd filed Critical Tencent Technology Shenzhen Co Ltd
Priority to CN202110190564.6A priority Critical patent/CN112883390B/zh
Publication of CN112883390A publication Critical patent/CN112883390A/zh
Application granted granted Critical
Publication of CN112883390B publication Critical patent/CN112883390B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/604Tools and structures for managing or administering access control systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2141Access rights, e.g. capability lists, access control lists, access tables, access matrices

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Computer Hardware Design (AREA)
  • Health & Medical Sciences (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Automation & Control Theory (AREA)
  • Storage Device Security (AREA)

Abstract

本申请实施例公开了一种权限控制方法、装置及存储介质,其中该方法包括:确定目标实体的权限的约束项集;获取所述约束项集中每个所述约束项的属性和配置信息;根据所述约束项集中每个所述约束项的属性和配置信息,确定所述目标实体的权限模型中对应的模型模块及所述模型模块对应的关联关系;利用各所述约束项的配置信息搭建各所述模型模块,并根据关联关系关联搭建好的模型模块,得到目标权限模型;基于目标权限模型生成目标实体的权限,以控制目标实体访问权限对应的资源。本申请提高权限控制时权限模型的可扩展性以及易用性,且对于越来越复杂的权限模型具有良好维护性及低成本,有效提升资源的访问控制可靠性,本申请可应用于地图领域。

Description

一种权限控制方法、装置及存储介质
技术领域
本申请涉及权限控制技术领域,具体涉及一种权限控制方法、装置及存储介质。
背景技术
权限控制即为了资源安全性,访问实体仅被授予必要的权限。通常通过考虑实体的角色和岗位职责等,对实体的访问内容、方式、权限级别等通过构建权限模型约束条件,实现实体访问资源时的权限控制。
目前,在进行权限控制时,通常会设计固定的权限模型,例如Casbin(轻量级访问控制框架)方案中,权限模型是基于PERM(Policy(策略),Effect(组合判断),Request(请求),Matcher(匹配))的一个文件,Casbin方案下每套模型需设置对应的模型文件和策略文件,学习门槛高、对使用者要求高、不友好,且对于组合或非支持内的权限模型没有好的解决方案;又例如,基于ABAC(基于角色的访问控制)和RBAC(基于属性的访问控制)模型的设计,权限模型的扩展性弱,不能支持其他的权限模型设计。
因此,现有技术中,存在权限控制中权限模型扩展性以及易用性较差,后期对于越来越复杂的权限模型难以维护、成本高的问题,导致资源的访问控制可靠性较差。
发明内容
本申请实施例提供一种权限控制方法、装置及存储介质,旨在提高权限控制时权限模型的可扩展性以及易用性,且对于越来越复杂的权限模型具有良好维护性及低成本,有效提升资源的访问控制可靠性。
本申请实施例提供以下技术方案:
一种权限控制方法,包括:确定目标实体的权限的约束项集,所述约束项集中包括至少一个约束项;获取所述约束项集中每个所述约束项的属性和配置信息;根据所述约束项集中每个所述约束项的属性和配置信息,确定所述目标实体的权限模型中对应的模型模块及所述模型模块对应的关联关系;利用各所述约束项的配置信息搭建各所述模型模块,并根据所述关联关系关联搭建好的模型模块,得到目标权限模型;基于所述目标权限模型生成所述目标实体的权限,以控制所述目标实体访问所述权限对应的资源。
一种权限控制装置,包括:确定单元,用于确定目标实体的权限的约束项集,所述约束项集中包括至少一个约束项;获取单元,用于获取所述约束项集中每个所述约束项的属性和配置信息;分析单元,用于根据所述约束项集中每个所述约束项的属性和配置信息,确定所述目标实体的权限模型中对应的模型模块及所述模型模块对应的关联关系;构建单元,用于利用各所述约束项的配置信息搭建各所述模型模块,并根据所述关联关系关联搭建好的模型模块,得到目标权限模型;控制单元,用于基于所述目标权限模型生成所述目标实体的权限,以控制所述目标实体访问所述权限对应的资源。
在本申请的一些实施例中,所述分析单元包括:分析子单元,用于根据所述约束项集中每个所述约束项的属性和配置信息,确定各所述约束项对应的实体权限表,并确定各所述实体权限表对应的关联关系,所述实体权限表用于管理各所述约束项所对应配置信息;第一确定子单元,用于将各所述约束项对应的实体权限表,确定为所述目标实体的权限模型中对应的模型模块;第二确定子单元,用于将各所述实体权限表对应的关联关系,确定为所述模型模块对应的关联关系。
在本申请的一些实施例中,所述分析子单元,用于:根据各所述约束项所对应配置信息,确定第一类约束项及第二类约束项,其中,所述第一类约束项的配置信息中包括至少两个属性对象的信息,所述第二类约束项的配置信息中包括一个属性对象的信息;确定各所述第一类约束项对应的权限关联表,各所述权限关联表分别用于管理对应第一类约束项的配置信息;确定所述约束项集中所有所述约束项对应的一实体关联表,所述实体关联表用于关联各所述权限关联表以及管理所述第二类约束项的配置信息;将所述实体关联表及各所述权限关联表,确定为各所述约束项对应的实体权限表。
在本申请的一些实施例中,所述分析子单元,用于:根据所述约束项集中各所述约束项的属性,确定各所述约束项之间的组合关系;根据所述组合关系,确定各所述实体权限表对应的关联关系,其中,所述关联关系包括各所述实体关联表的层级,以及各所述实体权限表之间的关联关系。
在本申请的一些实施例中,所述关联关系包括所述实体关联表和各所述权限关联表的层级,以及所述实体关联表和各所述权限关联表之间的关联关系;
所述构建单元,用于:在所述实体关联表中配置各所述第二类约束项的配置信息;在各所述权限关联表中分别配置对应的第一类约束项的配置信息;根据所述实体关联表和各所述权限关联表的层级,以及所述实体关联表和各所述权限关联表之间的关联关系,依次关联配置了配置信息后的所述实体关联表和各所述权限关联表,得到所述目标权限模型。
在本申请的一些实施例中,所述实体关联表的层级为第一层,各所述权限关联表的层级大于等于第二层,第二层的所述权限关联表均关联于所述实体关联表,所述目标权限模型的结构为树形结构;
所述控制单元,用于:以第一层的所述实体关联表为根节点,遍历树形结构的所述目标权限模型中各节点所对应表中的字段,并按照字段所来源表的层级存储遍历到字段中的信息,得到所述目标实体的树形结构权限,其中,同一层级的两个表之间的字段中的信息为并列关系,所述遍历过程包括:遍历当前表中的每个字段,并获取每个字段的字段类型;当目标字段的字段类型为所述关联字段所对应类型时,以所述目标字段所关联的表作为新的当前表进行遍历,直到所述目标权限模型中所有节点扫描完成。
在本申请的一些实施例中,所述控制单元,用于:通过定义鉴权资源标识协议,将所述权限关联于目标资源,得到关联所述权限与所述目标资源的鉴权资源标识;接收所述目标主体传递的目标资源标识,并通过判断所述目标资源标识与所述鉴权资源标识是否一致,控制所述目标主体对所述目标资源的访问。
在本申请的一些实施例中,所述控制单元,用于:当所述目标实体登录目标平台后,根据所述权限渲染所述目标平台的应用界面,以使得所述目标实体基于渲染后的应用界面访问目标资源。
一种计算机存储介质,其上存储有计算机可读指令,当所述计算机可读指令被计算机的处理器执行时,使计算机执行本申请实施例所述方法中的步骤。
一种电子设备可以包括:存储器,存储有计算机可读指令;处理器,读取存储器存储的计算机可读指令,以执行本申请实施例所述的方法。
一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行本申请实施例所述的各种可选实现方式中提供的方法。
本申请实施例的权限控制方法,通过确定目标实体的权限的约束项集,该约束项集中包括至少一个约束项;然后,获取约束项集中每个约束项的属性和配置信息;并根据约束项集中每个约束项的属性和配置信息,确定目标实体的权限模型中对应的模型模块及模型模块对应的关联关系,确定出目标实体所需的权限模型的结构;进而可以动态地利用获取到的各约束项的配置信息搭建各模型模块,并根据关联关系关联搭建好的模型模块,快速构建出满足需求的目标权限模型;不仅可以支持常用的ACL(访问控制列表)、RBAC(基于角色的访问控制)、ABAC(基于属性的访问控制)等模型的构建,对于特殊需求的权限模型(例如组合的权限模型)也可以具有良好的兼容性,有效提升权限控制过程中权限模型扩展性以及易用性,保证对于越来越复杂的权限模型的可维护性及低成本。进而,基于目标权限模型生成目标实体的权限,控制目标实体访问权限对应的资源,可以有效提升资源的访问控制可靠性。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1示出了可以应用本申请实施例的系统的示意图。
图2示出了根据本申请的一个实施例的权限控制方法的流程图。
图3示出了根据本申请的一个实施例的权限模块及关联关系确定方法的流程图。
图4示出了应用本申请实施例的一种场景下权限控制的流程图。
图5示出了基于图4所示实施例的场景下用户权限表的定义界面示意图。
图6示出了基于图4所示实施例的场景下角色表的定义界面示意图。
图7示出了基于图4所示实施例的场景下访问权限树表的定义界面示意图。
图8示出了基于图4所示实施例的场景下权限管理界面的示意图。
图9示出了基于图4所示实施例的一种场景下鉴权交互的流程图。
图10示出了基于图4所示实施例的一种场景下权限模型的示意图。
图11示出了基于图10所示实施例的生成权限的流程图。
图12示出了基于图10所示实施例的鉴权逻辑的流程图。
图13示出了根据本申请的一个实施例的权限控制装置的框图。
图14示出了根据本申请的一个实施例的电子设备的框图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
在以下的说明中,本申请的具体实施例将参考由一部或多部计算机所执行的步骤及符号来说明,除非另有述明。因此,这些步骤及操作将有数次提到由计算机执行,本文所指的计算机执行包括了由代表了以一结构化型式中的数据的电子信号的计算机处理单元的操作。此操作转换该数据或将其维持在该计算机的内存系统中的位置处,其可重新配置或另外以本领域测试人员所熟知的方式来改变该计算机的运作。该数据所维持的数据结构为该内存的实体位置,其具有由该数据格式所定义的特定特性。但是,本申请原理以上述文字来说明,其并不代表为一种限制,本领域测试人员将可了解到以下所述的多种步骤及操作亦可实施在硬件当中。
本申请实施例提供一种权限控制方法、装置及存储介质。
请参阅图1,图1示出了可以应用本申请实施例的系统100的示意图。如图1所示,系统100可以包括服务器101及终端102。终端102上可以接收用户输入的相关信息,例如目标实体的约束项集,以及约束项集中约束项的属性及配置信息;服务器101上可以存储供终端102调用的目标资源。
服务器101可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,例如服务器101为区块链网络中的节点服务器;还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN、以及大数据和人工智能平台等基础云计算服务的云服务器。
一种实施方式中,服务器101可以提供人工智能云服务,例如提供大型多人在线角色扮演游戏(MMORPG)的人工智能云服务。所谓人工智能云服务,一般也被称作是AIaaS(AIas a Service,中文为“AI即服务”)。这是目前主流的一种人工智能平台的服务方式,具体来说AIaaS平台会把几类常见的AI服务进行拆分,并在云端提供独立或者打包的服务。这种服务模式类似于开了一个AI主题商城:所有的开发者都可以通过API接口的方式来接入使用平台提供的一种或者是多种人工智能服务,部分资深的开发者还可以使用平台提供的AI框架和AI基础设施来部署和运维自已专属的云人工智能服务。
终端102可以是边缘设备,例如智能手机,电脑等。
其中,终端102和服务器101可以通过无线通信方式进行直接或间接地连接,本申请在此不做特殊限制。
本示例的一种实施方式中,终端101可以确定目标实体的权限的约束项集,该约束项集中包括至少一个约束项;获取该约束项集中每个约束项的属性和配置信息;根据约束项集中每个约束项的属性和配置信息,确定目标实体的权限模型中对应的模型模块及模型模块对应的关联关系;利用各约束项的配置信息搭建各模型模块,并根据关联关系关联搭建好的模型模块,得到目标权限模型;基于目标权限模型生成目标实体的权限,以控制目标实体访问所述权限对应的资源。
图2示意性示出了根据本申请的一个实施例的权限控制方法的流程图。该权限控制方法的执行主体可以是具有计算处理功能的电子设备,比如图1中所示的服务器101或者终端102。
如图2所示,该权限控制方法可以包括步骤S210至步骤S250。
步骤S210,确定目标实体的权限的约束项集,该约束项集中包括至少一个约束项。
本示例的实施方式中,目标实体可以是用户实体或者通信实体等可以授予权限的实体,其中,目标实体的数量可以是至少1个。
目标实体的权限即目标实体访问目标资源时的权限,同一个目标实体可以同时具有多个不同的权限,形成搞同一个目标实体的权限集合。
约束项集对应于不同的任务,不同场景的任务设置不同的约束项集,用于约束目标实体在对应任务中的权限。例如,在地图应用中任务处理的任务场景,可以设置由角色、城市、技能以及时间等约束项组成的约束项集;在其他任务场景下,可以设置由公司名、项目、任务项以及职责等约束项组成的约束项集。
约束项集中的约束项可以是事先定义好的,存储于预定位置,在需要时直接调用查看;约束项集中的约束项也可以是用户动态定义的。本示例的实施方式中,确定用户通过权限配置平台相关界面动态定义约束项。
一种实施例中,确定目标实体的权限的约束项集,包括:确定目标实体对应的任务场景,确定该任务场景下对应的约束项集。例如,可以通过在权限配置平台点击地图任务场景对应的控件,自动弹出该场景下的约束项集,其中,约束项集中的约束项可以以编码或者名称的形式表示。
一种实施例中,确定目标实体的权限的约束项集,包括:确定用户需求的约束项集,例如,确定用户在权限配置平台动态定义的约束项集,其中,约束项集中的约束项可以以编码或者名称的形式表示。
步骤S220,获取约束项集中每个约束项的属性和配置信息。
本示例的实施方式中,每个约束项的属性为约束项本身的类别属性,约束项本身的类别属性可以根据实际需求设定。一个示例中,“角色”约束项的属性为角色类,通过约束项本身的名称表示,例如如图10所示,约束项为“tb-role角色”时,约束项“tb-role角色”的属性可以直接通过“角色类”表示;约束项为“access-control-tree访问权限树”时,约束项“access-control-tree访问权限树”的属性可以直接通过“访问权限树类”表示;另一个示例中,“角色”约束项的属性为实体类,通过约束所属群体的特征分类名称表示,约束项为“tb-role角色”时,约束项“tb-role角色”的属性可以通过“实体特征”表示;约束项为“access-control-tree访问权限树”时,约束项“access-control-tree访问权限树”的属性可以通过“关联特征”表示。
每个属性可以对应至少一个属性对象,例如角色类属性可以对应有管理员及员工两个属性对象,每个约束项的配置信息即每个约束项对应的属性对象及属性对象的信息,例如,管理员及管理员的编码、标识及ID等信息。
在确定约束项集后,获取其中每个约束项的属性和配置信息可以实现对权限的实际约束。
其中,获取约束项集中每个约束项的属性和配置信息的方式,可以是获取用户基于权限配置平台动态配置的每个约束项的属性和配置信息,也可以是从预定配置信息存储位置调取的每个约束项的属性和配置信息。
步骤S230,根据约束项集中每个约束项的属性和配置信息,确定目标实体的权限模型中对应的模型模块及模型模块对应的关联关系。
本示例的实施方式中,权限模型是定义权限约束规则的模型。权限模型由至少两个模型模块组成,模型模块用于管理对应的目标配置信息(例如目标约束项的配置信息)及关联不同模块的配置信息,形成符合约束项集中每个约束项的属性和配置信息的特征的约束规则。
确定目标实体的权限模型中对应的模型模块及模型模块对应的关联关系,可以是获取约束项集中每个约束项的属性和配置信息的特征(例如对象个数及类别属性等)后,输入预先训练好的分析模型(即目标机器学习模型),该分析模型输出目标实体的权限模型中对应的模型模块的信息及模型模块对应的关联关系的信息。也可以是接收的用户通过权限配置平台相关界面动态定义而输入的、与约束项集中每个约束项的属性和配置信息所对应的、目标实体的权限模型中对应的模型模块及模型模块对应的关联关系。
其中,模型模块可以是实体权限表或者权限文本,本示例的实施方式中,模型模块为实体权限表。
一种实施例中,参阅图3,步骤S230,根据约束项集中每个约束项的属性和配置信息,确定目标实体的权限模型中对应的模型模块及模型模块对应的关联关系,包括:
步骤S310,根据约束项集中每个约束项的属性和配置信息,确定各约束项对应的实体权限表,并确定各实体权限表对应的关联关系,各实体权限表用于管理各约束项所对应配置信息;
步骤S320,将各约束项对应的实体权限表,确定为目标实体的权限模型中对应的模型模块;
步骤S330,将各实体权限表对应的关联关系,确定为模型模块对应的关联关系。
一种实施方式中,根据每个约束项的配置信息中属性对象的个数及信息含量等特征,可以确定每个约束项是否需要实体权限表管理对应配置信息及需要通过哪种形式的实体权限表管理对应的配置信息,进而可以确定各约束项对应的实体权限表的信息。
根据约束项集中每个约束项的属性,可以确定约束项集中所有约束项之间的组合关系,例如某两个约束项为并列关系,某两个约束项为单独关联关系,进而可以根据约束项之间组合关系确定对应的实体权限表之间的关联关系,例如,某两个实体权限表为并列的表,某两个实体权限表为链接的表。
一种实施方式中,确定各约束项对应的实体权限表,并确定各实体权限表对应的关联关系,是确定用户通过权限配置平台中相关配置界面配置的实体权限表,以及在表中配置的关联字段。
一种实施例中,步骤S310中,确定各约束项对应的实体权限表,包括:
根据各约束项所对应配置信息,确定第一类约束项及第二类约束项,其中,第一类约束项的配置信息中包括至少两个属性对象的信息,所第二类约束项的配置信息中包括一个属性对象的信息;
确定各第一类约束项对应的权限关联表,各权限关联表分别用于管理对应第一类约束项的配置信息;
确定约束项集中所有约束项对应的一实体关联表,该实体关联表用于关联各权限关联表以及管理第二类约束项的配置信息;
将实体关联表及各权限关联表,确定为各约束项对应的实体权限表。
各约束项所对应配置信息中包括属性对象的信息,进而,可以依各约束项所对应配置信息中所对应属性对象的个数对约束项集中的约束项分类,确定出第一类约束项及第二类约束项。
某个约束项(第一类约束项)的配置信息中包括至少两个属性对象的信息时,该约束项与实体是多对一的关系,例如对于约束项“角色”,其配置信息中包括一个属性对象的信息“管理员”的信息,还包括另一个属性对象的信息“工作人员”的信息,其配置信息通过对应的权限关联“表”可以可靠表示。而若通过基本数据类型表示,在属性对象非常多时,管理混乱且管理困难。进而可以将每个第一类约束项的配置信息通过对应的权限关联表可靠表示。
另一个约束项(第二类约束项)的配置信息中包括一个属性对象的信息时,该约束项与实体是一对一的关系,例如对于约束项“过期时间”,其配置信息中仅包括一个属性对象的信息“9月21日”,其配置信息通过基本数据类型,例如int、string、time、float等数据类型,可以有效表示。进而可以将第二类约束项的配置信息集中管理于一实体关联表,该实体关联表还可以关联各权限关联表。
以这种方式,通过确定实体关联表及各权限关联表,可以有效确定出约束目标实体的权限时所需的实体权限表。
一种实施例中,步骤S310中,确定各实体权限表对应的关联关系,包括:
根据约束项集中各约束项的属性,确定各约束项之间的组合关系;
根据组合关系,确定各实体权限表对应的关联关系,其中,关联关系包括各实体关联表的层级,以及各实体权限表之间的关联关系。
组合关系与约束项对于权限的约束规则对应,各约束项之间的组合关系包括约束项之间的并列及单独关联等关系,例如,城市、技能及角色为并列关系,角色与访问节点为单独关联关系。
进而,可以根据约束项之间的组合关系,确定各实体权限表对应的关联关系,得到各实体关联表的层级(并列的两个约束项对应的实体权限表属于相同层级,单独关联于目标约束项的约束项为目标约束项的下一层级),以及各实体权限表之间的关联关系(单独关联的两个约束项对应的实体权限表之间为关联关系)。
步骤S240,利用各约束项的配置信息搭建各所述模型模块,并根据关联关系关联搭建好的模型模块,得到目标权限模型。
本示例的实施方式中,各模型模块分别用于管理目标配置信息,利用各约束项的配置信息,搭建实体权限表或者实体权限文件,可以得到具有实际约束信息的、目标实体的权限模型中对应的模型模块,并基于关联关系关联搭建好的模型模块,得到具有实际约束内容、形成约束规则的目标权限模型。
一种实施例中,关联关系包括实体关联表和各权限关联表的层级,以及实体关联表和各权限关联表之间的关联关系;步骤S240,利用各约束项的配置信息搭建各所述模型模块,并根据关联关系关联搭建好的模型模块,得到目标权限模型,包括:
在实体关联表中配置各第二类约束项的配置信息;
在各权限关联表中分别配置对应的第一类约束项的配置信息;
根据实体关联表和各权限关联表的层级,利用实体关联表和各权限关联表之间的关联关系,依次关联配置了配置信息后的实体关联表和各权限关联表,得到目标权限模型。
本实施例中所有实体权限表包括实体关联表和权限关联表两种。例如,如图10所示所有实体权限表共5个,其中包括1个实体关联表:用户权限表,4个权限关联表:角色表、城市表、要素表及访问权限树表。该权限模型为树形结构,每个节点对应一表。
实体关联表中可以集成所有第二类约束项的配置信息,通过基本数据类型表示,例如,每一行对应一第二类约束项,第二类约束项的配置信息通过基本数据类型表示。
各权限关联表中分别配置对应的第一类约束项的配置信息,例如,当多个属性对象也为并列关系时(如红绿灯和电子眼两个属性对象),通过一权限关联表管理该多个属性对象的信息;或者当多个属性对象为继承关系时(如海淀区继承北京市),通过一权限关联表管理该多个属性对象的信息。
然后,根据确定的实体关联表和各权限关联表的层级,以及实体关联表和各权限关联表之间的关联关系,可以在通过设置关联字段(例如在实体关联表中的目标字段配置目标权限关联表的标识,同时标记该目标字段的类型为关联字段),依次关联配置了配置信息后的实体关联表和各权限关联表。
步骤S250,基于目标权限模型生成目标实体的权限,以控制目标实体访问该权限对应的资源。
本示例的实施方式中,目标权限模型由多个基于约束项的配置信息搭建的模型模块关联而成。进而,通过解析目标权限模型可以生成目标实体的权限。目标实体可以对应有至少1个权限模型,可以解析得到目标实体的权限集合。
进而,可以基于目标实体的权限,可靠地控制目标实体访问该权限对应的资源。
以这种方式,基于步骤步骤S210-S250,可以动态地获取约束项集,并利用获取到的各约束项的配置信息搭建各模型模块,并根据关联关系关联搭建好的模型模块,快速构建出满足目标业务所需的目标权限模型;不仅可以支持常用的ACL(访问控制列表)、RBAC(基于角色的访问控制)、ABAC(基于属性的访问控制)等模型的构建,对于特殊需求的权限模型(例如组合的权限模型)也可以具有良好的兼容性,有效提升权限控制过程中权限模型扩展性以及易用性,保证对于越来越复杂的权限模型的可维护性及低成本。进而,基于目标权限模型生成目标实体的权限,控制目标实体访问权限对应的资源,可以有效提升资源的访问控制可靠性。
一种实施例中,实体关联表的层级为第一层,各权限关联表的层级大于等于第二层,第二层的权限关联表均关联于实体关联表,目标权限模型的结构为树形结构;步骤S250中,基于目标权限模型生成目标实体的权限,包括:
以第一层的实体关联表为根节点,遍历树形结构的目标权限模型中各节点所对应表中的字段,并按照字段所来源表的层级存储遍历到字段中的信息,得到目标实体的树形结构权限,其中,同一层级的两个表之间的字段中的信息为并列关系,该遍历过程包括:
遍历当前表中的每个字段,并获取每个字段的字段类型;当目标字段的字段类型为关联字段所对应类型时,以目标字段所关联的表作为新的当前表进行遍历,直到目标权限模型中所有节点扫描完成。
本实施例中,实体关联表的层级为第一层,各权限关联表的层级大于等于第二层,且第二层的权限关联表均关联于实体关联表,所以实体关联表集个权限关联表关联形成一个树形结构的目标权限模型,即实体关联表可看作根节点,第二层的权限关联表均关联于实体关联表形成第二层的节点,依次类推,后一层的权限关联表关联于前一层的某个权限关联表。
进而,从第一层的实体关联表作为当前表开始遍历,遍历当前表中的字段(字段中保存有约束项的配置信息),其中,在遍历过程中,若目标字段的字段类型为关联字段所对应类型(例如,字段类型为外键或者字段中标定有特点标记),说明目标字段为一个关联有其它表(例如第二层的某个权限关联表),此时,将其它表作为当前表同理遍历其中的字段,直到该其它表所在树分支遍历结束,返回继续遍历实体关联表中的字段,直到完成遍历,得到该目标权限模型对应的权限。
其中,每次遍历一字段时,如过字段非关联字段,按照字段所来源表的层级存储遍历到字段中的信息作为权限的组成信息,且同一层级的两个表之间的字段中的信息为并列关系,例如,"role_name":"管理员"与"cityid":"beijing"分别属于同一层级的两个表中的字段。
以这种方式,通过建立树形结构的多层结构的目标权限模型,可以可靠地基于目标实体的约束项集对应配置信息建立权限约束规则,进一步保证权限模型的可扩展性和对各种权限模型的兼容性,并可以通过遍历的方式进行,按照模型建立规则进行对应解析,得到最后的权限,进一步保证权限生成的可靠性。其中,遍历的方式可以是深度或者广度遍历。
一个示例中,通过进行深度或广度遍历,生成树形结构的JSON格式数据,可以通过对JSON文件解析得到权限集合。
一种实施例中,步骤S250中,控制目标实体访问权限对应的资源,包括:
通过定义鉴权资源标识协议,将权限关联于目标资源,得到关联该权限与目标资源的鉴权资源标识;
接收目标主体传递的目标资源标识,并通过判断目标资源标识与鉴权资源标识是否一致,控制目标主体对目标资源的访问。
定义鉴权资源标识协议可以是定义一个唯一标签,该唯一标签作为鉴权资源标识关联权限与目标资源,也可以是直接将生成的权限数据作为鉴权资源标识。
目标主体在访问目标资源时可以基于该鉴权资源标识进行鉴权,当目标主体传递的目标资源标识与鉴权资源标识一致时允许访问,当目标主体传递的目标资源标识与鉴权资源标识不一致时拒绝访问,实现基于基于资源对象控制的权限控制。
一种实施例中,步骤S250中,控制目标实体访问权限对应的资源,包括:
当目标实体登录目标平台后,根据权限渲染目标平台的应用界面,以使得该目标实体基于渲染后的应用界面访问目标资源。
当目标实体登录目标平台后,目标平台的应用可以根据目标实体的信息,从认证平台获取目标主体的权限,根据该权限渲染目标平台的应用的界面(例如显示有权访问的资源对应的访问控件),目标实体基于渲染后的应用界面访问目标资源,实现访问控制。
一种实施例中,前述实施例中的目标权限模型通过权限配置平台定义,所述目标主体的主体信息定义于账号平台,通过建立所述权限模型于所述主体信息的关联关系,建立所述目标主体与所述目标权限模型的关联关系。
权限配置平台和账号平台采用分层的架构设计,解耦用户和权限规则描述、权限模型设计带来的维护成本高、学习代价高的问题;通过单独抽象出权限配置平台对应的配置层,可以方便对配置层进行二次开发。
以下继续结合一种场景介绍本申请的前述实施例,该场景下交互方涉及三方:用户请求方(例如目标主体)、应用方(例如目标平台的应用)、服务方(例如单点登录(SingleSignOn,SSO)平台)。
图4示出了应用本申请实施例的一种场景下权限控制的流程图。参阅图4所示权限控制流程包括步骤S410-步骤S440。
步骤S410中,在目标平台侧,用户请求方注册目标平台的应用(例如根据用户的相关信息注册账号),并根据权限配置平台,结合业务自身需求(例如地图资源管理业务),通过平台动态定义实体权限表(例如图7所示的用户权限表)以及表中各字段的对应的配置信息,配置信息包括字段的类型,例如外键,外键用于关联另外一组实体权限表,通过表字段之间的关联关系,实现应用步骤S210-步骤S240中的实施例自定义构造图7所示的权限模型(由权限配置平台中的实体权限表组成)。例如,可以通过如图5所示的权限配置平台中的界面动态定义用户权限表(即实体关联表),可以通过如图6所示的权限配置平台中的界面动态定义角色表(即权限关联表),可以通过如图7所示的权限配置平台中的界面动态定义访问权限树表(即权限关联表)。
以及通过关联账户平台中的用户表与权限配置平台的用户权限表,描绘出用户与权限模型的对应关系;以及通过权限配置平台定义鉴权资源标识协议,定义资源对应的唯一鉴权资源标识(资源ID)。
一种实施方式中,权限配置平台提供了混合模型模板,该混合模型模板可以根据通过模板的形式集成各实体权限表中的配置信息和关联关系,一键式生成权限模板,方便进行用户权限的分配。
步骤S420中,用户在目标平台侧注册之后,通过请求向服务方申请应用权限,在服务方的权限管理平台(例如如图8所示的账号平台)下,管理员可以审核请求(其中可以包括用户相关信息及权限模型的内容及鉴权资源标识协议的内容),并分配该目标平台下的权限。其中,管理员可以通过如图8所示的权限配置平台中的界面进行不同用户的权限的管理(包括权限审核及分配)等,例如,管理员可以通过左侧的“用户管理”界面查询目标用户的审核请求信息,进而点击如用户“小明”对应的字段,触发右侧的“用户权限”界面,进行“小明”的权限的审核及分配。
步骤S430中,用户在登录目标平台之后,应用方会根据用户的相关信息请求目标平台下的权限,服务方可以应用步骤S250中实施例基于权限模型生成用户的权限并返回,应用方根据返回的权限集合,渲染应用的界面、包括菜单和控件等。
步骤S440中,当用户通过渲染后的应用界面,请求页面的资源ID之后,根据前后端协议,传递资源标识ID号,应用方根据用户的权限集合,判断该资源标识ID号是否存在于权限集合当中,判断是否返回资源信息;如果存在,则返回资源ID对应的资源信息,否则返回提示无权限。
图9示出了基于图4所示实施例的一种场景下鉴权交互的流程图。参阅图9所示鉴权交互流程包括步骤S510-步骤S530。
步骤S510中,用户发起资源请求,应用方接收到资源请求,向服务方发送服务方授予用户的凭证(ticket),服务方根据凭证(ticket)返回用户及对应的权限信息。
步骤S520中,应用方判断用户是否登录平台,如果没有登录则启动重定向登录,用户从服务方重新获取凭证(ticket)跳转到服务方的系统进行身份认证,服务方再次确定用户是否登录平台,没有登录显示登录页面,在确定登录后返回凭证(ticket)给用户方,使用户方基于返回的凭证(ticket)访问应用,此时,应用方根据资源请求中的资源ID,判断该资源ID是否包含于步骤S510中服务方根据凭证(ticket)返回的权限中。
步骤S530中,应用方确定该资源ID包含于步骤S510中服务方根据凭证(ticket)返回的权限中,则响应用户方的请求;如果确定该资源ID没有包含于步骤S510中服务方根据凭证(ticket)返回的权限中,则向用户返回无权访问。
进而实现用户单点登录的基础上进行资源访问鉴权。
图10示出了基于图4所示实施例的一种场景下权限模型的示意图。图11示出了基于图10所示实施例的生成权限的流程图。
参阅图10所示,该权限模型定义于业务平台(即权限配置平台)该权限模型包括实体关联表:用户权限表,权限关联表:角色表、城市表、要素表及访问权限树表。该权限模型为树形结构,每个节点对应一表。
其中,用户权限表还关联了账号平台(例如地图应用对应平台)中的用户表(非权限模型中的模块)。
参阅图11所示生成权限的流程包括步骤S710-步骤S740。
步骤S710,从用户权限表为根节点,遍历整棵树(即树形结构的权限模型),并初始化根节点对应的JSON节点;
步骤S720,读取当前表(默认开始为图6中用户权限表(user_role))中的每个字段,并遍历字段类型;
步骤S730,通过判断每个遍历的字段的类型是否是外键,判断字段是否是关联字段,从而确定字段是否关联其他表(权限关联表),并在目标字段关联其他表时,生成其他表所在节点对应的JSON新节点。例如字段role_fk_id的类型为外键,字段role_fk_id为关联字段,关联角色表tb_role(权限关联表),则将角色表tb_role作为当前表,生成JSON新节点,进入步骤S720;
步骤S740,判断遍历的字段的类型不是外键,例如字段remark为基本数据类型,则该字段非关联字段,没有关联表,将该字段中的信息添加为根节点对应的JSON节点的子节点的值,并将结束该目标字段的遍历。同理,对JSON新节点对应的其他表中非关联字段进行处理。
整体过程递归遍历直至所有节点扫描完成。
这样可以从用户权限表为树根,进行深度或广度遍历,生成权限相关的树形结构的JSON格式数据文件,通过对JSON格式数据文件解析权限集合;当前端发起请求对应的鉴权资源标识时,进行鉴权。
其中,参阅图12,示出步骤S440中,具体基于获取用户和权限相关的树形结构的JSON格式数据,并基于JSON格式数据进行访问权限控制的鉴权逻辑,包括步骤S810至步骤S860。
步骤S810中用户通过应用方请求进行资源访问(根据前后端协议,传递资源标识ID号),触发权限控制模块的权限控制;步骤S820中,服务方根据权限生成模块得到JSON格式数据返回给应用方;步骤S830中,应用方(前端)判断发起请求的资源标识(资源标识ID号)是否属于用户权限集合(JSON格式数据)的子集;步骤S840中,判断属于用户权限集合(JSON格式数据)的子集,则返回资源数据;步骤S850中,判断不属于用户权限集合(JSON格式数据)的子集,则确定无权访问;步骤S860中,结束鉴权逻辑。
对于步骤S830至步骤S850,针对JSON格式数据文件样式,以一个用户的权限举例说明,如下JSON格式数据文件表示该用户拥有两个权限,一个是北京的管理员,另一个是上海的作业员:
[
{"role_name":"管理员","cityid":"beijing","ACL":["read_mark","write_mark"]},
{"role_name":"作业员","cityid":"shanghai","ACL":["read_mark"]}
]。
其中,依照权限模型设计规则:同一层字段属性表示且关系,表示多字段之间组合关系,例如,字段"cityid"与字段"shanghai"为且关系。
进而,当前端请求资源标识为{"cityid":"beijing","ACL":["read_mark"]},通过权限集合读取属性可知,有操作权限;当前端请求资源标识为{"cityid":"shanghai","ACL":["write_mark"]},通过权限集合读取属性可知,无操作权限。
该场景下,通过动态权限实体表设计及表字段关联的方式构建用户实体的权限模型,可以友好的解决数据一对一、一对多的数据展示形式(例如目标实体的角色只有一个属性对象时,相对目标主体数据为一对一的展示形式;目标实体的角色有至少两个属性对象时,相对目标主体数据为一对多的展示形式),根据目标实体的约束项的配置信息的实际情况,不仅仅可以设计成RBAC(基于角色的访问控制)、ACL(访问控制列表)、ABAC(基于属性的访问控制)、域RBAC(基于域角色的访问控制)等常见的权限模型,也可以支持组合形式的权限模型;根据不同具体场景、组织架构等实际约束环境,可通过数字、文本、小数等基本数据类型表示约束项的配置信息,也可以通过列表(例如红绿灯与并列的电子眼组成的列表)、树形结构(例如北京市、海淀区及某街道按照级别继承形成的树形结构)表示,任意组成产品需求的权限模型。
权限配置平台和账号平台采用分层的架构设计,解耦用户和权限规则描述、权限模型设计带来的维护成本高、学习代价高的问题;通过单独抽象出权限配置平台对应的配置层,可以方便对配置层进行二次开发。
基于统一的权限生成算法(遍历权限模型中节点的算法),支持的所有模型,例如RBAC、ABAC、ACL等模型,均可以采用统一的权限设计模型,更好维护和理解。
访问控制采用易于理解的JSON格式数据文件,可以方便前后端开发人员理解、对权限进行鉴权开发,省去去复杂模型策略policy的设计和学习。
为便于更好的实施本申请实施例提供的权限控制方法,本申请实施例还提供一种基于上述权限控制方法的权限控制装置。其中名词的含义与上述权限控制方法中相同,具体实现细节可以参考方法实施例中的说明。图8示出了根据本申请的一个实施例的权限控制装置的框图。
如图13所示,权限控制装置900中可以包括确定单元910、获取单元920、分析单元930、构建单元940及控制单元950。
确定单元910可以用于确定目标实体的权限的约束项集,所述约束项集中包括至少一个约束项;获取单元920可以用于获取所述约束项集中每个所述约束项的属性和配置信息;分析单元930可以用于根据所述约束项集中每个所述约束项的属性和配置信息,确定所述目标实体的权限模型中对应的模型模块及所述模型模块对应的关联关系;构建单元940可以用于利用各所述约束项的配置信息搭建各所述模型模块,并根据所述关联关系关联搭建好的模型模块,得到目标权限模型;控制单元950可以用于基于所述目标权限模型生成所述目标实体的权限,以控制所述目标实体访问所述权限对应的资源。
在本申请的一些实施例中,所述分析单元包括:分析子单元,用于根据所述约束项集中每个所述约束项的属性和配置信息,确定各所述约束项对应的实体权限表,并确定各所述实体权限表对应的关联关系,所述实体权限表用于管理各所述约束项所对应配置信息;第一确定子单元,用于将各所述约束项对应的实体权限表,确定为所述目标实体的权限模型中对应的模型模块;第二确定子单元,用于将各所述实体权限表对应的关联关系,确定为所述模型模块对应的关联关系。
在本申请的一些实施例中,所述分析子单元,用于:根据各所述约束项所对应配置信息,确定第一类约束项及第二类约束项,其中,所述第一类约束项的配置信息中包括至少两个属性对象的信息,所述第二类约束项的配置信息中包括一个属性对象的信息;确定各所述第一类约束项对应的权限关联表,各所述权限关联表分别用于管理对应第一类约束项的配置信息;确定所述约束项集中所有所述约束项对应的一实体关联表,所述实体关联表用于关联各所述权限关联表以及管理所述第二类约束项的配置信息;将所述实体关联表及各所述权限关联表,确定为各所述约束项对应的实体权限表。
在本申请的一些实施例中,所述分析子单元,用于:根据所述约束项集中各所述约束项的属性,确定各所述约束项之间的组合关系;根据所述组合关系,确定各所述实体权限表对应的关联关系,其中,所述关联关系包括各所述实体关联表的层级,以及各所述实体权限表之间的关联关系。
在本申请的一些实施例中,所述关联关系包括所述实体关联表和各所述权限关联表的层级,以及所述实体关联表和各所述权限关联表之间的关联关系;
所述构建单元,用于:在所述实体关联表中配置各所述第二类约束项的配置信息;在各所述权限关联表中分别配置对应的第一类约束项的配置信息;根据所述实体关联表和各所述权限关联表的层级,以及所述实体关联表和各所述权限关联表之间的关联关系,依次关联配置了配置信息后的所述实体关联表和各所述权限关联表,得到所述目标权限模型。
在本申请的一些实施例中,所述实体关联表的层级为第一层,各所述权限关联表的层级大于等于第二层,第二层的所述权限关联表均关联于所述实体关联表,所述目标权限模型的结构为树形结构;
所述控制单元,用于:以第一层的所述实体关联表为根节点,遍历树形结构的所述目标权限模型中各节点所对应表中的字段,并按照字段所来源表的层级存储遍历到字段中的信息,得到所述目标实体的树形结构权限,其中,同一层级的两个表之间的字段中的信息为并列关系,所述遍历过程包括:遍历当前表中的每个字段,并获取每个字段的字段类型;当目标字段的字段类型为所述关联字段所对应类型时,以所述目标字段所关联的表作为新的当前表进行遍历,直到所述目标权限模型中所有节点扫描完成。
在本申请的一些实施例中,所述控制单元,用于:通过定义鉴权资源标识协议,将所述权限关联于目标资源,得到关联所述权限与所述目标资源的鉴权资源标识;接收所述目标主体传递的目标资源标识,并通过判断所述目标资源标识与所述鉴权资源标识是否一致,控制所述目标主体对所述目标资源的访问。
在本申请的一些实施例中,所述控制单元,用于:当所述目标实体登录目标平台后,根据所述权限渲染所述目标平台的应用界面,以使得所述目标实体基于渲染后的应用界面访问目标资源。
以这种方式,基于权限控制装置900,可以动态地获取约束项集,并利用获取到的各约束项的配置信息搭建各模型模块,并根据关联关系关联搭建好的模型模块,快速构建出满足目标业务所需的目标权限模型;不仅可以支持常用的ACL(访问控制列表)、RBAC(基于角色的访问控制)、ABAC(基于属性的访问控制)等模型的构建,对于特殊需求的权限模型(例如组合的权限模型)也可以具有良好的兼容性,有效提升权限控制过程中权限模型扩展性以及易用性,保证对于越来越复杂的权限模型的可维护性及低成本。进而,基于目标权限模型生成目标实体的权限,控制目标实体访问权限对应的资源,可以有效提升资源的访问控制可靠性。
应当注意,尽管在上文详细描述中提及了用于动作执行的设备的若干模块或者单元,但是这种划分并非强制性的。实际上,根据本申请的实施方式,上文描述的两个或更多模块或者单元的特征和功能可以在一个模块或者单元中具体化。反之,上文描述的一个模块或者单元的特征和功能可以进一步划分为由多个模块或者单元来具体化。
此外,本申请实施例还提供一种电子设备,该电子设备可以为终端或者服务器,如图14所示,其示出了本申请实施例所涉及的电子设备的结构示意图,具体来讲:
该电子设备可以包括一个或者一个以上处理核心的处理器1001、一个或一个以上计算机可读存储介质的存储器1002、电源1003和输入单元1004等部件。本领域技术人员可以理解,图14中示出的电子设备结构并不构成对电子设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。其中:
处理器1001是该电子设备的控制中心,利用各种接口和线路连接整个计算机设备的各个部分,通过运行或执行存储在存储器1002内的软件程序和/或模块,以及调用存储在存储器1002内的数据,执行计算机设备的各种功能和处理数据,从而对电子设备进行整体监控。可选的,处理器1001可包括一个或多个处理核心;优选的,处理器1001可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户页面和应用程序等,调制解调处理器主要处理无线通讯。可以理解的是,上述调制解调处理器也可以不集成到处理器1001中。
存储器1002可用于存储软件程序以及模块,处理器1001通过运行存储在存储器1002的软件程序以及模块,从而执行各种功能应用以及数据处理。存储器1002可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据计算机设备的使用所创建的数据等。此外,存储器1002可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。相应地,存储器1002还可以包括存储器控制器,以提供处理器1001对存储器1002的访问。
电子设备还包括给各个部件供电的电源1003,优选的,电源1003可以通过电源管理系统与处理器1001逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗管理等功能。电源1003还可以包括一个或一个以上的直流或交流电源、再充电系统、电源故障检测电路、电源转换器或者逆变器、电源状态指示器等任意组件。
该电子设备还可包括输入单元1004,该输入单元1004可用于接收输入的数字或字符信息,以及产生与用户设置以及功能控制有关的键盘、鼠标、操作杆、光学或者轨迹球信号输入。
尽管未示出,电子设备还可以包括显示单元等,在此不再赘述。具体在本实施例中,电子设备中的处理器1001会按照如下的指令,将一个或一个以上的应用程序的进程对应的可执行文件加载到存储器1002中,并由处理器1001来运行存储在存储器1002中的应用程序,从而实现各种功能,如下:
确定目标实体的权限的约束项集,所述约束项集中包括至少一个约束项;
获取所述约束项集中每个所述约束项的属性和配置信息;
根据所述约束项集中每个所述约束项的属性和配置信息,确定所述目标实体的权限模型中对应的模型模块及所述模型模块对应的关联关系;
利用各所述约束项的配置信息搭建各所述模型模块,并根据所述关联关系关联搭建好的模型模块,得到目标权限模型;
基于所述目标权限模型生成所述目标实体的权限,以控制所述目标实体访问所述权限对应的资源。
一种实施例中,所述根据所述约束项集中每个所述约束项的属性和配置信息,确定所述目标实体的权限模型中对应的模型模块及所述模型模块对应的关联关系,包括:
根据所述约束项集中每个所述约束项的属性和配置信息,确定各所述约束项对应的实体权限表,并确定各所述实体权限表对应的关联关系,所述实体权限表用于管理各所述约束项所对应配置信息;
将各所述约束项对应的实体权限表,确定为所述目标实体的权限模型中对应的模型模块;
将各所述实体权限表对应的关联关系,确定为所述模型模块对应的关联关系。
一种实施例中,所述确定各所述约束项对应的实体权限表,包括:
根据各所述约束项所对应配置信息,确定第一类约束项及第二类约束项,其中,所述第一类约束项的配置信息中包括至少两个属性对象的信息,所述第二类约束项的配置信息中包括一个属性对象的信息;
确定各所述第一类约束项对应的权限关联表,各所述权限关联表分别用于管理对应第一类约束项的配置信息;
确定所述约束项集中所有所述约束项对应的一实体关联表,所述实体关联表用于关联各所述权限关联表以及管理所述第二类约束项的配置信息;
将所述实体关联表及各所述权限关联表,确定为各所述约束项对应的实体权限表。
一种实施例中,所述确定各所述实体权限表对应的关联关系,包括:
根据所述约束项集中各所述约束项的属性,确定各所述约束项之间的组合关系;
根据所述组合关系,确定各所述实体权限表对应的关联关系,其中,所述关联关系包括各所述实体关联表的层级,以及各所述实体权限表之间的关联关系。
一种实施例中,所述关联关系包括所述实体关联表和各所述权限关联表的层级,以及所述实体关联表和各所述权限关联表之间的关联关系;
所述利用各所述约束项的配置信息搭建各所述模型模块,并根据所述关联关系关联搭建好的模型模块,得到目标权限模型,包括:
在所述实体关联表中配置各所述第二类约束项的配置信息;
在各所述权限关联表中分别配置对应的第一类约束项的配置信息;
根据所述实体关联表和各所述权限关联表的层级,以及所述实体关联表和各所述权限关联表之间的关联关系,依次关联配置了配置信息后的所述实体关联表和各所述权限关联表,得到所述目标权限模型。
一种实施例中,所述实体关联表的层级为第一层,各所述权限关联表的层级大于等于第二层,第二层的所述权限关联表均关联于所述实体关联表,所述目标权限模型的结构为树形结构;
所述基于所述目标权限模型生成所述目标实体的权限,包括:
以第一层的所述实体关联表为根节点,遍历树形结构的所述目标权限模型中各节点所对应表中的字段,并按照字段所来源表的层级存储遍历到字段中的信息,得到所述目标实体的树形结构权限,其中,同一层级的两个表之间的字段中的信息为并列关系,所述遍历过程包括:
遍历当前表中的每个字段,并获取每个字段的字段类型;
当目标字段的字段类型为所述关联字段所对应类型时,以所述目标字段所关联的表作为新的当前表进行遍历,直到所述目标权限模型中所有节点扫描完成。
一种实施例中,所述控制所述目标实体访问所述权限对应的资源,包括:
通过定义鉴权资源标识协议,将所述权限关联于目标资源,得到关联所述权限与所述目标资源的鉴权资源标识;
接收所述目标主体传递的目标资源标识,并通过判断所述目标资源标识与所述鉴权资源标识是否一致,控制所述目标主体对所述目标资源的访问。
一种实施例中,所述控制所述目标实体访问所述权限对应的资源,包括:
当所述目标实体登录目标平台后,根据所述权限渲染所述目标平台的应用界面,以使得所述目标实体基于渲染后的应用界面访问目标资源。
以上各个操作的具体实施可参见前面的实施例,在此不再赘述。
根据本申请的一个方面,提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行本申请上述实施例中各种可选实现方式中提供的方法。
本领域普通技术人员可以理解,上述实施例的各种方法中的全部或部分步骤可以通过计算机程序来完成,或通过计算机程序控制相关的硬件来完成,该计算机程序可以存储于一计算机可读存储介质中,并由处理器进行加载和执行。
为此,本申请实施例还提供一种存储介质,其中存储有计算机程序,该计算机程序能够被处理器进行加载,以执行本申请实施例所提供的任一种方法中的步骤。
其中,该存储介质可以包括:只读存储器(ROM,Read Only Memory)、随机存取记忆体(RAM,Random Access Memory)、磁盘或光盘等。
由于该存储介质中所存储的计算机程序,可以执行本申请实施例所提供的任一种方法中的步骤,因此,可以实现本申请实施例所提供的方法所能实现的有益效果,详见前面的实施例,在此不再赘述。
以上对本申请实施例所提供的方案进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。

Claims (10)

1.一种权限控制方法,其特征在于,所述方法包括:
确定目标实体的权限的约束项集,所述约束项集中包括至少一个约束项;
获取所述约束项集中每个所述约束项的属性和配置信息;
根据所述约束项集中每个所述约束项的属性和配置信息,确定所述目标实体的权限模型中对应的模型模块及所述模型模块对应的关联关系,所述关联关系包括实体关联表和各权限关联表的层级,以及所述实体关联表和各所述权限关联表之间的关联关系;
利用各所述约束项的配置信息搭建各所述模型模块,并根据所述关联关系关联搭建好的模型模块,得到目标权限模型;
基于所述目标权限模型生成所述目标实体的权限,以控制所述目标实体访问所述权限对应的资源;
所述利用各所述约束项的配置信息搭建各所述模型模块,并根据所述关联关系关联搭建好的模型模块,得到目标权限模型,包括:
在所述实体关联表中配置各第二类约束项的配置信息;
在各所述权限关联表中分别配置对应的第一类约束项的配置信息;
根据所述实体关联表和各所述权限关联表的层级,以及所述实体关联表和各所述权限关联表之间的关联关系,依次关联配置了配置信息后的所述实体关联表和各所述权限关联表,得到所述目标权限模型。
2.根据权利要求1所述的方法,其特征在于,所述根据所述约束项集中每个所述约束项的属性和配置信息,确定所述目标实体的权限模型中对应的模型模块及所述模型模块对应的关联关系,包括:
根据所述约束项集中每个所述约束项的属性和配置信息,确定各所述约束项对应的实体权限表,并确定各所述实体权限表对应的关联关系,所述实体权限表用于管理各所述约束项所对应配置信息;
将各所述约束项对应的实体权限表,确定为所述目标实体的权限模型中对应的模型模块;
将各所述实体权限表对应的关联关系,确定为所述模型模块对应的关联关系。
3.根据权利要求2所述的方法,其特征在于,所述确定各所述约束项对应的实体权限表,包括:
根据各所述约束项所对应配置信息,确定第一类约束项及第二类约束项,其中,所述第一类约束项的配置信息中包括至少两个属性对象的信息,所述第二类约束项的配置信息中包括一个属性对象的信息;
确定各所述第一类约束项对应的权限关联表,各所述权限关联表分别用于管理对应第一类约束项的配置信息;
确定所述约束项集中所有所述约束项对应的一实体关联表,所述实体关联表用于关联各所述权限关联表以及管理所述第二类约束项的配置信息;
将所述实体关联表及各所述权限关联表,确定为各所述约束项对应的实体权限表。
4.根据权利要求2所述的方法,其特征在于,所述确定各所述实体权限表对应的关联关系,包括:
根据所述约束项集中各所述约束项的属性,确定各所述约束项之间的组合关系;
根据所述组合关系,确定各所述实体权限表对应的关联关系,其中,所述关联关系包括各所述实体关联表的层级,以及各所述实体权限表之间的关联关系。
5.根据权利要求1所述的方法,其特征在于,所述实体关联表的层级为第一层,各所述权限关联表的层级大于等于第二层,第二层的所述权限关联表均关联于所述实体关联表,所述目标权限模型的结构为树形结构;
所述基于所述目标权限模型生成所述目标实体的权限,包括:
以第一层的所述实体关联表为根节点,遍历树形结构的所述目标权限模型中各节点所对应表中的字段,并按照字段所来源表的层级存储遍历到字段中的信息,得到所述目标实体的树形结构权限,其中,同一层级的两个表之间的字段中的信息为并列关系,所述遍历过程包括:
遍历当前表中的每个字段,并获取每个字段的字段类型;
当目标字段的字段类型为关联字段所对应类型时,以所述目标字段所关联的表作为新的当前表进行遍历,直到所述目标权限模型中所有节点扫描完成。
6.根据权利要求1至5任一项所述的方法,其特征在于,所述控制所述目标实体访问所述权限对应的资源,包括:
通过定义鉴权资源标识协议,将所述权限关联于目标资源,得到关联所述权限与所述目标资源的鉴权资源标识;
接收目标主体传递的目标资源标识,并通过判断所述目标资源标识与所述鉴权资源标识是否一致,控制所述目标主体对所述目标资源的访问。
7.根据权利要求1至5任一项所述的方法,其特征在于,所述控制所述目标实体访问所述权限对应的资源,包括:
当所述目标实体登录目标平台后,根据所述权限渲染所述目标平台的应用界面,以使得所述目标实体基于渲染后的应用界面访问目标资源。
8.一种权限控制装置,其特征在于,所述装置包括:
确定单元,用于确定目标实体的权限的约束项集,所述约束项集中包括至少一个约束项;
获取单元,用于获取所述约束项集中每个所述约束项的属性和配置信息;
分析单元,用于根据所述约束项集中每个所述约束项的属性和配置信息,确定所述目标实体的权限模型中对应的模型模块及所述模型模块对应的关联关系,所述关联关系包括实体关联表和各权限关联表的层级,以及所述实体关联表和各所述权限关联表之间的关联关系;
构建单元,用于利用各所述约束项的配置信息搭建各所述模型模块,并根据所述关联关系关联搭建好的模型模块,得到目标权限模型;所述利用各所述约束项的配置信息搭建各所述模型模块,并根据所述关联关系关联搭建好的模型模块,得到目标权限模型,包括:在所述实体关联表中配置各第二类约束项的配置信息,在各所述权限关联表中分别配置对应的第一类约束项的配置信息,根据所述实体关联表和各所述权限关联表的层级,以及所述实体关联表和各所述权限关联表之间的关联关系,依次关联配置了配置信息后的所述实体关联表和各所述权限关联表,得到所述目标权限模型;
控制单元,用于基于所述目标权限模型生成所述目标实体的权限,以控制所述目标实体访问所述权限对应的资源。
9.一种计算机存储介质,其上存储有计算机可读指令,当所述计算机可读指令被计算机的处理器执行时,使计算机执行权利要求1-7任一项所述的方法。
10.一种电子设备,其特征在于,包括:存储器,存储有计算机可读指令;处理器,读取存储器存储的计算机可读指令,以执行权利要求1至7任一项所述的方法。
CN202110190564.6A 2021-02-18 2021-02-18 一种权限控制方法、装置及存储介质 Active CN112883390B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110190564.6A CN112883390B (zh) 2021-02-18 2021-02-18 一种权限控制方法、装置及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110190564.6A CN112883390B (zh) 2021-02-18 2021-02-18 一种权限控制方法、装置及存储介质

Publications (2)

Publication Number Publication Date
CN112883390A CN112883390A (zh) 2021-06-01
CN112883390B true CN112883390B (zh) 2022-04-22

Family

ID=76056574

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110190564.6A Active CN112883390B (zh) 2021-02-18 2021-02-18 一种权限控制方法、装置及存储介质

Country Status (1)

Country Link
CN (1) CN112883390B (zh)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113378119B (zh) * 2021-06-25 2023-04-07 成都卫士通信息产业股份有限公司 一种软件授权方法、装置、设备及存储介质
CN113379300B (zh) * 2021-06-29 2023-04-25 浪潮通用软件有限公司 一种动态配置数据权限控制粒度的方法、设备及介质
CN113780789A (zh) * 2021-09-02 2021-12-10 科大国创云网科技有限公司 一种统一数据访问服务型的细粒度权限控制方法及系统
CN116266793A (zh) * 2021-12-17 2023-06-20 华为技术有限公司 访问控制方法及其相关装置
CN115618387B (zh) * 2022-10-21 2024-02-06 上海和今信息科技有限公司 基于abac的鉴权方法、装置、设备及计算机可读介质
CN117077120B (zh) * 2023-10-18 2024-02-09 深圳竹云科技股份有限公司 应用系统权限解析方法、装置、计算机设备、及介质

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102104607A (zh) * 2011-03-10 2011-06-22 易程(苏州)软件股份有限公司 访问业务的安全控制方法、装置及系统
CN104573480A (zh) * 2015-02-10 2015-04-29 国家电网公司 一种权限处理方法和系统
CN109688120A (zh) * 2018-12-14 2019-04-26 浙江大学 基于改进RBAC模型及Spring Security框架的动态权限管理系统
CN110197074A (zh) * 2018-04-11 2019-09-03 腾讯科技(深圳)有限公司 一种用户权限控制方法及装置
CN111079104A (zh) * 2019-11-21 2020-04-28 腾讯科技(深圳)有限公司 一种权限控制方法、装置、设备及存储介质
CN111199028A (zh) * 2020-01-06 2020-05-26 深圳壹账通智能科技有限公司 资源信息访问方法、装置、计算机设备和存储介质

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7069537B2 (en) * 2003-08-19 2006-06-27 Oracle International Corporation Techniques for partial loading of a configuration associated with a configuration model
US8590011B1 (en) * 2005-02-24 2013-11-19 Versata Development Group, Inc. Variable domain resource data security for data processing systems
CN102130894A (zh) * 2010-01-12 2011-07-20 大唐移动通信设备有限公司 鉴权和认证方法及系统
CN102339367A (zh) * 2010-07-27 2012-02-01 中兴通讯股份有限公司 一种权限控制方法及装置
CN102456103A (zh) * 2010-10-26 2012-05-16 王芳 一种改进的rbac访问控制模型
CN102882834B (zh) * 2011-07-13 2015-09-02 阿里巴巴集团控股有限公司 一种权限控制方法及装置
US9710821B2 (en) * 2011-09-15 2017-07-18 Stephan HEATH Systems and methods for mobile and online payment systems for purchases related to mobile and online promotions or offers provided using impressions tracking and analysis, location information, 2D and 3D mapping, mobile mapping, social media, and user behavior and
US9286475B2 (en) * 2012-02-21 2016-03-15 Xerox Corporation Systems and methods for enforcement of security profiles in multi-tenant database
CN103049684B (zh) * 2012-12-21 2015-08-12 大唐软件技术股份有限公司 一种基于rbac模型扩展的数据权限控制方法和系统
CN103729450B (zh) * 2013-12-31 2017-11-14 深圳市科漫达智能管理科技有限公司 一种集中管理功能权限的方法及装置
CN106095939B (zh) * 2016-06-12 2018-04-20 腾讯科技(深圳)有限公司 账户权限的获取方法和装置
CN108776756A (zh) * 2018-06-04 2018-11-09 北京奇虎科技有限公司 资源权限管理方法及装置
CN110727936B (zh) * 2019-08-26 2022-10-21 上海商米科技集团股份有限公司 为应用授权的方法和设备
CN111488595B (zh) * 2020-03-27 2023-03-28 腾讯科技(深圳)有限公司 用于实现权限控制的方法及相关设备
CN111475841B (zh) * 2020-04-07 2023-04-14 腾讯科技(深圳)有限公司 一种访问控制的方法、相关装置、设备、系统及存储介质
CN112182622A (zh) * 2020-10-12 2021-01-05 上海赛可出行科技服务有限公司 一种基于资源控制的权限管理系统设计方法

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102104607A (zh) * 2011-03-10 2011-06-22 易程(苏州)软件股份有限公司 访问业务的安全控制方法、装置及系统
CN104573480A (zh) * 2015-02-10 2015-04-29 国家电网公司 一种权限处理方法和系统
CN110197074A (zh) * 2018-04-11 2019-09-03 腾讯科技(深圳)有限公司 一种用户权限控制方法及装置
CN109688120A (zh) * 2018-12-14 2019-04-26 浙江大学 基于改进RBAC模型及Spring Security框架的动态权限管理系统
CN111079104A (zh) * 2019-11-21 2020-04-28 腾讯科技(深圳)有限公司 一种权限控制方法、装置、设备及存储介质
CN111199028A (zh) * 2020-01-06 2020-05-26 深圳壹账通智能科技有限公司 资源信息访问方法、装置、计算机设备和存储介质

Also Published As

Publication number Publication date
CN112883390A (zh) 2021-06-01

Similar Documents

Publication Publication Date Title
CN112883390B (zh) 一种权限控制方法、装置及存储介质
CN104598257B (zh) 远程应用程序运行的方法和装置
KR101432317B1 (ko) 자원 인가 정책으로의 역할 기반 접근 제어 정책의 변환
US9047462B2 (en) Computer account management system and realizing method thereof
CN113297550A (zh) 权限控制的方法、装置、设备、存储介质及程序产品
US8990900B2 (en) Authorization control
US11888856B2 (en) Secure resource authorization for external identities using remote principal objects
CN108092945B (zh) 访问权限的确定方法和装置、终端
AU2020401547A1 (en) Method and apparatus for implementing a role-based access control clustering machine learning model execution module
CN113508383B (zh) 数据库对象上以容器为中心的访问控制
US11233800B2 (en) Secure resource authorization for external identities using remote principal objects
CN101729541B (zh) 多业务平台的资源访问方法及系统
CN106528269B (zh) 轻量级的虚拟机访问控制系统及控制方法
CN111062028B (zh) 权限管理方法及装置、存储介质、电子设备
CN114239060B (zh) 数据获取方法、装置、电子设备及存储介质
CN107438067A (zh) 一种基于mesos容器云平台的多租户构建方法及系统
CN114650170B (zh) 跨集群资源管理方法、装置、设备和存储介质
CN115422526B (zh) 角色权限管理方法、设备及存储介质
Sette et al. Authorization policy federation in heterogeneous multicloud environments
CN115022020B (zh) 一种基于多维集合计算的访问控制方法及系统
CN115955346A (zh) 一种基于身份认证体系的多租户管理系统及方法
US20140189715A1 (en) Conversion of lightweight object to a heavyweight object
Li et al. Research and Design of Docker Technology Based Authority Management System
JP2003271555A (ja) アクセス制御付ディレクトリ機能装置、アクセス制御付ディレクトリ機能方法、アクセス制御付ディレクトリ機能プログラムおよび記録媒体
CN102223383B (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