一种访问控制方法、装置及计算机可读存储介质与流程

专利2022-06-29  126


本发明属于权限管理领域,具体涉及一种访问控制方法、装置及计算机可读存储介质。



背景技术:

本部分旨在为权利要求书中陈述的本发明的实施方式提供背景或上下文。此处的描述不因为包括在本部分中就承认是现有技术。

权限管理一般涉及功能权限管理和数据权限管理。其中,功能权限通常基于成熟的rbac(基于角色的权限访问控制)机制实现;而针对数据权限管理的通用化技术不多,一般采用将数据权限逻辑集成到具体的业务代码中。

当前,管理类系统通常则存在着“弱账户强业务”的特点,然而现有的数据权限实现方式存在以下问题(1)动态化授权导致权限判定复杂,业务资源通常会在各类角色或用户中动态化流转;当需要判定权限关系时,需要追溯大量业务场景,判定逻辑复杂。(2)隐性依赖关系导致权限边界界定模糊,在管理类系统中,业务资源之间有时会存在业务关系上的隐性依赖,继而带来授权关系上的隐性继承,由此导致业务资源的权限边界界定规则不清晰。例如,在采购系统中,由需求部门员工提出采购需求,需求部门员工具有访问该采购需求信息(一种业务资源)的权限,由采购部门员工针对该需求部门提交的采购需求提出采购项目,该采购部门员工具有访问该采购项目信息(另一种业务资源)的权限,在采购流程中,该采购部门员工应当被允许访问采购项目所关联的采购需求信息,然而由于其仅被授予采购项目的访问权限,并无采购需求的直接授权操作,由此导致常规的权限界定规则失效。给管理类系统的权限管理带来很大的不便。



技术实现要素:

针对上述现有技术中存在的问题,提出了一种访问控制方法、装置及计算机可读存储介质,利用这种方法、装置及计算机可读存储介质,能够解决上述问题。

本发明提供了以下方案。

第一方面,提供一种访问控制方法,包括:接收用户的访问请求,访问请求包含用户信息和目标业务资源;根据用户信息确定该用户的资源权限树,其中,预先根据多个业务资源和多个用户之间的授权关系以及多个业务资源之间的依赖关系构建各个用户的资源权限树;根据该用户的资源权限树,判定该用户能否访问目标业务资源。

在一种可能的实施方式中,各个用户的资源权限树分别以所属用户为根节点,方法还包括:根据用户信息进行根节点匹配,以确定该用户的资源权限树。

在一种可能的实施方式中,创建各个用户的资源权限树,还包括:响应于预设触发事件,提取各个业务资源和指定用户之间的授权关系,形成授权关系库;校验各个业务资源的独立性,若任意一个业务资源依赖另一个业务资源而运行,则生成任意一个业务资源和另一个业务资源之间的依赖关系,形成依赖关系库;根据授权关系库和依赖关系库,并利用有向图算法创建各个用户的资源权限树。

在一种可能的实施方式中,预设触发事件包括:各个业务资源的创建事件、转交事件、审核事件、订阅事件中的任意一种或多种。

在一种可能的实施方式中,根据授权关系库和依赖关系库,并利用有向图算法创建各个用户的资源权限树,还包括:确定第一用户的资源权限树的根节点为第一用户,其中第一用户为授权关系库中包含的任意一个用户;根据根节点遍历授权关系库以获取第一类业务资源,并根据第一类业务资源确定第一用户的资源权限树的第一层子节点;根据第一类业务资源遍历依赖关系库以获取第二类业务资源,并根据第二类业务资源确定第一用户的资源权限树的第二层至第n层子节点,n为大于或等于2的正整数。

在一种可能的实施方式中,确定第一用户的资源权限树的第二层至第n层子节点,还包括:确定资源权限树的当前最高层子节点;根据当前最高层子节点遍历依赖关系库,获取与当前最高层子节点具有依赖关系的指定业务资源,根据指定业务资源确定当前最高层子节点的上一层子节点;迭代执行以上步骤,直至第一用户的资源权限树的层级高度固定。

在一种可能的实施方式中,还包括:接收新增授权关系和/或新增依赖关系,对各个用户的资源权限树进行动态刷新。

