构建基于角色的访问控制系统的方法及云服务器的制造方法

文档序号:7980274阅读:167来源:国知局
构建基于角色的访问控制系统的方法及云服务器的制造方法
【专利摘要】本发明实施例提供构建RBAC的方法及云服务器。该方法包括:从客户端接收用于请求构造具有层次结构的RBAC角色集合的请求消息,该请求消息携带UPA数据;获取RBAC模板,并根据该RBAC模板和该UPA数据进行角色匹配,以确定具有层次结构的第一角色集合;根据该第一角色集合和该UPA数据进行角色挖掘,以确定该RBAC角色集合;向该客户端发送该RBAC角色集合,以便该客户端根据该RBAC角色集合构建RBAC系统。本发明实施例中,不仅能够提高RBAC角色集合的语义准确性并降低成本,而且能够提高构建RBAC系统的效率。
【专利说明】构建基于角色的访问控制系统的方法及云服务器
【技术领域】
[0001]本发明涉及信息【技术领域】,并且具体地,涉及构建基于角色的访问控制(Role-based Access Control, RBAC)系统的方法及云服务器。
【背景技术】
[0002]访问控制是针对越权使用资源的防御措施,基本目标是为了保障用户对系统资源的合理有效访问。访问控制大致有三种方法,分别是传统的自主访问控制(DiscretionaryAccess Control, DAC)方法和强制访问控制(Mandatory Access Control, MAC)方法,以及近年来热门的RBAC方法。其中,DAC方法的粒度太细,而MAC方法的粒度太粗,并且两者工作量大,不便于管理。RBAC方法是策略中立的,能用其表示包括DAC和MAC在内的不同种类的策略,而且RBAC方法更接近真实组织的管理方式,所以可以方便地描述高层策略。因此RBAC方法已逐渐成为公认的解决大型企业的统一资源访问控制的有效方法。
[0003]目前构建RBAC系统主要通过角色工程(Role Engineering)技术来实现。角色工程技术主要包括自顶向下(Top-down)的方法和自底向上(Bottom-up)的方法。自顶向下的方法通常需要复杂的业务流程分析,自动化程度低。而自底向上的方法自动化程度高,但由于缺少业务流程分析,导致获得的角色语义性不好。

【发明内容】

[0004]本发明实施例提供构建RBAC的方法及云服务器,能够提高RBAC角色集合的语义准确性并降低成本,而且能够提高构建RBAC系统的效率。
[0005]一方面,提供了一种构建RBAC的方法,包括:从客户端接收用于请求构造具有层次结构的RBAC角色集合的请求消息,该请求消息携带用户权限分配UPA数据;获取RBAC模板,并根据该RBAC模板和该UPA数据进行角色匹配,以确定具有层次结构的第一角色集合;根据该第一角色集合和该UPA数据进行角色挖掘,以确定该RBAC角色集合;向该客户端发送该RBAC角色集合,以便该客户端根据该RBAC角色集合构建RBAC系统。
[0006]另一方面,提供了一种云服务器,包括:接收模块,用于从客户端接收用于请求构造具有层次结构的RBAC角色集合的请求消息,该请求消息携带用户权限分配UPA数据,并向角色匹配模块传输该UPA数据;角色匹配模块,用于从该接收模块接收该UPA数据,并获取RBAC模板,根据该RBAC模板和该UPA数据进行角色匹配,以确定具有层次结构的第一角色集合,并向角色挖掘模块传输该第一角色集合;角色挖掘模块,用于从该角色匹配模块接收该第一角色集合,并根据该第一角色集合和该UPA数据进行角色挖掘,以确定该RBAC角色集合,并向发送模块传输该RBAC角色集合;发送模块,用于从该角色挖掘模块接收该RBAC角色集合,并向该客户端发送该RBAC角色集合,以便该客户端根据该RBAC角色集合构建RBAC系统。
[0007]本发明实施例中,通过根据RBAC模板和UPA数据进行角色匹配来确定第一角色集合,并根据第一角色集合和UPA数据进行角色挖掘来确定RBAC角色集合,使得RBAC模板所包含的业务流程信息融入RBAC角色集合,而无需进行昂贵且复杂的业务流程分析,并且保留了角色挖掘过程的高自动化程度,因此不仅能够提高RBAC角色集合的语义准确性并降低成本,而且能够提高构建RBAC系统的效率。
【专利附图】

