公开/公告号CN105989276A
专利类型发明专利
公开/公告日2016-10-05
原文格式PDF
申请/专利权人 阿里巴巴集团控股有限公司;
申请/专利号CN201510076610.4
发明设计人 张翔;
申请日2015-02-12
分类号G06F21/45(20130101);
代理机构11319 北京润泽恒知识产权代理有限公司;
代理人苏培华
地址 英属开曼群岛大开曼资本大厦一座四层847号邮箱
入库时间 2023-06-19 00:38:30
法律状态公告日
法律状态信息
法律状态
2019-01-15
授权
授权
2016-11-09
实质审查的生效 IPC(主分类):G06F21/45 申请日:20150212
实质审查的生效
2016-10-05
公开
公开
技术领域
本申请涉及访问控制技术领域,特别是涉及一种RBAC权限体系中的角色优化方法和一种RBAC权限体系中的角色优化装置。
背景技术
权限是对一个或一组资源操作所需要具备的许可条件,用户是权限的拥有者,当用户访问某一资源时,需要具有相应的权限。其中,资源是用户访问的对象,可以是网页(URL资源)、敏感信息(数据资源)等。
在RBAC(Role-BasedAccess Control,基于角色的访问控制)权限体系中,权限与角色相关联,角色是权限的分配单位与载体,一个角色中包含了一个或多个权限,是某些权限的集合,通过给用户赋予某一角色而使用户得到该角色的权限,这就极大地简化了权限的管理。
然而,随着时间的推移,需要基于权限控制的资源会越来越多,对应的权限也会越来越多,角色也会越来越多,极易在不同角色中出现权限相同或重叠的情况。例如,当一个新用户要求获得一个web网站的访问权限时,权限管理员可能会同时找到多个带有该权限的角色,在这种情况下,就极有可能给用户分配一个权限集合较大的角色,增大了用户对于该系统的访问权限,给了该用户可以进行越权操作的机会,进而给系统带来安全隐患。
发明内容
本申请实施例所要解决的技术问题是提供一种RBAC权限体系中的角色优化方法,能够减少不同角色中权限相同或重叠的情况。
相应的,本申请实施例还提供了一种RBAC权限体系中的角色优化装置,用以保证上述方法的实现及应用。
为了解决上述问题,本申请公开了一种RBAC权限体系中的角色优化方法,包括:
计算指定角色中任两个角色之间的相似度;
以所述指定角色中的其中一个角色为起点,依据角色之间相似度最大为遍历条件,在所述指定角色中进行有向图遍历;
根据遍历结果确定相似角色;
依据所述相似角色之间相同权限的集合及差异权限的集合,确定所述相似角色的优化角色。
进一步,所述计算指定角色中任两个角色之间的相似度,包括:
计算指定角色中任两个角色的权限集合之间的Jaccard相似度,作为所述任两个角色之间的相似度。
进一步,在所述依据所述相似角色之间相同权限的集合及差异权限的集合,确定所述相似角色的优化角色之前,所述方法还包括:
判断所述相似角色之间的相似度是否大于或等于相似度阈值,若是,再依据所述相似角色之间相同权限的集合及差异权限的集合,确定所述相似角色的优化角色。
进一步,所述根据遍历结果确定相似角色,包括:
若所述遍历结果为链式结果,则确定所述链式结果中位于第一位和第二位的角色或者所述链式结果中相似度最高的两个角色为相似角色,其中,所述链式结果为在所述有向图遍历中,所述指定角色遍历完毕后形成的角色间依次指向的结果。
进一步,所述根据遍历结果确定相似角色,包括:
若所述遍历结果为双子结果,则确定所述双子结果中相互指向的两个角色为相似角色,其中,所述双子结果为在所述有向图遍历中,两个角色相互指向的结果。
进一步,所述根据遍历结果确定相似角色,包括:
若所述遍历结果为循环结果,则确定出循环指向的角色,其中,所述循环结果为在所述有向图遍历中,多个角色循环指向的结果。
将所述循环指向的角色中相似度最大的两个角色确定为相似角色。
进一步,所述依据所述相似角色之间相同权限的集合及差异权限的集合,确定所述相似角色的优化角色,包括:
计算所述相似角色之间相同权限的集合及差异权限的集合;
统计所述差异权限的集合中各权限的上线使用率;
删除所述差异权限的集合中权限上线使用率低于预设使用率阈值的权限,获得最终差异权限的集合;
将所述相似角色之间相同权限的集合及所述最终差异权限的集合确定为所述优化角色的权限集合。
本申请还公开了一种RBAC权限体系中的角色优化装置,包括:
计算单元,被配置为计算指定角色中任两个角色之间的相似度;
遍历单元,被配置为以所述指定角色中的其中一个角色为起点,依据角色之间相似度最大为遍历条件,在所述指定角色中进行有向图遍历;
角色确定单元,被配置为根据遍历结果确定相似角色;
优化单元,被配置为依据所述相似角色之间相同权限的集合及差异权限的集合,确定所述相似角色的优化角色。
进一步,所述装置还包括:
判定单元,被配置为判断所述相似角色之间的相似度是否大于或等于相似度阈值;
所述优化单元,被配置为当所述判定单元判定所述相似角色之间的相似度大于或等于相似度阈值时,依据所述相似角色之间相同权限的集合及差异权限的集合,确定所述相似角色的优化角色确定优化角色。
进一步,所述角色确定单元,具体被配置为若所述遍历结果为链式结果,则确定所述链式结果中位于第一位和第二位的角色为相似角色,其中,所述链式结果为在所述有向图遍历中,所述指定角色遍历完毕后形成的角色间依次指向的结果;若所述遍历结果为双子结果,则确定所述双子结果中相互指向的两个角色为相似角色,其中,所述双子结果为在所述有向图遍历中,两个角色相互指向的结果;若所述遍历结果为循环结果,则确定出循环指向的角色,其中,所述循环结果为在所述有向图遍历中,多个角色循环指向的结果;将所述循环指向的角色中相似度最大的两个角色确定为相似角色。
进一步,所述优化单元包括:
计算子单元,被配置为计算所述相似角色之间相同权限的集合及差异权限的集合;
统计子单元,被配置为统计所述差异权限的集合中各权限的上线使用率;
删除子单元,被配置为删除所述差异权限的集合中权限上线使用率低于预设使用率阈值的权限,获得最终差异权限的集合;
确定子单元,被配置为将所述相似角色之间相同权限的集合及所述最终差异权限的集合确定为所述优化角色的权限集合。
与现有技术相比,本申请实施例包括以下优点:
本申请实施例通过获得角色之间的相似度,依据角色之间相似度最大为遍历条件进行角色遍历,在确定出需要进行优化的相似角色后,依据相似角色之间相同权限的集合及差异权限的集合对相似角色进行优化,使得各角色之间的权限集合尽可能完全独立,并共同代表一个业务含义,从而减少了不同角色中出现权限相同或重叠的情况,进而减少了给用户分配角色不合理所导致的系统安全隐患问题。
附图说明
图1是本申请的一种RBAC权限体系中的角色优化方法实施例的步骤流程图;
图2是本申请的另一种RBAC权限体系中的角色优化方法实施例的步骤流程图;
图3是本申请中的一种根据循环结果确定相似角色的方法实施例的步骤流程图;
图4是本申请中的一种确定相似角色的优化角色的方法实施例的步骤流程图;
图5是本申请的一种RBAC权限体系中的角色优化装置实施例的结构框图;
图6是本申请的另一种RBAC权限体系中的角色优化装置实施例的结构框图;
图7是本申请中的一种优化单元的实施例的结构框图。
具体实施方式
为使本申请的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本申请作进一步详细的说明。
参照图1,示出了本申请的一种RBAC权限体系中的角色优化方法实施例的步骤流程图,具体可以包括如下步骤:
步骤101,计算指定角色中任两个角色之间的相似度。
本步骤中,指定角色可以是RBAC权限体系下某系统的角色一权限关系表中所有角色或部分需要优化的角色。两个角色之间的相似度可以依据两角色的权限集合来进行计算,以计算jaccard相似度为例:
>
其中,J(A,B)是角色A与角色B之间的相似度,是角色A的权限集合与角色B的权限集合的合集,除以角色A的权限集合与角色B的权限集合的并集。当A、B相互独立的时候,相似度为0。当A与B的合集等于A与B的并集的时候,相似度为100%。
在获得指定角色中任一角色与其它角色之间的相似度后,可将所获得的角色之间的相似度加入相似度列表中,以便于后续查询。
步骤102,以指定角色中的其中一个角色为起点,依据角色之间相似度最大为遍历条件,在指定角色中进行有向图遍历。
本步骤中可以在指定角色中任意选一个角色作为起点,也可以根据需要或预置规则在指定角色中选择一个角色作为起点,此处不做限定。
在选定作为起点的角色后,可以依据相似度列表,选择与其相似度最大的角色作为该起点角色指向的角色,然后再选择与该指向的角色相似度最大的角色作为下一个指向的角色,依次递归循环,依据角色之间相似度最大为遍历条件,在指定角色中进行有向图遍历,获得遍历结果。例如,1→2→3→......。
遍历结果可能有多种,例如遍历结果为链式结果,或双子结果,或循环结果。
其中,链式结果为在有向图遍历中,指定角色遍历完毕后形成的角色间依次指向的结果。例如,遍历顺序是:1→2→3→4,一次性完成所有指定角色的遍历,该结果中不存在重复的角色。
双子结果为在有向图遍历中,两个角色相互指向的结果。例如,角色1→2→3→2→3,其中,角色2、3相互指向。
循环结果为在有向图遍历中,多个角色循环指向的结果。例如,角色1→2→3→4→2→3→4,其中,角色2、3、4循环指向。
步骤103,根据遍历结果确定相似角色。
上步骤获得的遍历结果后,本步骤即可根据遍历结果确定需要进行优化的角色,记为相似角色。
对于链式结果,可以将链式结果中位于第一位和第二位的角色作为相似角色,例如1→2→3→4→5→6中的角色1、2;或者将链式结果中相似度最高的两个角色为相似角色,例如1→2→3→4→5→6中的角色3、4。
对于双子结果,可以将双子结果中相互指向的两个角色为相似角色,例如,1→2→3→2→3中的角色2、3。
对于循环结果,可以将循环指向的角色中所有或部分角色作为相似角色,例如,1→2→3→4→2→3→4中的角色2、3、4或角色2、3等。
步骤104,依据相似角色之间相同权限的集合及差异权限的集合,确定相似角色的优化角色。
本步骤中,可以获得相似角色之间的相同权限的集合及差异权限的集合,然后根据这些集合确定出对相似角色优化后的优化角色。具体的,可以直接将相似角色之间的相同权限的集合及差异权限的集合作为优化角色的权限集合,也可以对该相同权限的集合及差异权限的集合分别进行一定的权限筛选后,最终确定为优化角色的权限集合。
该优化角色中的权限集合更加倾向于相互独立,角色之间的相似度降低。
上述步骤101~104可以重复执行,直至所有需要优化的角色优化完成。
本申请实施例通过获得角色之间的相似度,依据角色之间相似度最大为遍历条件进行角色遍历,在确定出需要进行优化的相似角色后,依据相似角色之间相同权限的集合及差异权限的集合对相似角色进行优化,使得各角色之间的权限集合尽可能完全独立,并共同代表一个业务含义,从而减少了不同角色中出现权限相同或重叠的情况,进而减少了给用户分配角色不合理所导致的系统安全隐患问题。
参照图2,示出了本申请的另一种RBAC权限体系中的角色优化方法实施例的步骤流程图,具体可以包括如下步骤:
步骤201,计算指定角色中任两个角色之间的相似度。
步骤202,以指定角色中的其中一个角色为起点,依据角色之间相似度最大为遍历条件,在指定角色中进行有向图遍历。
步骤201~202与前述实施例类似。
在本步骤中,例如,以角色1作为起点,依据相似度列表,选择与其相似度最大的角色2作为该角色1指向的角色,即1→2,然后再选择与该角色2相似度最大的角色3作为下一个指向的角色,即1→2→3,依次递归循环,依据角色之间相似度最大为遍历条件,在指定角色中进行有向图遍历,获得遍历结果。本实施例中,在每获得一个相似度最大的角色后,也即在该链表1→2→3→......中每加入一个角色时,都可以检测一下该链表中是否存在循环的角色,例如1→2→3→2→3,1→2→3→4→2→3→4等,如果存在,则将该循环的角色如2、3或2、3、4存放至高相似度角色列表中,如果在整个遍历过程中不存在循环的角色,则完成有向图遍历后,即可获得整个遍历出来的链表。
步骤203,根据遍历结果确定相似角色。
本步骤中,根据链式结果及双子结果确定相似角色的方法与前述实施例中的步骤103类似。在本实施例中,根据循环结果确定相似角色时,如图3所示,可以进一步包括:
步骤301,若遍历结果为循环结果,则确定出循环指向的角色,其中,循环结果为在有向图遍历中,多个角色循环指向的结果。
例如,遍历结果为1→2→3→4→2→3→4,则循环指向的角色即为2、3、4。
步骤302,将循环指向的角色中相似度最大的两个角色确定为相似角色。
在对三个或三个以上角色同时进行优化时,由于复杂度较高,所以在本步骤中,可以先从中选择两个相似角色进行优化,后续可以通过重复优化步骤来进行逐步优化,从而降低角色优化的复杂度。
例如,循环指向的角色2、3、4中3、4相似度最大,则将角色3、4确定为相似角色。
步骤204,判断相似角色之间的相似度是否大于或等于相似度阈值。
本实施例中,在确定出相似角色后,还要进一步判断相似角色之间的相似度是否大于或等于预设相似度阈值,若是,则转入步骤205进行优化,若否,则无需优化。
不同的遍历结果可以对应不同的预设相似度阈值,该相似度阈值可以根据需要设置和变更。
步骤205,依据相似角色之间相同权限的集合及差异权限的集合,确定相似角色的优化角色。
本步骤中,确定优化角色的过程,如图4所示,可以进一步包括:
步骤401,计算相似角色之间相同权限的集合及差异权限的集合。
例如,相似角色1的权限集合为A、B、C,相似角色2的权限集合为A、B、D、E,则相似角色1、2之间的相同权限的集合即为A、B,差异权限的集合为C、D、E。
步骤402,统计差异权限的集合中各权限的上线使用率。
本步骤具体可以统计预定时间段内各权限的上线使用率,例如差异权限集合中C、D、E在近一个月内的上线使用率为C:0,D:5,E:10。
步骤403,删除差异权限的集合中权限上线使用率低于预设使用率阈值的权限,获得最终差异权限的集合。
该使用率阈值可以根据需要设置,可以随时变更。例如,该使用率阈值为1,则可以将差异权限集合中的权限C删除。
步骤404,将相似角色之间相同权限的集合及最终差异权限的集合确定为优化角色的权限集合。
相同权限的集合及最终差异权限的集合即可作为相似角色1、2优化后的优化角色的权限集合。例如,优化角色1’的权限集合为(A、B),替代相似角色1;优化角色2’的权限集合为(D、E),替代相似角色2。
在获得优化角色后,本实施例还可以重复执行步骤201~205,尤其是对于上述步骤302中循环指向角色中其它相似度较高的角色,直至相似角色之间的相似度小于相似度阈值,无需进行优化。
通过循环上述优化步骤可以逐渐降低角色之间的相似度,使得各角色之间的权限集合尽可能完全独立。
在收回用户的原角色并重新分配优化角色时,需要保持用户的权限不变。
需要说明的是,对于方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请实施例并不受所描述的动作顺序的限制,因为依据本申请实施例,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作并不一定是本申请实施例所必须的。
参照图5,示出了本申请一种RBAC权限体系中的角色优化装置实施例的结构框图,具体可以包括如下单元:
计算单元501,被配置为计算指定角色中任两个角色之间的相似度。
遍历单元502,被配置为以所述指定角色中的其中一个角色为起点,依据角色之间相似度最大为遍历条件,在所述指定角色中进行有向图遍历。
角色确定单元503,被配置为根据遍历结果确定相似角色。
优化单元504,被配置为依据所述相似角色之间相同权限的集合及差异权限的集合,确定所述相似角色的优化角色。
本申请实施例通过上述单元获得角色之间的相似度,依据角色之间相似度最大为遍历条件进行角色遍历,在确定出需要进行优化的相似角色后,依据相似角色之间相同权限的集合及差异权限的集合对相似角色进行优化,使得各角色之间的权限集合尽可能完全独立,并共同代表一个业务含义,从而减少了不同角色中出现权限相同或重叠的情况,进而减少了给用户分配角色不合理所导致的系统安全隐患问题。
另一实施例中,计算单元501,可以具体被配置为计算指定角色中任两个角色的权限集合之间的Jaccard相似度,作为所述任两个角色之间的相似度。
在本申请另一实施例中,如图6所示,该装置还可以包括:
判定单元601,被配置为判断所述相似角色之间的相似度是否大于或等于相似度阈值。
优化单元504,被配置为当所述判定单元601判定所述相似角色之间的相似度大于或等于相似度阈值时,依据所述相似角色之间相同权限的集合及差异权限的集合,确定所述相似角色的优化角色确定优化角色。
另一实施例中,角色确定单元503,具体被配置为若所述遍历结果为链式结果,则确定所述链式结果中位于第一位和第二位的角色为相似角色,其中,所述链式结果为在所述有向图遍历中,所述指定角色遍历完毕后形成的角色间依次指向的结果;若所述遍历结果为双子结果,则确定所述双子结果中相互指向的两个角色为相似角色,其中,所述双子结果为在所述有向图遍历中,两个角色相互指向的结果;若所述遍历结果为循环结果,则确定出循环指向的角色,其中,所述循环结果为在所述有向图遍历中,多个角色循环指向的结果;将所述循环指向的角色中相似度最大的两个角色确定为相似角色。
在另一实施例中,如图7所示,优化单元504可以进一步包括:
计算子单元701,被配置为计算所述相似角色之间相同权限的集合及差异权限的集合。
统计子单元702,被配置为统计所述差异权限的集合中各权限的上线使用率。
删除子单元703,被配置为删除所述差异权限的集合中权限上线使用率低于预设使用率阈值的权限,获得最终差异权限的集合。
确定子单元704,被配置为将所述相似角色之间相同权限的集合及所述最终差异权限的集合确定为所述优化角色的权限集合。
本申请实施例还提供了一种电子设备,包括存储器和处理器。
处理器与存储器通过总线相互连接;总线可以是ISA总线、PCI总线或EISA总线等。所述总线可以分为地址总线、数据总线、控制总线等。
其中,存储器用于存储一段程序,具体地,程序可以包括程序代码,所述程序代码包括计算机操作指令。存储器可能包含高速RAM存储器,也可能还包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。
处理器用于读取存储器中的程序代码,执行以下步骤:
计算指定角色中任两个角色之间的相似度;
以所述指定角色中的其中一个角色为起点,依据角色之间相似度最大为遍历条件,在所述指定角色中进行有向图遍历;
根据遍历结果确定相似角色;
依据所述相似角色之间相同权限的集合及差异权限的集合,确定所述相似角色的优化角色。
对于装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
本领域内的技术人员应明白,本申请实施例的实施例可提供为方法、装置、或计算机程序产品。因此,本申请实施例可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
在一个典型的配置中,所述计算机设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括非持续性的电脑可读媒体(transitory media),如调制的数据信号和载波。
本申请实施例是参照根据本申请实施例的方法、终端设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理终端设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理终端设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理终端设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理终端设备上,使得在计算机或其他可编程终端设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程终端设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本申请实施例的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请实施例范围的所有变更和修改。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者终端设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者终端设备所固有的要素。在没有更多限制的情况下,由语句“包括一个......”限定的要素,并不排除在包括所述要素的过程、方法、物品或者终端设备中还存在另外的相同要素。
以上对本申请所提供的一种RBAC权限体系中的角色优化方法和一种RBAC权限体系中的角色优化装置,进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。
机译: 在基于域角色的访问控制(RBAC)系统中管理对象间操作
机译: 在基于域角色的访问控制(RBAC)系统中管理对象间操作
机译: 一次使用密码在基于角色的访问控制(RBAC)系统中临时特权升级