在一种可能的实施方式中,根据该用户的资源权限树,判定该用户能否访问目标业务资源,还包括:根据广度优先搜索算法遍历该用户的资源权限树,若目标业务资源和该用户的资源权限树的任意一个子节点匹配,则允许该用户访问目标业务资源。

第二方面,提供一种访问控制装置,包括:接收单元,用于接收用户的访问请求,访问请求包含用户信息和目标业务资源;确定单元,用于根据用户信息确定该用户的资源权限树,其中,预先根据多个业务资源和多个用户之间的授权关系以及多个业务资源之间的依赖关系构建各个用户的资源权限树;判定单元,用于根据该用户的资源权限树,判定该用户能否访问目标业务资源。

在一种可能的实施方式中,各个用户的资源权限树分别以所属用户为根节点,确定单元还用于:根据用户信息进行根节点匹配,以确定该用户的资源权限树。

在一种可能的实施方式中,装置还包括创建单元,用于:响应于预设触发事件,提取各个业务资源和指定用户之间的授权关系,形成授权关系库;校验各个业务资源的独立性,若任意一个业务资源依赖另一个业务资源而运行,则生成任意一个业务资源和另一个业务资源之间的依赖关系,形成依赖关系库;根据授权关系库和依赖关系库,并利用有向图算法创建各个用户的资源权限树。

在一种可能的实施方式中,预设触发事件包括:各个业务资源的创建事件、转交事件、审核事件、订阅事件中的任意一种或多种。

在一种可能的实施方式中,创建单元还用于:确定第一用户的资源权限树的根节点为第一用户,其中第一用户为授权关系库中包含的任意一个用户;根据根节点遍历授权关系库以获取第一类业务资源,并根据第一类业务资源确定第一用户的资源权限树的第一层子节点;根据第一类业务资源遍历依赖关系库以获取第二类业务资源,并根据第二类业务资源确定第一用户的资源权限树的第二层至第n层子节点,n为大于或等于2的正整数。

在一种可能的实施方式中,创建单元还用于:确定资源权限树的当前最高层子节点;根据当前最高层子节点遍历依赖关系库,获取与当前最高层子节点具有依赖关系的指定业务资源,根据指定业务资源确定当前最高层子节点的上一层子节点;迭代执行以上步骤,直至第一用户的资源权限树的层级高度固定。

在一种可能的实施方式中,装置还包括刷新单元,用于:接收新增授权关系和/或新增依赖关系,对各个用户的资源权限树进行动态刷新。

在一种可能的实施方式中,判定单元还用于:根据广度优先搜索算法遍历该用户的资源权限树,若目标业务资源和该用户的资源权限树的任意一个子节点匹配,则允许该用户访问目标业务资源。

第三方面,提供一种访问控制装置,包括:至少一个处理器;以及,与至少一个处理器通信连接的存储器;其中,存储器存储有可被至少一个处理器执行的指令,指令被至少一个处理器执行,以使至少一个处理器能够执行:接收用户的访问请求,访问请求包含用户信息和目标业务资源;根据用户信息确定该用户的资源权限树,其中,预先根据多个业务资源和多个用户之间的授权关系以及多个业务资源之间的依赖关系构建各个用户的资源权限树;根据该用户的资源权限树,判定该用户能否访问目标业务资源。

第四方面,提供一种计算机可读存储介质,计算机可读存储介质存储有程序,当程序被多核处理器执行时,使得多核处理器执行如第一方面的方法。

本申请实施例采用的上述至少一个技术方案能够达到以下有益效果:本实施例中,通过对业务系统中复杂的业务权限关系进行抽象化提取,将错综复杂的授权关系和依赖关联关系转化为树形结构的层级关系;并通过搜索资源权限树的各个子节点,来完成用户与目标业务资源的访问权限判定,从而将复杂的权限判定问题简化为针对每个用户的资源权限树遍历搜索问题。从而极大简化了权限判定过程。

应当理解,上述说明仅是本发明技术方案的概述,以便能够更清楚地了解本发明的技术手段,从而可依照说明书的内容予以实施。为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举例说明本发明的具体实施方式。