【附图说明】
[0008]为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例中所需要使用的附图作简单地介绍,显而易见地,下面所描述的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0009]图1是可应用本发明实施例的RBAC系统的一个例子的示意图。
[0010]图2是根据本发明实施例的构建RBAC系统的方法的示意性流程图。
[0011]图3是根据本发明一个实施例的构建RBAC系统的方法的过程的示意图。
[0012]图4是根据本发明实施例的RBAC模板的角色层次结构的一个例子的示意图。
[0013]图5是根据本发明另一实施例的构建RBAC系统的方法的过程的示意图。
[0014]图6是根据本发明实施例的云服务器的示意框图。
[0015]图7是根据本发明一个实施例的云服务器的实现方式的一个例子的示意图。
[0016]图8是根据本发明另一实施例的云服务器的实现方式的另一例子的示意图。
【具体实施方式】
[0017]下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明的一部分实施例,而不是全部实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都应属于本发明保护的范围。
[0018]图1是可应用本发明实施例的RBAC系统的一个例子的示意图。应注意,图1的例子仅仅是为了帮助本领域技术人员更好地理解本发明实施例,而非限制本发明实施例的范围。例如,在图1中,描述了 4个用户(User)、3个角色(Role)以及3个服务器,但本发明实施例中,用户的数目、角色的数目以及服务器的数目还可以是其它的数目,本发明实施例对此不作限定。
[0019]在RBAC系统中,用户和服务器之间增加了一层“角色”作为桥梁,角色可以看作是权限的集合,通过用户对应于角色以及角色对应于权限来实现访问控制。例如,在图1中,用户I和用户2对应于角色1,角色I的权限为可以访问服务器1,那么用户I和用户2都可以访问服务器I。用户3对应于角色2,角色2的权限为可以访问服务器I和服务器2,那么用户3可以访问服务器I和服务器2。用户4对应于角色3,角色3是权限为可以访问服务器1、服务器2和服务器3。因此,构建RBAC系统的过程就是创建角色以及设定用户与角色、角色与权限之间的分配关系的过程,其中构造具有层次结构的角色集合是最核心的过程。
[0020]图2是根据本发明实施例的构建RBAC系统的方法的示意性流程图。图2的方法由云服务器执行。
[0021]210,从客户端接收用于请求构造具有层次结构的RBAC角色集合的请求消息,该请求消息携带用户权限分配(User-Permission Assignment, UPA)数据。
[0022]UPA数据可以表示用户与权限之间的对应关系,UPA数据中每条记录的形式可以为{用户XX—具有的权限}。
[0023]220,获取RBAC模板,并根据该RBAC模板和该UPA数据进行角色匹配,以确定具有
层次结构的第一角色集合。
[0024]可选地,作为一个实施例,云服务器可以根据UPA数据所关联的行业信息,从存储于云服务器的RBAC模板库中选取RBAC模板。或者云服务器可以从客户端接收RBAC模板,其中RBAC模板是客户端根据UPA数据所关联的行业信息从RBAC模板库中选取的。
[0025]例如,由于云服务提供商(Cloud Service Provider, CSP)通常具有大量的客户,因此可以基于客户已经运行或部署的RBAC系统,建立RBAC模板库。此外CSP可以按照行业(如银彳丁、医院等)、彳丁业特点(如综合医院、专科医院等)等对RBAC |旲板库中的RBAC |旲板进行分类,存储于云服务器中。这样,云服务器或者客户端都可以根据UPA数据所关联的行业信息,从RBAC模板库中选取合适的RBAC模板。RBAC模板的表示形式可以是多种形式,例如角色层次结构,或通过表格记录的形式表示角色集合以及该角色集合的层次结构等。本发明实施例对此不作限定。
[0026]本发明实施例中,由于RBAC模板包含着经过提炼的与UPA数据所关联的行业的业务流程信息,通过根据RBAC模板和UPA数据进行角色匹配,能够将业务流程信息融入角色匹配过程所产生的角色集合中,而无需进行昂贵且复杂的业务流程分析过程,从而能够降低构造角色集合的成本及复杂度。
[0027]此外,由于云服务器具有强大的存储能力,因此能够保证存储RBAC模板库的存储空间。而且由于云服务器有着大量且多元化的客户,因此能够保证充足的RBAC模板来源。
[0028]可选地,作为另一实施例,云服务器可以对RBAC模板和UPA数据进行角色匹配,确定具有层次结构的第二角色集合,向客户端发送第二角色集合,从客户端接收客户端对第二角色集合的调整方案,根据调整方案对第二角色集合进行调整,以确定第一角色集合。
[0029]例如,云服务器可以将UPA数据中的每条记录与RBAC模板进行匹配,确定具有层次结构的第二角色集合。客户端可以根据自身的实际需求,确定对第二角色集合的调整方案,并向云服务器发送该调整方案。云服务器可以根据调整方案对第二角色集合进行修改调整,从而确定角色匹配过程产生的具有层次结构的第一角色集合。
[0030]230,根据该第一角色集合和该UPA数据进行角色挖掘,以确定该RBAC角色集合。
[0031]可选地,作为另一实施例,云服务器可以基于第一角色集合对UPA数据进行角色挖掘,以确定RBAC角色集合。
[0032]具体地,云服务器可以将步骤220产生的具有层次结构的第一角色集合作为输入,对全部UPA数据进行角色挖掘,从而确定RBAC角色集合。
[0033]由于各信息系统和组织的差异性,角色匹配所产生的第一角色集合通常无法将全部UPA数据覆盖,因此再通过基于角色匹配过程所产生的第一角色集合对UPA数据进行角色挖掘,能够提高最终产生的RBAC角色集合的准确性。
[0034]可选地,作为另一实施例,云服务器可以根据用于解决最小扰动的带层次结构的角色挖掘问题(Minimal Perturbation Role Hierarchy Mining Problem, MinPert-RHMP)的算法,基于第一角色集合对UPA数据进行角色挖掘,以确定RBAC角色集合。[0035]具体地,MinPert-RHMP是指给定用户集合U、权限集合P和UPA数据,目标是通过建立角色集合、相应的用户角色分配(User-Role Assignment, UA)关系以及权限角色分配(Permission-Role Assignment, PA)关系,使角色集合能够完全覆盖UPA数据,且保证系统复杂度低。此外,在解决MinPert-RHMP的开始时,已经定义了一部分角色(通常称为DRoles(Deployed Roles,已部署的角色)),那么还要求在角色集合中尽量保留DRoles。目前有多种解决MinPert-RHMP的算法,例如,云服务器可以根据StateMiner算法,以第一角色集合作为输入,对全部UPA数据进行角色挖掘,确定RBAC角色集合。云服务器还可以根据其它能够解决MinPert-RHMP的算法进行角色挖掘,本发明实施例对此不作限定。
[0036]可选地,作为另一实施例,云服务器可以确定UPA数据中与第一角色集合的角色没有匹配的剩余UPA数据,对剩余UPA数据进行角色挖掘,确定具有层次结构的第三角色集合,将第一角色集合与第三角色集合进行合并,以确定RBAC角色集合。
[0037]具体地,云服务器可以对角色匹配过程中没有匹配的剩余UPA数据进行角色挖掘,然后将角色挖掘所产生的具有层次结构的第三角色集合与第一角色集合进行合并,确定最终的RBAC角色集合。对第三角色集合与第一角色集合进行合并的方式可参照现有技术,例如在第三角色集合与第一角色集合中都出现的公共角色,云服务器可以只保留一个,并将删掉的节点的父、子节点关系转移到保留的那个角色上。云服务器可以将不同的角色都保留在最终的RBAC角色集合中。
[0038]本发明实施例中,由于角色匹配过程中已经匹配的UPA数据所蕴含的信息已经体现在第一角色集合中,而且由于角色匹配过程中对RBAC模板和UPA数据进行匹配,RBAC模板来源于UPA数据所关联的行业,那么在角色匹配过程中能够成功匹配大部分UPA数据。因此云服务器可以对在角色匹配过程中没有匹配的剩余UPA数据进行角色挖掘,从而能够减小角色挖掘过程需要处理的数据量,提高处理效率。
[0039]可选地,作为另一实施例,云服务器可以根据用于解决带层次结构的角色挖掘问题(Role Hierarchy Mining Problem, RHMP)的算法,对剩余UPA数据进行角色挖掘,确定
第三角色集合。
[0040]具体地,RHMP是指给定用户集合U、权限集合P和UPA数据,目标是通过建立角色集合、相应的UA关系以及PA关系,使角色集合能够完全覆盖UPA数据,且系统复杂度低。此夕卜,RHMP中增加考虑角色的层次结构(即角色之间具有继承关系等),在系统复杂度中需要考虑层次结构的复杂度。目前,有多种解决RHMP的算法。例如,云服务器可以根据图优化(Graph Optimisation)算法,对剩余UPA数据进行角色挖掘,确定第三角色集合。云服务器还可以根据其它能够解决RHMP的算法进行角色挖掘,本发明实施例对此不作限定。
[0041]可选地,作为另一实施例,云服务器可以根据用于解决角色挖掘问题(RoleMining Problem, RMP)的算法,对剩余UPA数据进行角色挖掘,确定不具有层次结构的第三角色集合,根据用于解决角色层次结构构建问题(Role Hierarchy Building Problem,RHBP)的算法,为不具有层次结构的第三角色集合构造层次结构。
[0042]具体地,RMP是指给定用户集合U、权限集合P和UPA数据,目标是通过建立角色集合、相应的UA关系以及PA关系,使角色集合能够完全覆盖UPA数据,且保证系统复杂度低。RHBP是指给定角色集合,目标是为其构造出最优的层次结构。云服务器可以确定不具有层次结构的第三角色集合,然后再构造层次结构,从而确定具有层次结构的第三角色集合。[0043]240,向该客户端发送该RBAC角色集合,以便该客户端根据该RBAC角色集合构建RBAC系统。
[0044]本发明实施例利用云的计算和存储能力提供RaaS(RBAC as a Service,构造RBAC即服务),即借助云强大的计算和存储能力,通过云服务器构造RBAC角色集合,使得客户端根据RBAC角色集合能够方便地构建RBAC系统,从而能够提高构建RBAC系统的效率并降低成本。
[0045]本发明实施例中,通过根据RBAC模板和UPA数据进行角色匹配来确定第一角色集合,并根据第一角色集合和UPA数据进行角色挖掘来确定RBAC角色集合,使得RBAC模板所包含的业务流程信息融入RBAC角色集合,而无需进行昂贵且复杂的业务流程分析,并且保留了角色挖掘过程的高自动化程度,因此不仅能够提高RBAC角色集合的语义准确性,降低成本,而且能够提高构建RBAC系统的效率。
[0046]下面将结合具体的例子详细描述本发明实施例。应注意,这些例子是为了帮助本领域技术人员更好地理解本发明实施例,而非限制本发明实施例的范围。
[0047]图3是根据本发明一个实施例的构建RBAC系统的方法的过程的示意图。
[0048]301,云服务器存储有RBAC模板库,对RBAC模板库进行更新与维护。
[0049]CSP通常具有大量的客户,部分客户已经通过RBAC系统进行用户身份管理、访问控制等功能,则CSP可以直接从这些运行的RBAC系统中获取RBAC模板。也可以从其他公司已经部署的RBAC系统中抽取或购买RBAC模板,从而建立RBAC模板库,在云服务器中存储。此外CSP可以按照行业(如银行、医院等)、行业特点(如综合医院、专科医院等)等对RBAC模板库中的RBAC模板进行分类,存储于云服务器中。云服务器可以对RBAC模板库进行更新与维护。RBAC模板库可以是对外公布的。RBAC模板库中的RBAC模板的表示形式可以是角色集合以及该角色集合的层次结构。
[0050]由于云服务器具有强大的存储能力,因此能够保证存储RBAC模板库的存储空间。而且由于云服务器有着大量且多元化的客户,因此能够保证充足的RBAC模板来源。
[0051]302,客户端向云服务器发送用于请求构造RBAC角色集合的请求消息,该请求消息携带UPA数据。
[0052]UPA数据可以表示用户与权限之间的关系,其中每条记录RQ的形式为{用户XX —具有的权限}。
[0053]303,云服务器根据步骤302中的UPA数据所关联的行业信息,从RBAC模板库中选取RBAC模板。
[0054]例如,云服务器可以根据UPA数据所关联的行业以及行业特点,选取RBAC模板。此夕卜,由于RBAC模板库是对外公布的,因此客户端也可以根据UPA数据所关联的行业以及行业特点,选取RBAC模板,并将RBAC模板发送给云服务器。本发明实施例对此不作限定。
[0055]RBAC模板的表示形式可以是多种方式,例如角色层次结构,或者通过表格记录的形式表示角色集合以及该角色集合的层次结构等。
[0056]下面将举例说明RBAC模板的形式。图4是根据本发明实施例的RBAC模板的角色层次结构的一个例子的示意图。假设云服务器根据UPA数据所关联的行业信息,获取的RBAC模板的一个例子如图4所示。在图4中,RBAC模板中的角色集合R={rl, r2, r3, r4, r5, r6},对应的权限集合为{pi, p2, p3, p4, p5, p6}。此外,该 RBAC 模板还可以通过两个表进行表示,表示角色集合R以及该角色集合R的层次结构,如表1和表2所示。表1和表2是图4所示的角色集合的另一表现形式。其中表1记录了角色间的关系(如继承、冲突等)。表2记录了表1中的角色与权限之间的匹配关系。
[0057]表1角色之间的关系
【权利要求】
1.一种构建基于角色的访问控制RBAC系统的方法,其特征在于,包括: 从客户端接收用于请求构造具有层次结构的RBAC角色集合的请求消息,所述请求消息携带用户权限分配UPA数据; 获取RBAC模板,并根据所述RBAC模板和所述UPA数据进行角色匹配,以确定具有层次结构的第一角色集合; 根据所述第一角色集合和所述UPA数据进行角色挖掘,以确定所述RBAC角色集合; 向所述客户端发送所述RBAC角色集合,以便所述客户端根据所述RBAC角色集合构建RBAC系统。
2.根据权利要求1所述的方法,其特征在于,所述根据所述RBAC模板和所述UPA数据进行角色匹配,以确定具有层次结构的第一角色集合,包括: 对所述RBAC模板和所述UPA数据进行角色匹配,确定具有层次结构的第二角色集合; 向所述客户端发送所述第二角色集合; 从所述客户端接收所述客户端对所述第二角色集合的调整方案; 根据所述调整方案对所述第二角色集合进行调整,以确定所述第一角色集合。
3.根据权利要求1或2所述的方法,其特征在于,所述根据所述第一角色集合和所述UPA数据进行角色挖掘,以确定具有层次结构的RBAC角色集合,包括: 基于所述第一角色集合对所述UPA数据进行角色挖掘,以确定所述RBAC角色集合。
4.根据权利要求3所述的方法,其特征在于,所述基于所述第一角色集合对所述UPA数据进行角色挖掘,以确定所述RBAC角色集合,包括: 根据用于解决最小扰动的带层次结构的角色挖掘问题MinPert-RHMP的算法,基于所述第一角色集合对所述UPA数据进行角色挖掘,以确定所述RBAC角色集合。
5.根据权利要求1或2所述的方法,其特征在于,所述根据所述第一角色集合和所述UPA数据进行角色挖掘,以确定具有层次结构的RBAC角色集合,包括: 确定所述UPA数据中与所述第一角色集合的角色没有匹配的剩余UPA数据; 对所述剩余UPA数据进行角色挖掘,确定具有层次结构的第三角色集合; 将所述第一角色集合与所述第三角色集合进行合并,以确定所述RBAC角色集合。
6.根据权利要求5所述的方法,其特征在于,所述对所述剩余UPA数据进行角色挖掘,确定具有层次结构的第三角色集合,包括: 根据用于解决带层次结构的角色挖掘问题RHMP的算法,对所述剩余UPA数据进行角色挖掘,确定所述第三角色集合。
7.根据权利要求5所述的方法,其特征在于,所述对所述剩余UPA数据进行角色挖掘,确定具有层次结构的第三角色集合,包括: 根据用于解决角色挖掘问题RMP的算法,对所述剩余UPA数据进行角色挖掘,确定不具有层次结构的第三角色集合; 根据用于解决角色层次结构构建问题RHBP的算法,为所述不具有层次结构的第三角色集合构造层次结构。
8.根据权利要求1至7中任一项所述的方法,其特征在于,所述获取RBAC模板,包括: 根据所述UPA数据所关联的行业信息,从存储于云服务器的RBAC模板库中选取所述RBAC模板;或者,从所述客户端接收所述RBAC模板,其中所述RBAC模板是所述客户端根据所述UPA数据所关联的行业信息从所述RBAC模板库中选取的。
9.一种云服务器,其特征在于,包括: 接收模块,用于从客户端接收用于请求构造具有层次结构的RBAC角色集合的请求消息,所述请求消息携带用户权限分配UPA数据; 角色匹配模块,用于从所述接收模块接收所述UPA数据,并获取RBAC模板,根据所述RBAC模板和所述UPA数据进行角色匹配,以确定具有层次结构的第一角色集合; 角色挖掘模块,用于从所述角色匹配模块接收所述第一角色集合,并根据所述第一角色集合和所述UPA数据进行角色挖掘,以确定所述RBAC角色集合; 发送模块,用于从所述角色挖掘模块接收所述RBAC角色集合,并向所述客户端发送所述RBAC角色集合,以便所述客户端根据所述RBAC角色集合构建RBAC系统。
10.根据权利要求9所述的云服务器,其特征在于,所述角色匹配模块具体用于对所述RBAC模板和所述UPA数据进行角色匹配,确定具有层次结构的第二角色集合;向所述客户端发送所述第二角色集合;从所述客户端接收所述客户端对所述第二角色集合的调整方案;根据所述调整方案对所述第二角色集合进行调整,以确定所述第一角色集合。
11.根据权利要求9或10所述的云服务器,其特征在于,所述角色挖掘模块具体用于基于所述第一角色集合对所述UPA数据进行角色挖掘,以确定所述RBAC角色集合。
12.根据权利要求11所述的云服务器,其特征在于,所述角色挖掘模块具体用于根据用于解决最小扰动的带层次结构的角色挖掘问题MinPert-RHMP的算法,基于所述第一角色集合对所述UPA数据进行角色挖掘,以确定所述RBAC角色集合。
13.根据权利要求9或10所述的云服务器,其特征在于,所述角色挖掘模块具体用于确定所述UPA数据中与所述第一角色集合的角色没有匹配的剩余UPA数据;对所述剩余UPA数据进行角色挖掘,确定具有层次结构的第三角色集合;将所述第一角色集合与所述第三角色集合进行合并,以确定所述RBAC角色集合。
14.根据权利要求13所述的云服务器,其特征在于,所述角色挖掘模块具体用于根据用于解决带层次结构的角色挖掘问题RHMP的算法,对所述剩余UPA数据进行角色挖掘,确定所述第三角色集合。
15.根据权利要求13所述的云服务器,其特征在于,所述角色挖掘模块具体用于根据用于解决角色挖掘问题RMP的算法,对所述剩余UPA数据进行角色挖掘,确定不具有层次结构的第三角色集合;根据用于解决角色层次结构构建问题RHBP的算法,为所述不具有层次结构的第三角色集合构造层次结构。
16.根据权利要求9至15中任一项所述的云服务器,其特征在于,所述角色匹配模块具体用于根据所述UPA数据所关联的行业信息,从存储于云服务器的RBAC模板库中选取所述RBAC模板;或者,从所述客户端接收所述RBAC模板,其中所述RBAC模板是所述客户端根据所述UPA数据所关联的行业信息从所述RBAC模板库中选取的。
【文档编号】H04L29/08GK103514412SQ201210213506
【公开日】2014年1月15日 申请日期:2012年6月26日 优先权日:2012年6月26日
【发明者】魏何, 张新文, 吴晓昕 申请人:华为技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1