一种多租户访问控制方法和装置与流程

文档序号:14879697发布日期:2018-07-07 09:23阅读:147来源:国知局

本发明涉及数据安全技术领域,特别是涉及一种多租户访问控制方法和装置。



背景技术:

云计算是以互联网为基础将规模化资源池的处理、存储、基础设施和软件服务提供给用户,进而实现低成本、自动化、快速提供和灵活伸缩的it服务。企业可以通过租赁云计算提供的软硬件服务,即云服务,从而减少运营成本。云服务提供商将同一个实例租赁给不同租户,即多租户应用,租户通过非完全可信的云服务提供商来存储和处理数据,租户的信息存在被泄露的风险。

因此,云服务面临的主要问题是访问控制问题,需要通过有效控制租户的操作权限来保护租户的信息安全。

现有的基于角色的访问控制方法(role-basedaccesscontrol,简称rbac)通过引入中间元素角色,为租户分配对应的角色,根据租户角色的不同授予租户不同的操作权限,进而通过角色在租户和权限之间搭建一座桥梁。

但是,在多租户环境下,要求云服务器的计算环境、存储资源及其网络资源的设计和部署必须满足自动化、快速性、动态性、移动性、安全性和面向商业服务等需求,对于不同的租户相互独立和隔离。而现有rbac的使用会使得整个系统资源的分配、角色的划分都是全局性的,不能满足租户的个性化需求,同时对租户操作权限的授予也存在一定的安全性风险。



技术实现要素:

本发明提供了一种多租户访问控制方法和装置,用以解决现有rbac对租户权限的授予存在一定的安全性风险的问题。

为了解决上述技术问题,本发明是通过以下技术方案来解决的:

本发明提供了一种访问控制方法,包括:获取每个角色对应的属性;将对应相同属性的角色聚类为一个任务组;根据每个所述任务组中的角色对应的属性,为每个所述任务组生成对应的访问信息,以便使用所述任务组对应的访问信息获得资源的操作权限。

其中,所述根据每个所述任务组中的角色对应的属性,为每个所述任务组生成对应的访问信息,包括:将预设的加密参数输入预设的第一加密模型,生成公钥和主密钥;针对每个所述任务组,将所述任务组中的角色对应的属性和所述主密钥输入预设的第二加密模型,生成所述任务组对应的私钥和匹配因子;将所述公钥以及所述任务组对应的私钥和匹配因子,作为所述任务组对应的访问信息。

其中,所述使用所述任务组对应的访问信息获得资源的操作权限,包括:在用户访问资源时,确定所述用户的角色;为所述用户分配所述角色所属任务组对应的访问信息;根据所述访问信息,确定所述任务组中的角色对应的属性;如果所述任务组中的角色对应的属性与所述资源对应的属性相同,或者所述任务组中的角色对应的属性包含在所述资源对应的属性中,则允许访问所述资源。

其中,所述根据所述访问信息,确定所述用户的属性,包括:将所述访问信息中的私钥和匹配因子输入预设的第二解密模型,得到主密钥和属性;将所述主密钥和所述访问信息中的公钥输入预设的第一解密模型,得到加密参数;如果得到的所述加密参数和预设的加密参数相同,则判定得到的所述属性为所述任务组中的角色对应的属性。

其中,所述方法还包括:通过访问控制树存储资源以及所述资源对应的属性。

本发明还提供了一种访问控制装置,包括:获取模块,用于获取每个角色对应的属性;聚类模块,用于将对应相同属性的角色聚类为一个任务组;生成模块,用于根据每个所述任务组中的角色对应的属性,为每个所述任务组生成对应的访问信息;访问模块,用于使用所述任务组对应的访问信息获得资源的操作权限。

其中,所述生成模块,用于:将预设的加密参数输入预设的第一加密模型,生成公钥和主密钥;针对每个所述任务组,将所述任务组中的角色对应的属性和所述主密钥输入预设的第二加密模型,生成所述任务组对应的私钥和匹配因子;将所述公钥以及所述任务组对应的私钥和匹配因子,作为所述任务组对应的访问信息。