附图说明

通过阅读下文的示例性实施例的详细描述,本领域普通技术人员将明白本文所述的有点和益处以及其他优点和益处。附图仅用于示出示例性实施例的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的标号表示相同的部件。在附图中:

图1为根据本发明实施例的访问控制方法的流程示意图;

图2为根据本发明实施例的资源权限树的结构示意图;

图3为根据本发明实施例的授权关系库的示意图;

图4为根据本发明实施例的依赖关系库的示意图;

图5为根据本发明实施例的访问控制装置的结构示意图;

图6为根据本发明又一实施例的访问控制装置的结构示意图。

在附图中,相同或对应的标号表示相同或对应的部分。

具体实施方式

下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。

在本发明中,应理解,诸如“包括”或“具有”等术语旨在指示本说明书中所公开的特征、数字、步骤、行为、部件、部分或其组合的存在,并且不旨在排除一个或多个其他特征、数字、步骤、行为、部件、部分或其组合存在的可能性。

另外还需要说明的是,在不冲突的情况下,本发明中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本发明。

发明人提出一种访问控制方法,可以根据业务管理系统中的多个业务资源和多个用户之间的授权关系以及多个业务资源之间的依赖关系构建各个用户的资源权限树,当接收到用户l1的对目标业务资源r1的访问请求时,可以根据访问请求携带的用户信息从预先构建的各个用户的资源权限树中获取该用户l1的资源权限树,从而能够通过搜索遍历用户l1的资源权限树来判定用户l1对目标业务资源r1是否具备访问权限,从而极大简化了权限判定过程。

在介绍了本发明的基本原理之后,下面具体介绍本发明的各种非限制性实施方式。

本发明实施例提供一种访问控制方法,图1为根据本申请一实施例的访问控制方法100的流程示意图,在该流程中,从设备角度而言,执行主体可以是一个或者多个电子设备,更具体地可以是电子设备中的处理模块;从程序角度而言,执行主体相应地可以是搭载于这些电子设备上的程序。

如图1所示,该方法100可以包括:

步骤101、接收用户的访问请求,访问请求包含用户信息和目标业务资源;

其中,访问请求为针对目标业务资源的访问请求。用户信息可以指用户的标识信息,比如用户名、用户角色信息等。可选地,用户信息还可以包括用户的登录密码,用于在接收到访问请求之后进行安全验证。

如图1所示,方法100包括:

步骤102、根据用户信息确定该用户的资源权限树,

其中,各个用户的资源权限树是预先根据多个业务资源和多个用户之间的授权关系以及多个业务资源之间的依赖关系构建的。该用户的资源权限树以该用户为根节点,并以至少一个业务资源为子节点,并且该用户与该资源权限树上的各个业务资源具有授权关系或者隐形授权关系。例如,图2为一种示意性的资源权限树,假设该用户为用户l1,根据用户信息获取用户l1的资源权限树,该资源权限树的根节点为用户l1,第一层子节点为用户l1获得授权的业务资源,第二层或更高层子节点则为用户l1获得隐性授权的业务资源。

在一种可能的实施方式中,各个用户的资源权限树分别以所属用户为根节点,其中步骤102还可以包括:根据该用户信息进行根节点匹配,以确定该用户的资源权限树。其中,由各个用户的资源权限树形成树库,根节点匹配是指根据访问请求中携带的用户信息搜索该树库,与各个用户的资源权限树的根节点信息进行匹配,从该树库中获取该用户的资源权限树。

在一种可能的实施方式中,创建各个用户的资源权限树,还包括:响应于预设触发事件,提取各个业务资源和指定用户之间的授权关系,形成授权关系库;校验各个业务资源的独立性,若任意一个业务资源依赖另一个业务资源而运行,则生成任意一个业务资源和另一个业务资源之间的依赖关系,形成依赖关系库;根据授权关系库和依赖关系库,并利用有向图算法创建各个用户的资源权限树。

