欢迎光临小豌豆知识网!
当前位置:首页 > 电学技术 > 电通讯技术> 一种基于资源权限树的SaaS资源访问控制方法独创技术18725字

一种基于资源权限树的SaaS资源访问控制方法

2021-03-07 20:43:25

一种基于资源权限树的SaaS资源访问控制方法

  技术领域

  本发明涉及计算机安全技术领域,尤其涉及一种基于资源权限树的SaaS资源访问控制方法。

  背景技术

  SaaS是Software-as-a-Service的缩写名称,意思为软件即服务,即通过网络提供软件服务。SaaS作为云计算的一种软件应用模式,明确地将软件定义为服务,为客户提供可复制的“标准化”服务方案,解决客户信息化建设中的软件构建、运维成本、管理成本等问题,尤其受到中小企业的欢迎。尽管SaaS具备很多优点,但仍然存在很多问题,其中SaaS安全问题已成为制约SaaS模式发展的首要问题。为降低服务使用成本,服务提供商多采用单实例多租户模式、共享数据库表的数据存储模型的思路设计SaaS,但需同时解决该设计模式下的数据安全问题,访问控制是解决这一问题的关键技术之一,主要包括权限分配与访问控制两部分。

  RBAC是Role-Based Access Control的缩写,即基于角色的权限访问控制,RBAC模型提供强大而灵活的访问控制能力,同时降低了用户权限分配的复杂度与管理人员的工作量,在实际应用中仍以RBAC模型作为SaaS访问控制的主要模型,以基于RBAC改进后的H-RBAC模型为代表,H-RBAC是Hierarchical Role-Based Access Control的缩写,H-RBAC模型是按等级划分的基于角色的权限访问控制模型,核心是将SaaS中的访问控制分为SaaS软件平台级访问控制层和租户级访问控制层两层,每层基于RBAC模型进行访问控制。但RBAC模型在细粒度访问控制方面存在局限性,无法适应SaaS模式下多因素约束用户权限的情况。ABAC模型是一种为解决行业分布式应用可信关系访问控制模型,可弥补这一缺陷,并具有较强的灵活性与可扩展性,但ABAC模型存在权限分配工作量大、访问规则制定缺乏上下文环境难度增加等问题,在SaaS模式下这些问题更为突出。目前已有将RBAC与ABAC模型结合实现访问控制的尝试,但都忽略了权限分配的复杂度问题,而在SaaS模式下为确保租户数据隐私,租户内用户对资源的访问权限通常交由租户管理员进行自主分配,若权限分配复杂度太高将直接影响SaaS使用推广。因此,有必要提供一种方法,充分利用RBAC与ABAC模型的优点,实现SaaS模式下高效、低复杂度的权限分配与灵活、细粒度的访问控制。

  发明内容

  本发明的目的就在于为了解决上述问题而提供一种基于资源权限树的SaaS资源访问控制方法,以实现SaaS模式下高效、低复杂度的权限分配与灵活、细粒度的访问控制。

  本发明通过以下技术方案来实现上述目的:

  一种基于资源权限树的SaaS资源访问控制方法,包括以下步骤:

  步骤1、结合H-RBAC模型与ABAC模型,设计基于资源权限树的SaaS访问控制理论模型,简称H-RRBAC模型;

  步骤2、基于H-RRBAC模型进行资源权限分配与访问控制,包括以下步骤:

  步骤2.1、SaaS平台资源注册,并以代表最小业务单元的资源为根节点自动生成资源有向原子树;

  步骤2.2、平台管理员按需组合资源有向原子树,生成资源有向树;

  步骤2.3、平台管理员以资源有向树为单位向租户分配资源访问许可,租户管理员以被许可访问的资源有向树为单位进行角色的资源权限分配,构建角色的资源权限树;

  步骤2.4、租户管理员建立用户-用户组、用户组-角色、用户-角色的关系,生成用户的资源权限树;

  步骤2.5、用户访问业务时,基于用户的资源权限树进行用户对资源的访问控制。

  作为优选,所述步骤1中,H-RRBAC模型基于H-RBAC模型与ABAC模型进行改进,其改进内容包括:

  1.1、在H-RBAC模型的“角色-资源”之间引入资源有向树,基于资源有向树进行权限分配,1棵资源有向树代表一个业务场景,树与树之间有清晰的业务边界,树中资源之间的内在关联关系决定了父子资源节点权限的蕴含关系,当对某一资源节点授权时,其子节点自动继承父节点的权限,当同一业务场景访问控制策略相同时,仅需对根节点进行权限分配;

  1.2、基于资源权限树进行访问控制,融合RBAC与ABAC的优点,角色对资源的访问权限由资源-操作权限、资源-ABAC规则共同确定;

  1.3、通过资源权限树将主体对数据资源与非数据资源的访问权限作为一个有机整体进行统一纳管,主体对数据资源的访问权限由业务决定,业务上下文以资源有向树的形式呈现,在访问控制需求发生变化或出现访问控制权限配置错误/冲突时,能快速定位、高效应对;

  所述资源权限树是由若干资源节点构成的有向树,资源节点由资源节点ID、资源信息、分配的操作权限和访问控制规则这四元组表示,其中,资源节点ID用于唯一标识节点所在的资源有向树与位置;资源信息由资源ID、资源名称、资源类型、资源属性和支持的操作权限这五元组表示,其中,资源ID用于唯一标识资源,资源名称自动获取,资源类型划分为包括但不限于菜单、页面、页面控件、数据的类型,资源属性是资源的属性集合,支持的操作权限由资源类型决定;分配的操作权限是从支持的操作权限中选择得到的权限集合;访问控制规则是基于用户、资源、上下文环境的属性信息构建的规则集合;资源节点之间的关系由SaaS软件代码预定义的业务逻辑确定。

  所述步骤2.1中,所述资源有向原子树代表一个最小的业务单元,自动按SaaS软件代码预定义的逻辑关系将业务相关的资源进行关联与组织;资源有向原子树的叶子节点是数据类型的资源;同一树内不允许有重复的资源节点。

  所述步骤2.2中,根据业务场景的需要组合1棵及以上的资源有向原子树生成1棵资源有向树,1棵资源有向树表示一个完整的业务场景,通常对应SaaS对客户开放的一个服务,其对应的访问控制策略具有相似性,是降低权限分配工作量的切入点。

  所述步骤2.3中,角色与资源权限树之间是多对多的映射关系,资源有向树与资源权限树之间是一对多的关系,根据资源有向树的生成规则,资源权限树父子节点的权限存在蕴含关系,子节点默认继承父节点的所有权限,但同时在不违反冲突约束条件下可再定义,以此在降低权限分配工作量的同时保证了权限分配的灵活性。

  所述步骤2.3中,通过识别用户、资源、上下文环境的属性信息,基于ABAC模型,建立基于属性的访问控制规则,对资源权限树中的资源节点进行权限的细粒度控制;用户属性信息包括但不限于用户ID、所属租户、所属部门、所属机构、岗位、职级、安全等级、授权区域,资源属性包括但不限于资源提供者ID、所属租户、所属部门、所属机构、安全等级,上下文环境包括但不限于用户登录地点、登录时间,属性信息根据SaaS的业务特征按需定制,租户内同一资源ID的资源对应的访问控制规则不允许冲突,资源权限树子节点默认继承父节点的访问控制规则,无需一一配置。

  所述步骤2.4中,将具备多个相同角色的用户以用户组的形式组织,避免重复生成用户的资源权限树;用户与用户组、用户组与角色、用户与角色均是多对多的映射关系,1名用户实际可对应多个角色,从而对应多个资源权限树,将对应同一资源有向树的多个资源权限树以及多个资源权限树引用同一资源的权限进行合并、冲突消除,最终获取用户动态对应的多个有效资源权限树。

  所述步骤2.5中,实时获取用户属性信息、资源属性信息及上下文环境,并根据资源关联的资源节点ID从用户的资源权限树集合中获取资源节点的“分配的操作权限”、“访问控制规则”,通过规则解析与权限匹配确定是否对资源有访问权限,并返回相应的结果,实现访问控制。

  本发明的有益效果在于:

  本发明所述方法可适应SaaS模式下不同租户的不同权限管理场景,实现高效、低复杂度的权限分配,同时满足不同租户对资源不同粒度、属性动态变化的权限访问控制需求,具体优点如下:

  1、基于资源有向树进行权限分配,在大幅度降低权限分配工作量的同时保留权限分配的灵活性,可适应不同租户的不同权限管理场景;

  2、基于资源权限树进行访问控制,同时兼备RBAC与ABAC的优点,可满足不同租户对资源不同粒度、属性动态变化的权限访问控制需求;

  3、通过资源权限树将数据资源与非数据资源的访问权限作为一个有机整体进行统一纳管,相较于传统孤立的管理数据资源与非数据资源,降低了管理的复杂度,尤其在访问控制需求发生变化或出现访问控制权限配置错误时,可快速定位、高效应对。

  附图说明

  图1是本发明所述H-RRBAC模型的示意图;

  图2是本发明中基于H-RRBAC模型进行资源权限分配与访问控制的实施步骤示意图;

  图3是本发明所述H-RRBAC模型中的资源权限树的结构示意图。

  具体实施方式

  下面结合附图对本发明作进一步说明:

  本发明所述基于资源权限树的SaaS资源访问控制方法,包括以下步骤:

  步骤1、结合H-RBAC模型与ABAC模型,设计基于资源权限树的SaaS访问控制理论模型,简称H-RRBAC模型。

  如图1所示,本步骤中,所述H-RRBAC模型基于H-RBAC模型与ABAC模型进行改进,其改进内容包括:

  1.1、在H-RBAC模型的“角色-资源”之间引入资源有向树,基于资源有向树进行权限分配,1棵资源有向树代表一个业务场景,树与树之间有清晰的业务边界,树中资源之间的内在关联关系决定了父子资源节点权限的蕴含关系,当对某一资源节点授权时,其子节点自动继承父节点的权限,当同一业务场景访问控制策略相同时,仅需对根节点进行权限分配。

  1.2、基于资源权限树进行访问控制,融合RBAC与ABAC的优点,角色对资源的访问权限由资源-操作权限、资源-ABAC规则共同确定。

  1.3、通过资源权限树将主体对数据资源与非数据资源的访问权限作为一个有机整体进行统一纳管,主体对数据资源的访问权限由业务决定,业务上下文以资源有向树的形式呈现,在访问控制需求发生变化或出现访问控制权限配置错误/冲突时,能快速定位、高效应对。

  如图3所示,所述资源权限树是由若干资源节点构成的有向树,资源节点由资源节点ID、资源信息、分配的操作权限和访问控制规则这四元组表示,其中,资源节点ID用于唯一标识节点所在的资源有向树与位置;资源信息由资源ID、资源名称、资源类型、资源属性和支持的操作权限这五元组表示,其中,资源ID用于唯一标识资源,资源名称自动获取,资源类型划分为包括但不限于菜单、页面、页面控件、数据的类型,资源属性是资源的属性集合,支持的操作权限由资源类型决定;分配的操作权限是从支持的操作权限中选择得到的权限集合;访问控制规则是基于用户、资源、上下文环境的属性信息构建的规则集合;资源节点之间的关系由SaaS软件代码预定义的业务逻辑确定,可能存在包含、操作触发、引用等关系,如菜单可包含若干子菜单,菜单操作可触发页面,页面可由若干子页面组成,页面中包含数据、控件等。

  步骤2、如图2所示,基于H-RRBAC模型进行资源权限分配与访问控制,包括以下步骤:

  步骤2.1、SaaS平台资源注册,并以代表最小业务单元的资源为根节点自动生成资源有向原子树。

  本步骤中,所述资源有向原子树代表一个最小的业务单元,自动按SaaS软件代码预定义的逻辑关系将业务相关的资源进行关联与组织;资源有向原子树的叶子节点是数据类型的资源;同一树内不允许有重复的资源节点。

  步骤2.2、平台管理员按需组合资源有向原子树,生成资源有向树。

  本步骤中,根据业务场景的需要组合1棵及以上的资源有向原子树生成1棵资源有向树,1棵资源有向树表示一个完整的业务场景,通常对应SaaS对客户开放的一个服务,其对应的访问控制策略具有相似性,是降低权限分配工作量的切入点。

  步骤2.3、平台管理员以资源有向树为单位向租户分配资源访问许可,租户管理员以被许可访问的资源有向树为单位进行角色的资源权限分配,构建角色的资源权限树。

  本步骤中,角色与资源权限树之间是多对多的映射关系,资源有向树与资源权限树之间是一对多的关系,根据资源有向树的生成规则,资源权限树父子节点的权限存在蕴含关系,子节点默认继承父节点的所有权限,但同时在不违反冲突约束条件下可再定义,以此在降低权限分配工作量的同时保证了权限分配的灵活性。

  更进一步,本步骤中,通过识别用户、资源、上下文环境的属性信息,基于ABAC模型,建立基于属性的访问控制规则,对资源权限树中的资源节点进行权限的细粒度控制;用户属性信息包括但不限于用户ID、所属租户、所属部门、所属机构、岗位、职级、安全等级、授权区域,资源属性包括但不限于资源提供者ID、所属租户、所属部门、所属机构、安全等级,上下文环境包括但不限于用户登录地点、登录时间,属性信息根据SaaS的业务特征按需定制,租户内同一资源ID的资源对应的访问控制规则不允许冲突,资源权限树子节点默认继承父节点的访问控制规则,无需一一配置;为避免同一访问控制规则在所有资源权限树重复配置的情况,引入租户内的全局规则,所有资源权限树自动继承对应租户的全局规则。

  步骤2.4、租户管理员建立用户-用户组、用户组-角色、用户-角色的关系,生成用户的资源权限树。

  本步骤中,将具备多个相同角色的用户以用户组的形式组织,避免重复生成用户的资源权限树;用户与用户组、用户组与角色、用户与角色均是多对多的映射关系,1名用户实际可对应多个角色,从而对应多个资源权限树,将对应同一资源有向树的多个资源权限树以及多个资源权限树引用同一资源的权限进行合并、冲突消除,最终获取用户动态对应的多个有效资源权限树。

  步骤2.5、用户访问业务时,基于用户的资源权限树进行用户对资源的访问控制。

  本步骤中,实时获取用户属性信息、资源属性信息及上下文环境,并根据资源关联的资源节点ID从用户的资源权限树集合中获取资源节点的“分配的操作权限”、“访问控制规则”,通过规则解析与权限匹配确定是否对资源有访问权限,并返回相应的结果,实现访问控制。

  说明:上述内容与说明书附图内容不一定完全相同,但相互对应,这是为了便于附图表达所致。

  为便于理解本发明实施例及其效果,以下给出一个具体应用示例。本领域技术人员应理解,该示例仅为了便于理解本发明,其任何具体细节并非意在以任何方式限制本发明。

  应用示例:

  以某集团M内部的运维管理SaaS平台为例。平台部署在集团总部,集团下各子公司以租户形式访问平台。在平台初始化时,自动完成平台资源注册、生成资源有向原子树。平台管理员根据运维管理的业务场景将平台对外提供的服务划分为资产管理(基础版)、资产管理(完整版)、资源运行监测、工单管理、变更管理、资源配置管理等由租户选择(与其紧耦合的支撑性服务将自动被选),并基于资源有向原子树完成服务对应的资源有向树的构建,同时基于资源有向树完成全集团适用的主客体访问控制策略的配置,如每个员工能访问自己是责任人的数据,部门领导能访问责任人是本部门员工的数据,运维工程师能访问所运维区域的工单数据等,形成初始的资源权限树。

  现有某子公司X在平台上申请开通资产管理(完整版)、工单管理、变更管理服务并付费后,平台管理员为子公司X分配租户角色并完成相应的访问许可授权。子公司X的管理员(租户管理员)首先完成基础数据(如公司的组织机构、运维区域、运维组织等)的配置,再基于初始的资源权限树进行调整,包括角色、操作权限、ABAC规则等,并将角色映射至用户或用户组(可选)、用户映射至用户组(可选),生成用户的资源权限树,完成公司内部个性化访问控制策略的配置。子公司X的用户需要访问业务时,首先基于平台的身份认证模块进行身份认证,认证通过后获取用户属性信息、资源属性信息及上下文环境,并根据资源关联的资源节点ID从用户的资源权限树集合中获取资源节点的“分配的操作权限”、“访问控制规则”,通过规则解析与权限匹配确定是否对资源有访问权限,并返回相应的结果。

  上述实施例只是本发明的较佳实施例,并不是对本发明技术方案的限制,只要是不经过创造性劳动即可在上述实施例的基础上实现的技术方案,均应视为落入本发明专利的权利保护范围内。

《一种基于资源权限树的SaaS资源访问控制方法.doc》
将本文的Word文档下载到电脑,方便收藏和打印
推荐度:
点击下载文档

文档为doc格式(或pdf格式)