其中,所述访问模块,用于:在用户访问资源时,确定所述用户的角色;为所述用户分配所述角色所属任务组对应的访问信息;根据所述访问信息,确定所述任务组中的角色对应的属性;如果所述任务组中的角色对应的属性与所述资源对应的属性相同,或者所述任务组中的角色对应的属性包含在所述资源对应的属性中,则允许访问所述资源。

其中,所述访问模块进一步用于:将所述访问信息中的私钥和匹配因子输入预设的第二解密模型,得到主密钥和属性;将所述主密钥和所述访问信息中的公钥输入预设的第一解密模型,得到加密参数;如果得到的所述加密参数和预设的加密参数相同,则判定得到的所述属性为所述任务组中的角色对应的属性。

其中,所述装置还包括:存储模块;所述存储模块,用于通过访问控制树存储资源以及所述资源对应的属性。

本发明有益效果如下:

本发明通过任务组分组管理各个角色,并为任务组生成访问信息,通过访问信息来获取资源的操作权限,提升了授权的安全性。进一步地,本发明可以将细粒度的权限分配给角色,在将角色分配给用户之后,可以统一管理用户的访问请求,提高了云服务的安全性和系统访问的有效性。

附图说明

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

图2是根据本发明一实施例的生成访问信息的步骤流程图;

图3是根据本发明一实施例的资源访问的步骤流程图;

图4是根据本发明一实施例的确定任务组中角色对应的属性的步骤流程图;

图5是根据本发明一实施例的访问控制装置的结构图。

具体实施方式

以下结合附图以及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不限定本发明。

本发明实施例提供一种访问控制方法。图1是根据本发明一实施例的访问控制方法的流程图。

步骤s110,获取每个角色对应的属性。

在本实施例中,属性为操作权限的信息。例如:属性为操作权限的具有唯一性的编码。

角色对应的属性是指角色对应的操作权限。

预先设置角色池和属性池。角色池为角色的集合。属性池为属性的集合。

可以根据属性池中的属性,为角色池中的每个角色设置对应的一个或多个属性,获取每个角色对应的属性。

可以根据角色池中的角色,为每个租户分配一个或多个角色;根据属性池中的属性,为租户的每个角色设置对应的一个或多个属性;获取各个租户的角色对应的属性。

步骤s120,将对应相同属性的角色聚类为一个任务组。

不同的角色可能对应的属性是相同的。如果多个角色分别对应的所有属性都相同,则将这多个角色聚类为一个任务组。

可以将任务组中角色对应的属性作为该任务组对应的属性。

步骤s130,根据每个任务组中的角色对应的属性,为每个任务组生成对应的访问信息,以便使用任务组对应的访问信息获得资源的操作权限。

各租户下的用户在访问资源时,可以根据该用户被分配的角色,使用该角色所属任务组对应的访问信息获得该资源的操作权限。

在本实施例中,通过任务组分组管理各个角色,并为任务组生成访问信息,通过访问信息来获取操作权限,提升了授权的安全性。

在本实施例中,可以根据属性聚类任务组,即通过聚类实现租户中角色的划分,并在多个租户中将相同属性的角色聚类在同一任务组。任务组可以用来管理角色,是租户和角色的桥梁,通过聚类后的任务组进行访问控制。

在本实施例中,可以采用基于属性的加密算法,基于任务组对应的属性,为该任务组生成对应的访问信息。

具体的,可以参考如图2所示的生成访问信息的步骤流程图。

步骤s210,将预设的加密参数输入预设的第一加密模型,生成公钥和主密钥。

第一加密模型例如是rsa加密算法。

加密参数为rsa加密算法中的输入参数。例如:预设的加密参数包括:安全参数、素数、生成元、循环群和随机数。