其中,该预设触发事件包括:各个业务资源的创建事件、转交事件、审核事件、订阅事件中的任意一种或多种。例如,当业务资源r1通过网页操作被创建时,网页后台获取该业务资源r1的创建事件,该创建事件中可以包含:业务资源r1,业务资源r1的授权用户u1,业务资源r1的类型:采购需求,等信息。指定业务资源的授权用户用于指示有权限读取或操作该指定业务资源的一个或多个用户。进一步,响应于该业务资源r1的创建事件,提取业务资源r1和授权用户u1之间的授权关系:r1→u1,存入授权关系库。如图3所示,示出了一种示意性的授权关系库30,其中包含多个业务资源和其授权用户之间的授权关系,该授权关系具有从业务资源指向授权用户的方向性。

其中,若指定业务资源无需依赖另一个业务资源而运行,则具有独立性;若指定业务资源依赖另一个业务资源而运行,则生成任意一个业务资源和另一个业务资源之间的依赖关系。可选地,校验各个业务资源的独立性是指,判断预设触发事件中是否携带该业务资源的依赖对象。例如,当业务资源p1通过网页操作被创建时,网页后台获取该业务资源p1的创建事件,该创建事件中可以包含:业务资源p1,业务资源p1的授权用户u5,业务资源p1的依赖对象:业务资源r1和业务资源r2,业务资源的类型:采购项目。其中,业务资源r1可以是购买商品1的采购需求信息,业务资源r2可以是购买商品2的采购需求信息,业务资源p1可以是购买商品1和商品2的采购项目信息。进一步,响应于该业务资源p1的创建事件,提取业务资源p1和授权用户u5之间的授权关系p1→u5,存入授权关系库;之后,判断该创建事件中是否包含依赖对象,进而提取业务资源p1和业务资源r1之间的依赖关系:r1→p1,以及业务资源p1和业务资源r2之间的依赖关系:r2→p1,存入依赖关系库。如图4所示,示出了一种示意性的依赖关系库40,其中包含多个业务资源之间的依赖关系,该依赖关系具有从依赖对象指向指定业务资源的方向性。

其中,有向图算法是用于生成树的经典算法,本实施方式中根据授权关系库中具有方向性的多个授权关系作为一类有向边,以及根据依赖关系库中具有方向性的多个依赖关系作为另一类有向边,基于该有向图创建各个用户的资源权限树。例如,基于图3所示的授权关系库和图4所示出的依赖关系库,针对用户l1,利用有向图算法可以构建如图2所示的资源权限树,其中,第一层业务资源m1和m2是和用户l1具有授权关系的业务资源,第二层和第三层业务资源是和用户l1具有隐形授权关系的业务资源,该隐形授权关系基于依赖关系确定。

在一种可能的实施方式中,根据授权关系库和依赖关系库,并利用有向图算法创建各个用户的资源权限树,还包括:确定第一用户的资源权限树的根节点为第一用户,其中第一用户为授权关系库中包含的任意一个用户;根据根节点遍历授权关系库以获取第一类业务资源,并根据第一类业务资源确定第一用户的资源权限树的第一层子节点;根据第一类业务资源遍历依赖关系库以获取第二类业务资源,并根据第二类业务资源确定第一用户的资源权限树的第二层至第n层子节点,n为大于或等于2的正整数。

具体地,可以遍历该授权关系库中的每个用户,并依次为每个用户创建资源权限数。例如,根据图3所示出的授权关系库,以及图4所示出的依赖关系库,假设第一用户为授权关系库中的用户l1,当构建用户l1的资源权限树时,首先以用户l1作为该资源权限树的根节点,根据用户l1遍历图3中的授权关系库,获取第一类业务资源m1和m2,其中用于l1是业务资源m1和业务资源m2的授权对象,二者具有授权关系,将该业务资源m1和业务资源m2存入该用户l1的资源权限树作为第一层子节点。进一步,根据第一层子节点遍历图4中的依赖关系库,从而确定资源权限树的第二层至更高层子节点。当然,若依赖关系库中不存在第一类业务资源的依赖对象,资源权限树也可以只包含第一层子节点,本申请对此不做限制。

在一种可能的实施方式中,为了确定第一用户的资源权限树的第二层至第n层子节点,方法100还可以包括:确定资源权限树的当前最高层子节点;根据当前最高层子节点遍历依赖关系库,获取与当前最高层子节点具有依赖关系的指定业务资源,根据指定业务资源增加第一用户的资源权限树的层级;迭代执行以上步骤,直至第一用户的资源权限树的层级高度固定。例如,为了构建如图2所示出的资源权限树,可以执行第一轮迭代:在创建第一层子节点之后,可以确定l1的资源权限树的当前最高层子节点为第一层子节点;根据当前最高层子节点:业务资源m1和业务资源m2,遍历依赖关系库,获取m1的依赖对象:业务资源p1,获取m2的依赖对象:业务资源p2,将该p1和p2分别存入用户l1的资源权限树作为第二层子节点;进一步,检测该用户l1的资源权限树的层级高度是否变化,发现升高一级,则执行第二轮迭代:通过遍历依赖关系库,将业务资源p1和p2分别存入用户l1的资源权限树作为第三层子节点;进一步,检测该用户l1的资源权限树的层级高度是否变化,发现升高一级,则执行第三轮迭代:通过遍历依赖关系库,发现第三层子节点的业务资源在依赖关系库中并不存在依赖对象,无需增加子节点;进一步,检测该用户l1的资源权限树的层级高度是否变化,发现层级高度固定,则输出该用户l1的资源权限树。本实施方式中,通过观察检测资源权限树的层级高度是否固定,能够简便快速地判定资源权限树是否构建完成。

在一种可能的实施方式中,在授权关系库中的各个用户的资源权限树创建之后,若又有新创建的业务资源,方法100还可以包括:接收新增授权关系和/或新增依赖关系,对各个用户对应的资源权限树进行动态刷新。本实施方式中,通过动态刷新方案,能够适应管理类系统的动态变化特点。

如图1所示,方法100包括:

步骤103、根据该用户的资源权限树,判定该用户能否访问目标业务资源。

具体地,由于该用户的资源权限树以至少一个业务资源为子节点,且该用户与该资源权限树上的各个业务资源具有授权关系或者隐形授权关系。因此,若该目标业务资源存在于该用户的资源权限树中,则认为该用户可以访问该目标业务资源,否则则不能访问。

在一种可能的实施方式中,步骤103还可以包括:根据广度优先搜索算法遍历该用户的资源权限树,若目标业务资源和该用户的资源权限树的任意一个子节点匹配,则允许该用户访问目标业务资源。其中,广度优先搜索算法类似于树的层次遍历,利用该算法从资源权限树的根节点出发,依次遍历其所有的邻接点,然后再从这些邻接点出发,同样依次访问它们的邻接点。按照此过程,直到资源权限树中所有被访问过的顶点的邻接点都被访问到。

根据本发明实施例的各个方面,通过对业务系统中复杂的业务权限关系进行抽象化提取,将错综复杂的授权关系和依赖关联关系转化为树形结构的层级关系;并通过搜索资源权限树的各个子节点,来完成用户与目标业务资源的访问权限判定,从而将复杂的权限判定问题简化为针对每个用户的资源权限树遍历搜索问题。从而极大简化了权限判定过程。

基于相同的技术构思,本发明实施例还提供一种访问控制装置,用于执行上述任一实施例所提供的访问控制方法。图5为本发明实施例提供的一种访问控制装置结构示意图。

如图5所示,装置500包括:

接收单元501,用于接收用户的访问请求,访问请求包含用户信息和目标业务资源;

确定单元502,用于根据用户信息确定该用户的资源权限树,其中,预先根据多个业务资源和多个用户之间的授权关系以及多个业务资源之间的依赖关系构建各个用户的资源权限树;

判定单元503,用于根据该用户的资源权限树,判定该用户能否访问目标业务资源。

在一种可能的实施方式中,各个用户的资源权限树分别以所属用户为根节点,确定单元502还用于:根据用户信息进行根节点匹配,以确定该用户的资源权限树。

在一种可能的实施方式中,装置500还包括创建单元,用于:响应于预设触发事件,提取各个业务资源和指定用户之间的授权关系,形成授权关系库;校验各个业务资源的独立性,若任意一个业务资源依赖另一个业务资源而运行,则生成任意一个业务资源和另一个业务资源之间的依赖关系,形成依赖关系库;根据授权关系库和依赖关系库,并利用有向图算法创建各个用户的资源权限树。