生成的公钥和主密钥为各个任务组共用的公钥和主密钥。

步骤s220,针对每个任务组,将任务组中的角色对应的属性和主密钥输入预设的第二加密模型,生成该任务组对应的私钥和匹配因子。

第二加密模型例如是sha1(securehashalgorithm,安全哈希算法)加密算法。将任务组对应的属性和主密钥作为第二加密模型的输入参数,可以生成该任务组对应的私钥和匹配因子。

步骤s230,将公钥以及该任务组对应的私钥和匹配因子,作为该任务组对应的访问信息。

本实施例可以在用户建立会话时执行,或者在用户访问资源时执行,当然,也可以在为角色设置或更新属性时执行。

下面对资源访问的过程进行进一步地描述。图3是根据本发明一实施例的资源访问的步骤流程图。

步骤s310,在用户访问资源时,确定所述用户的角色。

在接收到用户发出的对资源的访问请求时,或者在建立会话时,根据用户的信息确定用户的角色。

用户的信息例如是:用户的用户名和密码,用户标识。

例如:预先建立角色用户表,在添加用户时,在角色用户表中记录用户的角色。同一用户可以有多个角色。

步骤s320,为所述用户分配所述角色所属任务组对应的访问信息。

根据用户的角色,确定该角色所属的任务组,将该任务组对应的访问信息分配给该用户。在本实施例中,为了增加资源的安全性,不直接将角色对应的属性提供给用户。

可以将该用户的信息以及为该用户分配的访问信息对应记录在预先设置的用户访问信息对照表中。

如果用户具有多个角色,则为用户分配每个角色所属任务组对应的访问信息,这样用户被分配了多个访问信息。

步骤s330,根据所述访问信息,确定所述任务组中的角色对应的属性。

如果用户被分配了多个访问信息,则分别确定每个访问信息对应的任务组中角色对应的属性。

步骤s340,如果所述任务组中的角色对应的属性与所述资源对应的属性相同,或者所述任务组中的角色对应的属性包含在所述资源对应的属性中,则允许访问所述资源。

如果确定出多个任务组中角色对应的属性,则分别将每个任务组中的角色对应的属性和用户希望访问的资源的属性进行比较。

由于角色对应的属性可以是一个或多个,资源对应的属性也可以是一个或多个,所以,在角色对应多个属性的情况下,如果角色对应的多个属性为资源对应的多个属性中的部分属性,则认为用户具有访问该资源的操作权限,运行访问该资源。

图4是根据本发明一实施例的确定任务组中角色对应的属性的步骤流程图。

步骤s410,将访问信息中的私钥和匹配因子输入预设的第二解密模型,得到主密钥和属性。

在访问信息中包括公钥以及任务组对应的私钥和匹配因子。

将任务组对应的私钥和匹配因子作为第二解密模型的输入,可以获得主密钥和属性。

第二解密模型和第二加密模型相对应。第二解密模型可以是第二加密模型的对称算法。第二解密模型例如是sha1解密算法。

步骤s420,将主密钥和访问信息中的公钥输入预设的第一解密模型,得到加密参数。

将主密钥和该访问信息中的公钥作为第一解密模型的输入,通过得到的加密参数,验证得到的属性是否为访问信息对应的任务组中角色对应的属性。

步骤s430,判断得到的所述加密参数和预设的加密参数是否相同;如果是,则执行步骤s440;如果否,则执行步骤s450。

步骤s440,判定得到的所述属性为所述任务组中的角色对应的属性。

步骤s450,通知所述用户不具备访问所述资源的操作权限。

在本实施例中,为了提升访问控制的安全性,采用两次加密的形式为每个任务组生成对应的访问信息,采用两次解密的形式获取资源的操作权限。