在一种可能的实施方式中,预设触发事件包括:各个业务资源的创建事件、转交事件、审核事件、订阅事件中的任意一种或多种。

在一种可能的实施方式中,创建单元还用于:确定第一用户的资源权限树的根节点为第一用户,其中第一用户为授权关系库中包含的任意一个用户;根据根节点遍历授权关系库以获取第一类业务资源,并根据第一类业务资源确定第一用户的资源权限树的第一层子节点;根据第一类业务资源遍历依赖关系库以获取第二类业务资源,并根据第二类业务资源确定第一用户的资源权限树的第二层至第n层子节点,n为大于或等于2的正整数。

在一种可能的实施方式中,创建单元还用于:确定资源权限树的当前最高层子节点;根据当前最高层子节点遍历依赖关系库,获取与当前最高层子节点具有依赖关系的指定业务资源,根据指定业务资源确定当前最高层子节点的上一层子节点;迭代执行以上步骤,直至第一用户的资源权限树的层级高度固定。

在一种可能的实施方式中,装置还包括刷新单元,用于:接收新增授权关系和/或新增依赖关系,对各个用户的资源权限树进行动态刷新。

在一种可能的实施方式中,判定单元503还用于:根据广度优先搜索算法遍历该用户的资源权限树,若目标业务资源和该用户的资源权限树的任意一个子节点匹配,则允许该用户访问目标业务资源。

这样,根据本发明实施方式的各个方面,通过对业务系统中复杂的业务权限关系进行抽象化提取,将错综复杂的授权关系和依赖关联关系转化为树形结构的层级关系;并通过搜索资源权限树的各个子节点,来完成用户与目标业务资源的访问权限判定,从而将复杂的权限判定问题简化为针对每个用户的资源权限树遍历搜索问题。从而极大简化了权限判定过程。

需要说明的是,本申请实施例中的访问控制装置可以实现前述访问控制方法的实施例的各个过程,并达到相同的效果和功能,这里不再赘述。

图6为根据本申请一实施例的访问控制装置,用于执行图1所示出的访问控制方法,该装置包括:至少一个处理器;以及,与至少一个处理器通信连接的存储器;其中,存储器存储有可被至少一个处理器执行的指令,指令被至少一个处理器执行,以使至少一个处理器能够执行:

接收用户的访问请求,访问请求包含用户信息和目标业务资源;根据用户信息确定用户的资源权限树,其中,预先根据多个业务资源和多个用户之间的授权关系以及多个业务资源之间的依赖关系构建各个用户的资源权限树;根据用户的资源权限树,判定用户能否访问目标业务资源。

根据本申请的一些实施例,提供了访问控制方法的非易失性计算机存储介质,其上存储有计算机可执行指令,该计算机可执行指令设置为在由处理器运行时执行:

接收用户的访问请求,访问请求包含用户信息和目标业务资源;根据用户信息确定用户的资源权限树,其中,预先根据多个业务资源和多个用户之间的授权关系以及多个业务资源之间的依赖关系构建各个用户的资源权限树;根据用户的资源权限树,判定用户能否访问目标业务资源。

本申请中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置、设备和计算机可读存储介质实施例而言,由于其基本相似于方法实施例,所以其描述进行了简化,相关之处可参见方法实施例的部分说明即可。

本申请实施例提供的装置、设备和计算机可读存储介质与方法是一一对应的,因此,装置、设备和计算机可读存储介质也具有与其对应的方法类似的有益技术效果,由于上面已经对方法的有益技术效果进行了详细说明,因此,这里不再赘述装置、设备和计算机可读存储介质的有益技术效果。

本领域内的技术人员应明白,本发明的实施例可提供为方法、系统或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。

本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

在一个典型的配置中,计算设备包括一个或多个处理器(cpu)、输入/输出接口、网络接口和内存。

内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(ram)和/或非易失性内存等形式,如只读存储器(rom)或闪存(flashram)。内存是计算机可读介质的示例。