在本实施例中,通过访问控制树存储资源以及所述资源对应的属性。进一步地,由于各种资源之间存在依赖关系,一般用树形结构可以描述该依赖关系,所以在本实施例中根据存储的各个资源以及每个资源对应的操作权限,生成访问控制树,通过访问控制树对资源进行管理,只有访问者具备操作权限才允许访问相应的资源。

在本实施例中,对资源的访问是基于属性(权限)的,而是不是基于整个系统,根据任务聚类的方式管理角色,利用基于角色访问控制和密文的属性相结合的方式进行访问控制,通过任务组分组管理各个角色对应的属性,将细粒度的权限分配给角色,从而可以统一管理用户的访问请求,提高了云服务的安全性和系统访问的有效性。

为了使本发明更加容易理解,下面提供一个较为具体的实例:

在学校内包括多个学院,每个学院通过订购资源服务成为作为一个租户。根据角色池,为每个租户分配多个角色,每个租户可以将不同的角色分配给租户下的不同用户,例如为教师和学生分配不同的角色,并将用户的id和对应的角色记录在角色用户表中。

根据角色池和属性池,为每个角色分配多个属性。根据属性对角色进行聚类,形成多个任务组,并为每个任务组生成对应的访问信息。

用户利用id登录资源浏览界面,建立用户访问资源的会话,这时可以根据用户的id来判断用户是否为合法租户下的用户,例如:如果id存在与角色用户表中,则用户为合法租户。在用户属于合法租户的前提下,根据角色用户表,确定用户的角色,并且查询该角色所在的任务组,并将该任务组对应的访问信息分配给该用户,用户在资源浏览界面中点击下载一个资源(如文件),根据用户的访问信息确定任务组对应的属性,如果任务组对应的属性和该资源的属性相同,则认为该用户为授权角色,可以为用户下载该资源,反之,认为该用户为非授权用户,禁止为用户下载该资源,并提示用户不具备下载权限。

本发明实施例还提供了一种访问控制装置。图5是根据本发明一实施例的访问控制装置的结构图。

获取模块510,用于获取每个角色对应的属性。

聚类模块520,用于将对应相同属性的角色聚类为一个任务组。

生成模块530,用于根据每个所述任务组中的角色对应的属性,为每个所述任务组生成对应的访问信息。

访问模块540,用于使用所述任务组对应的访问信息获得资源的操作权限。

在一个实施例中,所述生成模块530,用于将预设的加密参数输入预设的第一加密模型,生成公钥和主密钥;针对每个所述任务组,将所述任务组中的角色对应的属性和所述主密钥输入预设的第二加密模型,生成所述任务组对应的私钥和匹配因子;将所述公钥以及所述任务组对应的私钥和匹配因子,作为所述任务组对应的访问信息。

在另一实施例中,所述访问模块540,用于在用户访问资源时,确定所述用户的角色;为所述用户分配所述角色所属任务组对应的访问信息;根据所述访问信息,确定所述任务组中的角色对应的属性;如果所述任务组中的角色对应的属性与所述资源对应的属性相同,或者所述任务组中的角色对应的属性包含在所述资源对应的属性中,则允许访问所述资源。

在又一实施例中,所述访问模块540进一步用于:将所述访问信息中的私钥和匹配因子输入预设的第二解密模型,得到主密钥和属性;将所述主密钥和所述访问信息中的公钥输入预设的第一解密模型,得到加密参数;如果得到的所述加密参数和预设的加密参数相同,则判定得到的所述属性为所述任务组中的角色对应的属性。

在再一实施例中,所述装置还包括:存储模块(图中未示出);所述存储模块,用于通过访问控制树存储资源以及所述资源对应的属性。

本实施例所述的装置的功能已经在图1~图4所示的方法实施例中进行了描述,故本实施例的描述中未详尽之处,可以参见前述实施例中的相关说明,在此不做赘述。

尽管为示例目的,已经公开了本发明的优选实施例,本领域的技术人员将意识到各种改进、增加和取代也是可能的,因此,本发明的范围应当不限于上述实施例。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1