计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(pram)、静态随机存取存储器(sram)、动态随机存取存储器(dram)、其他类型的随机存取存储器(ram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、快闪记忆体或其他内存技术、只读光盘只读存储器(cd-rom)、数字多功能光盘(dvd)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。此外,尽管在附图中以特定顺序描述了本发明方法的操作,但是,这并非要求或者暗示必须按照该特定顺序来执行这些操作,或是必须执行全部所示的操作才能实现期望的结果。附加地或备选地,可以省略某些步骤,将多个步骤合并为一个步骤执行,和/或将一个步骤分解为多个步骤执行。

虽然已经参考若干具体实施方式描述了本发明的精神和原理,但是应该理解,本发明并不限于所公开的具体实施方式,对各方面的划分也不意味着这些方面中的特征不能组合以进行受益,这种划分仅是为了表述的方便。本发明旨在涵盖所附权利要求的精神和范围内所包括的各种修改和等同布置。


技术特征:

1.一种访问控制方法,其特征在于,包括:

接收用户的访问请求,所述访问请求包含用户信息和目标业务资源;

根据所述用户信息确定所述用户的资源权限树,其中,预先根据多个业务资源和多个用户之间的授权关系以及所述多个业务资源之间的依赖关系构建各个用户的资源权限树;

根据所述用户的资源权限树,判定所述用户能否访问所述目标业务资源。

2.根据权利要求1所述的方法,其中,所述各个用户的资源权限树分别以所属用户为根节点,所述方法还包括:

根据所述用户信息进行根节点匹配,以确定所述用户的资源权限树。

3.根据权利要求1所述的方法,其特征在于,创建所述各个用户的资源权限树,还包括:

响应于预设触发事件,提取各个业务资源和指定用户之间的授权关系,形成授权关系库;

校验各个业务资源的独立性,若任意一个业务资源依赖另一个业务资源而运行,则生成所述任意一个业务资源和所述另一个业务资源之间的依赖关系,形成依赖关系库;

根据所述授权关系库和所述依赖关系库,并利用有向图算法创建所述各个用户的资源权限树。

4.根据权利要求3所述的方法,其特征在于,所述预设触发事件包括:

所述各个业务资源的创建事件、转交事件、审核事件、订阅事件中的任意一种或多种。

5.根据权利要求3所述的方法,其特征在于,根据所述授权关系库和所述依赖关系库,并利用有向图算法创建所述各个用户的资源权限树,还包括:

确定第一用户的资源权限树的根节点为所述第一用户,其中所述第一用户为所述授权关系库中包含的任意一个用户;

根据所述根节点遍历所述授权关系库以获取第一类业务资源,并根据所述第一类业务资源确定所述第一用户的资源权限树的第一层子节点;

根据所述第一类业务资源遍历所述依赖关系库以获取第二类业务资源,并根据所述第二类业务资源确定所述第一用户的资源权限树的第二层至第n层子节点,所述n为大于或等于2的正整数。

6.根据权利要求5所述的方法,其特征在于,确定所述第一用户的资源权限树的第二层至第n层子节点,还包括:

确定所述资源权限树的当前最高层子节点;

根据所述当前最高层子节点遍历所述依赖关系库,获取与所述当前最高层子节点具有依赖关系的指定业务资源,根据所述指定业务资源确定所述当前最高层子节点的上一层子节点;

迭代执行以上步骤,直至所述第一用户的资源权限树的层级高度固定。

7.根据权利要求3所述的方法,其特征在于,还包括:

接收新增授权关系和/或新增依赖关系,对所述各个用户的资源权限树进行动态刷新。

8.根据权利要求3所述的方法,其特征在于,根据所述用户的资源权限树,判定所述用户能否访问所述目标业务资源,还包括:

根据广度优先搜索算法遍历所述用户的资源权限树,若所述目标业务资源和所述用户的资源权限树的任意一个子节点匹配,则允许所述用户访问所述目标业务资源。

9.一种访问控制装置,其特征在于,包括:

接收单元,用于接收用户的访问请求,所述访问请求包含用户信息和目标业务资源;

确定单元,用于根据所述用户信息确定所述用户的资源权限树,其中,预先根据多个业务资源和多个用户之间的授权关系以及所述多个业务资源之间的依赖关系构建各个用户的资源权限树;

判定单元,用于根据所述用户的资源权限树,判定所述用户能否访问所述目标业务资源。

10.根据权利要求9所述的装置,其中,所述各个用户的资源权限树分别以所属用户为根节点,所述确定单元还用于:

根据所述用户信息进行根节点匹配,以确定所述用户的资源权限树。

11.根据权利要求9所述的装置,其特征在于,所述装置还包括创建单元,用于:

响应于预设触发事件,提取各个业务资源和指定用户之间的授权关系,形成授权关系库;

校验各个业务资源的独立性,若任意一个业务资源依赖另一个业务资源而运行,则生成所述任意一个业务资源和所述另一个业务资源之间的依赖关系,形成依赖关系库;

根据所述授权关系库和所述依赖关系库,并利用有向图算法创建所述各个用户的资源权限树。

12.根据权利要求11所述的装置,其特征在于,所述预设触发事件包括:

所述各个业务资源的创建事件、转交事件、审核事件、订阅事件中的任意一种或多种。

13.根据权利要求11所述的装置,其特征在于,所述创建单元还用于:

确定第一用户的资源权限树的根节点为所述第一用户,其中所述第一用户为所述授权关系库中包含的任意一个用户;

根据所述根节点遍历所述授权关系库以获取第一类业务资源,并根据所述第一类业务资源确定所述第一用户的资源权限树的第一层子节点;

根据所述第一类业务资源遍历所述依赖关系库以获取第二类业务资源,并根据所述第二类业务资源确定所述第一用户的资源权限树的第二层至第n层子节点,所述n为大于或等于2的正整数。

14.根据权利要求13所述的装置,其特征在于,所述创建单元还用于:

确定所述资源权限树的当前最高层子节点;

根据所述当前最高层子节点遍历所述依赖关系库,获取与所述当前最高层子节点具有依赖关系的指定业务资源,根据所述指定业务资源确定所述当前最高层子节点的上一层子节点;

迭代执行以上步骤,直至所述第一用户的资源权限树的层级高度固定。

15.根据权利要求11所述的装置,其特征在于,所述装置还包括刷新单元,用于:

接收新增授权关系和/或新增依赖关系,对所述各个用户的资源权限树进行动态刷新。

16.根据权利要求11所述的装置,其特征在于,所述判定单元还用于:

根据广度优先搜索算法遍历所述用户的资源权限树,若所述目标业务资源和所述用户的资源权限树的任意一个子节点匹配,则允许所述用户访问所述目标业务资源。

17.一种访问控制装置,其特征在于,包括:

至少一个处理器;以及,与至少一个处理器通信连接的存储器;其中,存储器存储有可被至少一个处理器执行的指令,指令被至少一个处理器执行,以使至少一个处理器能够执行:

接收用户的访问请求,所述访问请求包含用户信息和目标业务资源;

根据所述用户信息确定所述用户的资源权限树,其中,预先根据多个业务资源和多个用户之间的授权关系以及所述多个业务资源之间的依赖关系构建各个用户的资源权限树;

根据所述用户的资源权限树,判定所述用户能否访问所述目标业务资源。

18.一种计算机可读存储介质,所述计算机可读存储介质存储有程序,当所述程序被多核处理器执行时,使得所述多核处理器执行如权利要求1-8中任一项所述的方法。

技术总结
本发明提供了一种访问控制方法、装置、系统及计算机可读存储介质,该方法包括:接收用户的访问请求,访问请求包含用户信息和目标业务资源;根据用户信息确定该用户的资源权限树,其中,预先根据多个业务资源和多个用户之间的授权关系以及多个业务资源之间的依赖关系构建各个用户的资源权限树;将复杂的权限判定问题简化为树结构遍历搜索问题,从而极大简化了权限判定过程。

技术研发人员:王忠钊;陈煜;周继恩;尹祥龙;王培林;邓昶;袁野
受保护的技术使用者:中国银联股份有限公司
技术研发日:2020.01.10
技术公布日:2020.06.09

转载请注明原文地址: https://bbs.8miu.com/read-22516.html

最新回复(0)