CN101771683A - 访问控制策略生成方法及装置 - Google Patents
访问控制策略生成方法及装置 Download PDFInfo
- Publication number
- CN101771683A CN101771683A CN200910076116A CN200910076116A CN101771683A CN 101771683 A CN101771683 A CN 101771683A CN 200910076116 A CN200910076116 A CN 200910076116A CN 200910076116 A CN200910076116 A CN 200910076116A CN 101771683 A CN101771683 A CN 101771683A
- Authority
- CN
- China
- Prior art keywords
- xacml
- abac
- template
- policy
- abac policy
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Abstract
本发明公开了一种访问控制策略生成方法及装置。方法包括:根据用户通过预先建立的基于属性的访问控制ABAC策略视图模板输入的ABAC策略信息,生成ABAC策略表达式;根据预先设置的ABAC策略视图模板与可扩展访问控制标记语言XACML模板之间的映射规则,将所述ABAC策略表达式转换成符合XACML模板的基于XACML的ABAC策略。本发明中用户只需通过ABAC策略视图模板输入一些简单的ABAC策略信息,无需以人工方式写出复杂的基于XACML的ABAC策略,从而解决了用户难于定义基于XACML的ABAC策略的问题,并且避免了用户以人工方式写出复杂的基于XACML的ABAC策略过程中容易出现错误的问题,从而保证了基于XACML的ABAC策略的准确性。
Description
技术领域
本发明涉及访问控制技术,特别涉及一种访问控制策略生成方法及装置,属于网络应用领域。
背景技术
为了保证网络具有足够的安全性,国际标准化组织I SO在其网络安全体系的设计标准(ISO7498-2)中,定义了五大安全服务功能,包括:身份认证服务、访问控制服务、数据保密服务、数据完整性服务以及不可否认服务。其中,访问控制服务是针对越权使用资源的防御措施,用于防止用户在未授权的情况下对各种资源的随意访问,从而使计算机系统能够在合法的范围内被使用。访问控制可以有效的阻止非法用户对系统资源的访问,以及合法用户对系统资源的非法访问。现有的访问控制策略主要包括自主访问控制(Discretionary Access Control,以下简称:DAC)策略、强制访问控制(Mandatoty Access Control,以下简称:MAC)策略,基于标识的访问控制(Identity Based Access Control,以下简称:IBAC)策略和基于角色的访问控制(Role Based Access Control,以下简称:RBAC)策略。
上述传统的访问控制策略虽然能够适用于不同的领域,但本质上都是封闭式的,不支持对系统未定义用户的授权,因此,上述访问控制策略均不具备足够的灵活性和可扩展性。例如,为解决面向服务的体系结构(Service-Oriented Architecture,以下简称:SOA)环境下访问控制的问题,可以利用RBAC策略为SOA构建安全体系。但由于RBAC仅仅将用户的功能或职责属性定义为角色,未考虑用户的其它属性,并且RBAC未考虑用户访问的客体的除标识之外的其它属性以及与SOA环境相关的安全属性,所以其难以适用于多种商业应用场景。为解决现有的访问控制策略灵活性和可扩展性差的问题,基于属性的访问控制(Attribute Based Access control,以下简称:ABAC)策略被提出,ABAC是基于IBAC和RBAC中策略定义标识或角色的局限性而做出扩展和改进,其基本思想是:基于主体,资源或者可操作上下文的相关属性进行策略定义。在访问控制的范畴内,一般会考虑到基于主体、资源(即客体)、授权、环境这四种实体属性进行策略定义,换言之,四种实体属性可包括主体属性、资源属性、授权属性和环境属性,并且ABAC策略可以基于任意的主体、资源或环境属性的组合来定义策略。与传统的访问控制策略不同,ABAC策略基于请求者的属性对其访问进行授权,不需要预先定义用户,因此具有很好的灵活性和动态可扩展性。所以相比于IBAC策略和RBAC策略,ABAC策略具有更加丰富的语义,能够提供更加细粒度的访问控制。
针对ABAC的规范问题,高级结构化信息标准组织(Organization for theAdvancement of Structured Information Standards,以下简称:OASIS)提出了二个标准,包括:安全断言标记语言(Security Assertion MarkupLanguage,以下简称:SAML)和可扩展访问控制标记语言(eXtensible AccessControl Markup Language,XACML)。其中XACML标准对ABAC提供了良好的支持,一方面,它为ABAC策略提出了一个访问控制框架,定义了参与访问控制的执行流程的关键实体及各实体之间的交互关系;另一方面,它定义了一种基于XML的访问控制策略定义语言,可以描述多种访问控制策略。XACML在策略定义、策略索引以及策略组织方面给出了良好的解决方法;该标准还给出了策略定义时的各种实体可参考属性,用于定义策略的常用数据类型和能够施加于常用数据之上的常用函数,为策略定义提供了很好的基础设施。除此之外,XACML还定义了用于策略执行点接受请求和给与应答的标准XML格式,这对于异构的系统间实现访问控制提供了很好的支持。因此,XACML被公认为是一种可以对ABAC策略进行准确而全面描述的标准,利用XACML进行表达的ABAC策略(即基于XACML的ABAC策略)具有很强的实用性。
但基于XACML的ABAC策略也存在如下问题:XACML作为一种特定的XML规范,虽然其可以实现对ABAC策略准确的描述,但基于XACML的ABAC策略语法复杂、语句冗长,当用户定义基于XACML的ABAC策略时,需要首先理解XACML的描述方法并通过人工方式写出复杂的基于XACML进行表达的ABAC策略,这对于用户来讲难以掌握和应用,导致了用户难于定义基于XACML的ABAC策略;并且在用户定义基于XACML的ABAC策略时,通过人工方式写出复杂的基于XACML的ABAC策略过程中容易出现错误。
发明内容
本发明的目的是针对现有技术中存在的问题,提出一种访问控制策略生成方法及装置,从而解决现有技术中用户难于定义基于XACML的ABAC策略以及通过人工方式写出复杂的基于XACML的ABAC策略过程中容易出现错误的问题。
为实现上述目的,本发明提供了一种访问控制策略生成方法,包括:
根据用户通过预先建立的基于属性的访问控制ABAC策略视图模板输入的ABAC策略信息,生成ABAC策略表达式;
根据预先设置的ABAC策略视图模板与可扩展访问控制标记语言XACML模板之间的映射规则,将所述ABAC策略表达式转换成符合XACML模板的基于XACML的ABAC策略。
为实现上述目的,本发明还提供了一种访问控制策略生成装置,包括:
生成模块,用于根据用户通过预先建立的ABAC策略视图模板输入的ABAC策略信息,生成ABAC策略表达式;
转换模块,用于根据预先设置的ABAC策略视图模板与XACML模板之间的映射规则,将所述ABAC策略表达式转换成符合XACML模板的基于XACML的ABAC策略。
本发明的技术方案中根据输入的ABAC策略信息生成ABAC策略表达式,再通过设置的映射规则将ABAC策略表达式自动转换成基于XACML的ABAC策略,在此过程中用户只需通过ABAC策略视图模板输入一些简单的ABAC策略信息,无需以人工方式写出复杂的基于XACML的ABAC策略,减轻了用户的负担,便于用户理解和操作,从而解决了用户难于定义基于XACML的ABAC策略的问题;同时由于基于XACML的ABAC策略是自动生成的,避免了用户以人工方式写出复杂的基于XACML的ABAC策略过程中容易出现错误的问题,从而保证了基于XACML的ABAC策略的准确性。
下面通过附图和实施例,对本发明的技术方案做进一步的详细描述。
附图说明
图1为本发明访问控制策略生成方法实施例一的流程图;
图2为本发明访问控制策略生成方法实施例二的流程图;
图3为本发明ABAC策略视图模板的结构示意图;
图4为本发明XACML模板的结构示意图;
图5为本发明XACML模板的整体结构示意图;
图6为本发明ABAC策略视图模板与XACML模板之间的映射规则的结构示意图;
图7为本发明将ABAC策略表达式转换成符合XACML模板的基于XACML的ABAC策略的方法的流程图;
图8为本发明实体约束表达式转换成XACML策略模板中元素的示意图;
图9为本发明原子约束表达式转换为XACML模板<Apply>的流程图;
图10为本发明原子约束表达式转换成的XACML策略模板中元素的示意图;
图11为本发明复合约束表达式的多叉树的结构示意图;
图12为本发明多叉树转换成的XACML策略模板中元素的示意图;
图13为本发明访问控制装置实施例一的结构示意图;
图14为本发明访问控制装置实施例二的结构示意图。
具体实施方式
图1为本发明访问控制策略生成方法实施例一的流程图,如图1所示,该方法包括:
步骤101、根据用户通过预先建立的ABAC策略视图模板输入的ABAC策略信息,生成ABAC策略表达式;
步骤102、根据预先设置的ABAC策略视图模板与XACML模板之间的映射规则,将ABAC策略表达式转换成符合XACML模板的基于XACML的ABAC策略。
本实施例的技术方案中根据输入的ABAC策略信息生成ABAC策略表达式,再通过设置的映射规则将ABAC策略表达式自动转换成基于XACML的ABAC策略,在此过程中用户只需通过ABAC策略视图模板输入一些简单的ABAC策略信息,无需以人工方式写出复杂的基于XACML的ABAC策略,减轻了用户的负担,便于用户理解和操作,从而解决了用户难于定义基于XACML的ABAC策略的问题;同时由于该方法中基于XACML的ABAC策略是自动生成的,避免了用户以人工方式写出复杂的基于XACML的ABAC策略过程中容易出现错误的问题,从而保证了基于XACML的ABAC策略的准确性。
图2为本发明访问控制策略生成方法实施例二的流程图,如图2所示,
步骤201、建立ABAC策略视图模板;
ABAC策略视图模板是直接面向用户的ABAC策略表达,用户可以通过该ABAC策略视图模板输入ABAC策略信息。实际操作中,ABAC策略视图模板可以向用户提供一个进行策略定义的视图界面,用户可以根据该视图界面的提示输入自己所需的ABAC策略信息,从而完成对ABAC策略的定义。图3为本发明ABAC策略视图模板的结构示意图,如图3所示,由于XACML模板在结构上具有树状结构的特征,所以ABAC策略视图模板也是以树状结构表示的,树状结构是以节点的形式组织属性定义和策略定义中的各个元素。ABAC策略视图模板可包括属性定义和策略定义二个部分,属性定义可包括主体属性集、资源属性集、授权属性集和环境属性集四种实体属性集。每个实体属性集均包括多个实体属性,即多个原子属性。策略定义可包括若干策略,每个策略包括若干规则,每条规则均可包括主体约束集、资源约束集、授权约束集和环境约束集四种实体约束集。每个实体约束集均可包括多个实体约束,即多个原子约束和多个复合约束。用户可以通过定义各类实体属性集下包括的原子属性进行属性定义,即定义实体约束中要使用的原子属性;用户还可以通过定义各个实体约束集包括的原子约束和/或复合约束进行安全策略的定义。其中,原子约束还可称为简单约束(Simple Rule,简称:SR),其可以通过例如(属性,操作符,属性值)表达式或者(属性,操作符,属性)表达式来表示;复合约束(Complex Rule,简称:CR)为各原子约束的任意的逻辑复合,例如a1、a2和a3为三个原子约束表达式,则a1 and(a2 or a3)即为一条复合约束表达式。采用树状结构组织ABAC策略视图模板,对于用户来说易于理解、便于操作,并且可以使ABAC策略视图模板中的元素与XACML模板中的元素实现完全映射以保证从ABAC策略表达式到基于XACML的ABAC策略转换的顺利进行。
步骤202、建立XACML模板;
本实施例中可以利用XACML标准中定义的38种元素对ABAC策略进行描述,从而生成基于XACML的ABAC策略。例如,其常用的元素包括<Policy>(策略)、<Rule>(规则)、<Target>(目标)、<Apply>(请求)、<Condition>(条件)等,实际应用中,可以根据需要利用XACML定义的元素中的其它元素对ABAC策略进行描述。图4为本发明XACML模板的结构示意图,如图4所示,XACML模板为树状结构,图4的XACML模板中仅列出了一些外层的元素,例如图4中的<Policy>、<Rule>、<Target>、<Apply>以及<Condition>元素,其中<Policy>和<Rule>为XACML模板的二种顶层元素,而内层的元素在此没有详细列出,并且该XACML模板仅为一种示例,不能成为对本发明技术方案的限制。
其中,<Target>本质上是一个布尔表达式,其固定元素结构表达了一种固定的逻辑关系。<Target>可中以包括四个实体元素集合,分别是<Subjects>(主体)、<Resources>(资源)、<Actions>(授权)和<Environments>(环境),每一个实体元素集合中可以包含一个或多个相应的实体元素,例如,<Subjects>中可以包括一个或多个<Subject>、<Resource>中可以包括一个或多个<Resource>、<Action>中可以包括一个或多个<Action>以及<Environment>中可以包括一个或多个<Environment>。上述每一个实体元素还可以包括一个或多个相应的实体匹配元素,分别是<SubjectMatch>(主体匹配)、<ResourceMatch>(资源匹配)、<ActionMatch>(授权匹配)和<EnvironmentMatch>(环境匹配)。上述<Target>中的元素用于描述具体的ABAC策略,因图4仅为XACML模板的示意图,所以上述<Target>中的元素在图4中未示出。
<Condition>本质上也是一个布尔表达式,用来表示资源访问请求应满足的约束条件。当某一请求通过<Rule>中<Target>的评估,如果该<Rule>中<Condition>存在,则使用<Condition>进行进一步的计算。
<Target>与<Condition>的区别在于:<Target>具有固定的元素结构和计算逻辑,<Condition>虽然不具备上述特点,但是它更加灵活,策略编写者甚至可以使用各种元素在<Condition>中构造和<Target>相同的结构;<Target>中最终表达的是一种属性值与属性间的简单匹配关系,这是因为<Target>的作用是索引,考虑到效率问题,其匹配关系不能定义的过于复杂,而在<Condition>中,可以定义更加复杂的匹配关系,比如可以在表达式中的属性值、属性和子表达式中任取二种以构造具有实际意义的匹配关系。
为进一步说明XACML模板中的各种元素,可参见图5,图5为本发明XACML模板的整体结构示意图。一条策略<Policy>中必须包含一个目标<Target>元素,用于在策略查找的过程中,确定策略是否适合用于对指定的请求进行访问控制。一条策略中可以包含0条、1条或多条规则<Rule>,策略中提供了标准的规则组合算法来处理多条规则对同一请求进行评估时出现的冲突,其中当策略中包含0条规则时表示该条策略不对访问请求进行控制。规则是表达访问控制策略语义的最小元素,包括实体约束,实体约束的逻辑表达式构成条件<Condition>,该条件用来对请求进行评估,以便于使规则给出决策结果。规则不能独立存在,它必须被封装在某条策略中。基于XACML的ABAC策略中的规则主要在<Target>或<Condition>元素中定义。
步骤203、设置ABAC策略视图模板与XACML模板之间的映射规则;
设置的ABAC策略视图模板与XACML模板之间的映射规则要符合以下原则:保证ABAC策略表达式转换成基于XACML的ABAC策略过程中,ABAC策略表达式中的各个实体约束不丢失,以及各实体约束间的逻辑关系不改变。
在上述原则下,设置的ABAC策略视图模板与XACML模板之间的映射规则可以如图6所示,图6为本发明ABAC策略视图模板与XACML模板之间的映射规则的结构示意图。ABAC策略视图模板与XACML模板之间的映射规则可包括以下二个部分:ABAC策略视图模板中实体属性集与XACML模板中元素之间的映射以及ABAC策略视图模板中实体约束集与XACML模板中元素之间的映射。其中,ABAC策略视图模板的实体属性集中的每个实体属性均直接映射到XACML模板中<Target>或者<Condition>中的元素Attribute ID(属性标识)。而ABAC策略视图模板中的实体约束集中的实体约束可映射到<Target>中的<Entity>或者<Condition>中的<Apply>。
步骤204、根据用户通过ABAC策略视图模板输入的ABAC策略信息,生成ABAC策略表达式;
用户通过ABAC策略视图模板输入ABAC策略信息,ABAC策略信息可以包括属性定义以及策略定义中各元素(具体参见图3)的内容,例如,用户可以输入各实体属性集中的原子属性的内容、各实体约束集中的原子约束以及复合约束的内容,以及策略名,规则名等ABAC策略信息。特别地,用户输入的ABAC策略信息可以为空集,原子属性的内容、各实体约束集中的原子约束以及复合约束的内容等均为空集,即用户可以不输入上述ABAC策略信息。
根据用户输入的ABAC策略信息生成ABAC策略表达式。该ABAC策略表达式在包括原子属性表达式的基础上,根据策略定义的需要还可以包括原子约束表达式和/或复合约束表达式。特别地,ABAC策略表达式还可以为空策略,即ABAC策略表达式中既不包括原子属性表达式,也不包括原子约束表达式和复合约束表达式,ABAC策略表达式为一个空集合。
步骤205、根据ABAC策略视图与XACML模板之间的映射规则,将ABAC策略表达式转换成符合XACML模板的基于XACML的ABAC策略;
具体参见图7,图7为本发明将ABAC策略表达式转换成符合XACML模板的基于XACML的ABAC策略的方法的流程图,步骤205具体包括:
步骤2051、将ABAC策略表达式中的原子属性表达式转换成XACML模板中<Target>或者<Condition>中的Attribute ID;
步骤2052、将所述ABAC策略表达式中的原子约束表达式和/或复合约束表达式转换成XACML模板的<Rule>中的<Target>中的<Entity>或者<Condition>中的<Apply>;
ABAC策略视图模板中,各实体约束集中的实体约束之间的关系是平等的,根据其生成的各表达式之间的关系也是平等的。而在XACML策略模板中,<Target>和<Condition>中虽然都可以容纳各实体约束集中的实体约束表达式,但是二者的结构和作用有所不同。<Target>一般容纳原子约束表达式,用于确定策略或规则是否适合用于对某一请求进行决策;<Condition>是规则的主体,一般由复杂的布尔表达式构成,用于对请求进行决策。因为布尔表达式过于复杂会影响策略的验证效率,所以应将能被快速决策的实体约束表达式放在<Target>中,这一方面能够利用<Target>中实体约束表达式的过滤作用避免不必要的<Condition>验证,另一方面也减小了<Condition>的复杂度,从而提高策略的验证效率。
因此,为保证最终生成的基于XACML的ABAC策略具有良好的验证效率,首先将所述ABAC策略表达式中的原子约束表达式和/或复合约束表达式按照分类规则进行分类处理,也就是按照各表达式的复杂程度进行分类,其中,原子约束表达式可以是如(第一操作数,操作符,第二操作数)形式的表达式,其中,第一操作数可以为属性,第二操作数可以为属性或者属性值,即(第一操作数,操作符,第二操作数)可以为(属性,操作符,属性值)或者(属性,操作符,属性)形式的表达式,其表示属性与属性值或两个不同的属性之间的关系运算,其中,属性和属性值可以为简单类型值,具体分类规则如下:
1)SR0:形如(属性,操作符,属性值)的原子约束表达式,其中属性为各种实体的id、主体的ip-address或dns-name的一种。
2)SR1:形如(属性,操作符,属性值)的原子约束表达式,其中属性不属于各种实体的id,主体的ip-address或者dns-name。
3)SR2:SR0、SR1之外的原子约束表达式,例如(属性,操作符,属性)形式的原子约束表达式。
基于上述对原子约束表达式的分类,进一步对复合约束表达式进行分类:
1)CR0:由SR0中原子约束表达式之间的“或”关系构成的复合约束表达式。
2)CR1:由SR0和SR1中原子约束表达式之间的“或”关系构成的复合约束表达式。
3)CR2:由SR0和SR1中原子约束表达式之间的“与”关系构成的复合约束表达式。
4)CR3:CR0、CR1以及CR2之外的其它复合约束表达式。
综上所述,按照上述分类规则,可得到如下分类结果:原子约束表达式可分为SR0、SR1和SR2三种类型,而复合约束表达式可分为CR0、CR1、CR2和CR3四种类型。
将分类结果按照分配规则转换成XACML模板<Rule>或者<Condition>;分配规则主要包括各分类结果中各实体约束表达式的复杂程度、各个分类结果中各实体约束表达式间的相关性大小以及<Target>的长度三方面因素。
具体地,可以参见图8,图8为本发明实体约束表达式转换成XACML策略模板中元素的示意图。XACML模板中<Target>中的<Entities>可分为三种类型:①<Entities>中只包含一个<Entity>,并且<Entity>中只包含一个<EntityMatch>;②<Entities>中包含多个<Entity>,每个<Entity>中只包含一个<EntityMatch>;③<Entities>中包含一个<Entity>,并且<Entity>中包含多个<EntityMatch>。上述XACML模板中<Entities>的数量可以为多个,<Condition>中<Apply>的数量也可以为多个,图中仅示出一个作为示例。图8中,SR0型原子约束表达式转换成类型①的<Entity>,因类型①的<Entities>中只包含一个<Entity>,<Entity>中只包含一个<EntityMatch>,所以转换成<Entity>的实际过程就是转换成<Entity>中的<EntityMatch>;部分CR0中的复合约束表达式转换成类型②中的一个<Entity>,部分CR1中的复合约束表达式转换成类型②中的另一个<Entity>,因类型②的<Entities>中每个<Entity>中只包含一个<EntityMatch>,所以转换成<Entity>的实际过程就是转换成<Entity>中的<EntityMatch>;部分SR1型原子约束表达式转换成类型③的<Entity>中的一个<EntityMatch>,部分CR2型的复合约束表达式转换成类型③的<Entity>中的另一个<EntityMatch>;SR1中的其它原子约束表达式每个转换成<Condition>中的一个<Apply>,CR1中的其它复合约束表达式每个转换成<Condition>中的一个或多个<Apply>,CR2中的其它复合约束表达式每个转换成<Condition>中的一个或多个<Apply>。图8中的转换是在对各种约束进行分类的基础上,再按照分配规则进行分配的结果,该分配规则充分考虑了各分类结果中各实体约束表达式的复杂程度、各个分类结果内部各实体约束表达式间的相关性大小以及<Target>的长度,按照上述分类规则以及分配规则转换成的基于XACML的ABAC策略,具有良好的验证效率。图8中的示例中转换成<Entity>或<Apply>的实体约束表达式均包括原子约束表达式和复合约束表达式,实际策略定义过程中还可以包括仅有原子约束表达式或者仅有复合约束表达式的情况。
在转换过程中,按照分配规则将所述分类结果中适合转换成XACML模板<Rule>中的<Target>中的<Entity>的原子约束表达式和/或复合约束表达式转换成<Rule>中的<Target>中的<Entity>。在具体执行过程中,将分类结果分别放入到不同的List(列表)中,即将不同类型的原子约束表达式和复合约束表达式放入不同的List,然后对List进行扫描筛选,List中的原子约束表达式或复合约束表达式位置越靠前其优先级越高,然后将原子约束表达式或复合约束表达式进行分解,按照分配规则,将其中适合转换成<Target>的原子约束表达式和/或复合约束表达式转换成<Target>中的<Entity>,在转换过程中原子约束表达式或复合约束表达式按优先级依次转换,对优先级高的原子约束表达式或复合约束表达先进行转换。将未转换成<Target>的原子约束表达式和/或复合约束表达式转换成XACML模板<Rule>中的<Condition>中的<Apply>。
其中,原子约束表达式转换成<Rule>中的元素<Condition>中的<Apply>的步骤可如图9所示,图9为本发明原子约束表达式转换为XACML模板<Apply>的流程图,原子约束表达式为(第一操作数,操作符,第二操作数)形式的原子约束表达式,其转换过程包括:
步骤2061、创建<Apply>;
步骤2062、将原子约束表达式的操作符转换成<Apply>中的FunctionId;
步骤2063、将原子约束表达式的第一操作数转换成<Apply>中的元素;
步骤2064、将原子约束表达式的第二操作数转换成<Apply>中的元素。
具体地,可参见图10,图10为本发明原子约束表达式转换成的XACML策略模板中元素的示意图,本实施例中原子约束表达式为(第一操作数,操作符,第二操作数),将操作符转换成<Apply>中的FunctionId,具体地,转换成操作符对应的XACML元素,即以XACML语言表达的操作符;将第一操作数转换成<Apply>中的元素,具体地,转换成第一操作数对应的XACML元素,即以XACML语言表达的第一操作数;将第二操作数转换成<Apply>中的元素,具体地,转换成第二操作数对应的XACML元素,即以XACML语言表达的第二操作数。图10中的转换后的“操作符”、“第一操作数”和“第二操作数”具体应为其对应的XACML元素,在此仅作为一种示例以说明原子约束表达式的转换过程。
其中,复合约束表达式转换成<Rule>中的元素<Condition>中的<Apply>可采用树的遍历这一运算方法,本实施例中采用的是先序遍历。
首先,将复合约束表达式按照优先级顺序转换成多叉树,优先级顺序是指复合约束表达式中的各元素从左到右的排列顺序;
例如,对于复合约束表达式a1 and a2 and a3 or(a4 or a5)and a6,其转换成的多叉树可参见图11,图11为本发明复合约束表达式的多叉树的结构示意图,图11中的多叉树包括多个节点,分别为:a1、a2、a3、a4、a5、a6、and和or,其中,a1、a2、a3、a4、a5、a6为原子约束表达式,and和or为逻辑连接词,并且多叉树分为多个层次。
其次,对多叉树中的节点进行先序遍历,将遍历到的节点依次转换成<Condition>中的<Apply>;
多叉树先序遍历的节点依次为:or、and、a1、a2、a3、and、or、a4、a5和a6,按照上述顺序将遍历到的节点依次转换成<Condition>中的<Apply>。其中,将遍历到的逻辑连接词转换成<Apply>中的FunctionId;将遍历到的原子约束表达式转换成<Apply>。具体地,可参见图12,图12为本发明多叉树转换成的XACML策略模板中元素的示意图,以图11中的多叉树为例。将顶层的逻辑连接词or转换为<Apply>中的FunctionId;将原子约束表达式a1、a2、a3的逻辑连接词and转换成<Apply>中的FunctionId,该<Apply>为or转换成的<Apply>的下一层;将原子约束表达式a1、a2、a3转换成<Apply>中的元素,该<Apply>为and转换成的<Apply>,也就是说该<Apply>中FunctionId中的and表明了a1、a2、a3的逻辑关系;将另一个逻辑连接词and转换成另一个<Apply>中的FunctionId,该<Apply>与a1、a2、a3的逻辑连接词and转换成的<Apply>为并列关系;将原子约束表达式a4、a5的逻辑连接词or转换为<Apply>中的FunctionId,该<Apply>为逻辑连接词and转换成的<Apply>的下一层;将原子约束表达式a4、a5转换成<Apply>中的元素,该<Apply>为or转换成的<Apply>,也就是说该<Apply>中FunctionId中的or表明了a4、a5的逻辑关系;将原子约束表达式a6转换成<Apply>中的元素,<Apply>为顶层的逻辑连接词or转换成的<Apply>。其中对a1、a2、a3、a4、a5和a6的转换与原子约束表达式转换成<Condition>中的<Apply>的方法相同,可以参见图9和图10,此处不再详细描述。图12中的转换后的“操作符”、各个“第一操作数”和各个“第二操作数”具体应为其对应的XACML元素,在此仅作为一种示例以说明复合约束表达式的转换过程。
由上述转换过程可以得出,多叉树的层次数对应<Condition>中<Apply>的层次数。如果多叉树的某层的节点为逻辑连接词,则节点转换后对应该层的<Apply>中只含有FunctionId这一个元素,并且该元素的值为逻辑连接词代表的逻辑关系。如果某层节点为a1、a2等原子约束表达式,则原子约束表达式中的二个操作数转换为<Appl y>中的元素,如果多叉树的某一层包含多个节点,那么这些节点每个转换为一个<Apply>,转换成的<Apply>是并列关系,并且这些<Apply>的逻辑关系为其上层<Apply>的FunctionId中所指示的逻辑关系。
步骤2053、对所有<Target>中的<Entity>中的<Resource>进行取并集处理,生成<Policy>中的<Target>。
<Policy>中的<Target>起到对策略进行索引的作用,但由于ABAC策略视图模板的策略中并不直接包含各实体约束,因此需要利用策略中的每条规则转换成的<Rule>中的<Target>来构造<Policy>的<Target>。
特别地,当ABAC策略表达式为空策略时,其转换成的基于XACML的ABAC策略为空集合。
本实施例的技术方案中根据输入的ABAC策略信息生成ABAC策略表达式,再通过设置的映射规则将ABAC策略表达式自动转换成基于XACML的ABAC策略,在此过程中用户只需通过ABAC策略视图模板输入一些简单的ABAC策略信息,无需以人工方式写出复杂的基于XACML的ABAC策略,减轻了用户的负担,便于用户理解和操作,从而解决了用户难于定义基于XACML的ABAC策略的问题;同时由于该方法中基于XACML的ABAC策略是自动生成的,避免了用户以人工方式写出复杂的基于XACML的ABAC策略过程中容易出现错误的问题,从而保证了基于XACML的ABAC策略的准确性。
图13为本发明访问控制装置实施例一的结构示意图,如图13所示,该装置包括相互连接的生成模块1和转换模块2。生成模块1根据用户通过预先建立的ABAC策略视图模板输入的ABAC策略信息,生成ABAC策略表达式;转换模块2根据预先设置的ABAC策略视图模板与XACML模板之间的映射规则,将生成模块1生成的ABAC策略表达式转换成符合XACML模板的基于XACML的ABAC策略。
图14为本发明访问控制装置实施例二的结构示意图,如图14所示,本实施例在实施例一的基础上增设了第一建立模块3、第二建立模块4以及设置模块5。第一建立模块3分别与生成模块1以及设置模块5连接,第二建立模块4与设置模块5连接,设置模块5与转换模块2连接。第一建立模块3建立ABAC策略视图模板;第二建立模块4建立XACML模板;设置模块5设置第一建立模块3建立的ABAC策略视图模板与第二建立模块4建立的XACML模板之间的映射规则;用户通过第一建立模块3建立的ABAC策略视图模板输入ABAC策略信息,并由第一建立模块3将ABAC策略信息发送给生成模块1。
本实施例中的访问控制装置根据用户输入的ABAC策略信息生成ABAC策略表达式,再通过设置的映射规则将ABAC策略表达式自动转换成基于XACML的ABAC策略,在此过程中用户只需通过ABAC策略视图模板输入一些简单的ABAC策略信息,无需以人工方式写出复杂的基于XACML的ABAC策略,减轻了用户的负担,便于用户理解和操作,从而解决了用户难于定义基于XACML的ABAC策略的问题;同时由于访问控制装置可以自动生成基于XACML的ABAC策略,避免了用户以人工方式写出复杂的基于XACML的ABAC策略过程中容易出现错误的问题,从而保证了基于XACML的ABAC策略的准确性。
最后应说明的是:以上实施例仅用以说明本发明的技术方案而非对其进行限制,尽管参照较佳实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对本发明的技术方案进行修改或者等同替换,而这些修改或者等同替换亦不能使修改后的技术方案脱离本发明技术方案的精神和范围。
Claims (10)
1.一种访问控制策略生成方法,其特征在于,包括:
根据用户通过预先建立的基于属性的访问控制ABAC策略视图模板输入的ABAC策略信息,生成ABAC策略表达式;
根据预先设置的ABAC策略视图模板与可扩展访问控制标记语言XACML模板之间的映射规则,将所述ABAC策略表达式转换成符合XACML模板的基于XACML的ABAC策略。
2.根据权利要求1所述的方法,其特征在于,所述ABAC策略表达式包括原子属性表达式。
3.根据权利要求2所述的方法,其特征在于,所述ABAC策略表达式还包括原子约束表达式和/或复合约束表达式。
4.根据权利要求1所述的方法,其特征在于,所述根据用户通过预先建立的ABAC策略视图模板输入的ABAC策略信息,生成ABAC策略表达式之前还包括:
建立所述ABAC策略视图模板。
5.根据权利要求1所述的方法,其特征在于,所述根据预先设置的ABAC策略视图模板与XACML模板之间的映射规则,将所述ABAC策略表达式转换成符合XACML模板的基于XACML的ABAC策略之前还包括:
建立所述XACML模板。
6.根据权利要求1所述的方法,其特征在于,所述根据预先设置的ABAC策略视图模板与XACML模板之间的映射规则,将所述ABAC策略表达式转换成符合XACML模板的基于XACML的ABAC策略之前还包括:
设置所述ABAC策略视图模板与所述XACML模板之间的映射规则。
7.根据权利要求1至6任一所述的方法,其特征在于,所述根据预先设置的ABAC策略视图模板与XACML模板之间的映射规则,将所述ABAC策略表达式转换成符合XACML模板的基于XACML的ABAC策略包括:
将所述ABAC策略表达式中的原子属性表达式转换成XACML模板的规则<Rule>中的目标<Target>或者条件<Condition>中的属性标识Attribute ID;
将所述ABAC策略表达式中的原子约束表达式和/或复合约束表达式转换成XACML模板的<Rule>中的<Target>中的实体<Entity>或者<Condition>中的请求<Apply>;
对所有<Rule>中的<Target>中的<Entity>中的资源<Resource>进行取并集处理,生成策略<Policy>的<Target>。
8.根据权利要求7所述的方法,其特征在于,将所述ABAC策略表达式中的原子约束表达式和/或复合约束表达式转换成XACML模板的<Rule>中的<Target>中的<Entity>或者<Condition>中的<Apply>包括:
将所述ABAC策略表达式中的原子约束表达式和/或复合约束表达式按照分类规则进行分类处理,得出分类结果;
按照分配规则将所述分类结果中适合转换成XACML模板<Rule>中的<Target>中的<Entity>的原子约束表达式和/或复合约束表达式转换成<Rule>中的<Target>中的<Entity>;
将分类结果中未转换成<Target>中的<Entity>的原子约束表达式和/或复合约束表达式转换成XACML模板<Rule>中的元素<Condition>。
9.一种访问控制策略生成装置,其特征在于,包括:
生成模块,用于根据用户通过预先建立的ABAC策略视图模板输入的ABAC策略信息,生成ABAC策略表达式;
转换模块,用于根据预先设置的ABAC策略视图模板与XACML模板之间的映射规则,将所述ABAC策略表达式转换成符合XACML模板的基于XACML的ABAC策略。
10.根据权利要求9所述的装置,其特征在于,还包括:
第一建立模块,用于建立所述ABAC策略视图模板;
第二建立模块,用于建立所述XACML模板;
设置模块,用于设置所述ABAC策略视图模板与所述XACML模板之间的映射规则。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 200910076116 CN101771683B (zh) | 2009-01-07 | 2009-01-07 | 访问控制策略生成方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 200910076116 CN101771683B (zh) | 2009-01-07 | 2009-01-07 | 访问控制策略生成方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101771683A true CN101771683A (zh) | 2010-07-07 |
CN101771683B CN101771683B (zh) | 2012-12-12 |
Family
ID=42504277
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN 200910076116 Expired - Fee Related CN101771683B (zh) | 2009-01-07 | 2009-01-07 | 访问控制策略生成方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101771683B (zh) |
Cited By (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102262667A (zh) * | 2011-07-27 | 2011-11-30 | 北京航空航天大学 | 一种本源xml数据库中xml文档的访问控制方法 |
CN102307205A (zh) * | 2011-09-29 | 2012-01-04 | 北京理工大学 | 由信誉评估上升到信任管理的跨域访问控制策略生成方法 |
CN102932328A (zh) * | 2012-09-26 | 2013-02-13 | 上海交通大学 | 一种基于二进制序列集合的访问控制策略合成方法 |
CN103198361A (zh) * | 2013-03-09 | 2013-07-10 | 西安电子科技大学 | 基于多种优化机制的xacml策略评估引擎系统 |
CN103327002A (zh) * | 2013-03-06 | 2013-09-25 | 西安电子科技大学 | 基于属性的云存储访问控制系统 |
CN103607305A (zh) * | 2013-11-26 | 2014-02-26 | 北京华胜天成科技股份有限公司 | 一种分布式网络策略实现方法和装置 |
CN103645987A (zh) * | 2013-12-20 | 2014-03-19 | 南京大学 | 基于代码生成和符号执行的访问控制策略测试自动生成方法 |
CN104318163A (zh) * | 2014-10-27 | 2015-01-28 | 北京工业大学 | 一种第三方软件可信构建方法 |
CN105095777A (zh) * | 2015-07-31 | 2015-11-25 | 华中科技大学 | 一种云环境下的多模式访问控制策略制定和执行方法 |
CN105577399A (zh) * | 2014-10-09 | 2016-05-11 | 中兴通讯股份有限公司 | 一种网络设备的访问控制列表管理方法和装置 |
CN108712369A (zh) * | 2018-03-29 | 2018-10-26 | 中国工程物理研究院计算机应用研究所 | 一种工业控制网多属性约束访问控制决策系统和方法 |
CN110879899A (zh) * | 2019-11-01 | 2020-03-13 | 北京科技大学 | 一种基于脚本的属性基访问策略表示与执行方法及系统 |
CN112131434A (zh) * | 2020-09-24 | 2020-12-25 | 西安电子科技大学 | 基于匹配树的可扩展访问控制标记语言策略搜索方法 |
CN112540979A (zh) * | 2019-09-23 | 2021-03-23 | 北京国双科技有限公司 | 表达式的存储方法及装置 |
US20230122504A1 (en) * | 2021-10-20 | 2023-04-20 | Dell Products L.P. | Common Access Management Across Role-Based Access Control and Attribute-Based Access Control |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100499554C (zh) * | 2007-06-28 | 2009-06-10 | 杭州华三通信技术有限公司 | 网络准入控制方法及网络准入控制系统 |
-
2009
- 2009-01-07 CN CN 200910076116 patent/CN101771683B/zh not_active Expired - Fee Related
Cited By (26)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102262667A (zh) * | 2011-07-27 | 2011-11-30 | 北京航空航天大学 | 一种本源xml数据库中xml文档的访问控制方法 |
CN102262667B (zh) * | 2011-07-27 | 2012-12-12 | 北京航空航天大学 | 一种本源xml数据库中xml文档的访问控制方法 |
CN102307205A (zh) * | 2011-09-29 | 2012-01-04 | 北京理工大学 | 由信誉评估上升到信任管理的跨域访问控制策略生成方法 |
CN102307205B (zh) * | 2011-09-29 | 2014-04-23 | 北京理工大学 | 由信誉评估上升到信任管理的跨域访问控制策略生成方法 |
CN102932328A (zh) * | 2012-09-26 | 2013-02-13 | 上海交通大学 | 一种基于二进制序列集合的访问控制策略合成方法 |
CN102932328B (zh) * | 2012-09-26 | 2016-01-13 | 上海交通大学 | 一种基于二进制序列集合的访问控制策略合成方法 |
CN103327002A (zh) * | 2013-03-06 | 2013-09-25 | 西安电子科技大学 | 基于属性的云存储访问控制系统 |
CN103327002B (zh) * | 2013-03-06 | 2016-04-27 | 西安电子科技大学 | 基于属性的云存储访问控制系统 |
CN103198361A (zh) * | 2013-03-09 | 2013-07-10 | 西安电子科技大学 | 基于多种优化机制的xacml策略评估引擎系统 |
CN103198361B (zh) * | 2013-03-09 | 2016-04-13 | 西安电子科技大学 | 基于多种优化机制的xacml策略评估引擎系统 |
CN103607305A (zh) * | 2013-11-26 | 2014-02-26 | 北京华胜天成科技股份有限公司 | 一种分布式网络策略实现方法和装置 |
CN103607305B (zh) * | 2013-11-26 | 2017-03-15 | 北京华胜天成科技股份有限公司 | 一种分布式网络策略实现方法和装置 |
CN103645987B (zh) * | 2013-12-20 | 2016-01-20 | 南京大学 | 基于代码生成和符号执行的访问控制策略测试自动生成方法 |
CN103645987A (zh) * | 2013-12-20 | 2014-03-19 | 南京大学 | 基于代码生成和符号执行的访问控制策略测试自动生成方法 |
CN105577399A (zh) * | 2014-10-09 | 2016-05-11 | 中兴通讯股份有限公司 | 一种网络设备的访问控制列表管理方法和装置 |
CN104318163A (zh) * | 2014-10-27 | 2015-01-28 | 北京工业大学 | 一种第三方软件可信构建方法 |
CN104318163B (zh) * | 2014-10-27 | 2017-06-16 | 北京工业大学 | 一种第三方软件可信构建方法 |
CN105095777A (zh) * | 2015-07-31 | 2015-11-25 | 华中科技大学 | 一种云环境下的多模式访问控制策略制定和执行方法 |
CN105095777B (zh) * | 2015-07-31 | 2018-01-09 | 华中科技大学 | 一种云环境下的多模式访问控制策略制定和执行方法 |
CN108712369A (zh) * | 2018-03-29 | 2018-10-26 | 中国工程物理研究院计算机应用研究所 | 一种工业控制网多属性约束访问控制决策系统和方法 |
CN108712369B (zh) * | 2018-03-29 | 2022-01-07 | 中国工程物理研究院计算机应用研究所 | 一种工业控制网多属性约束访问控制决策系统和方法 |
CN112540979A (zh) * | 2019-09-23 | 2021-03-23 | 北京国双科技有限公司 | 表达式的存储方法及装置 |
CN110879899A (zh) * | 2019-11-01 | 2020-03-13 | 北京科技大学 | 一种基于脚本的属性基访问策略表示与执行方法及系统 |
CN112131434A (zh) * | 2020-09-24 | 2020-12-25 | 西安电子科技大学 | 基于匹配树的可扩展访问控制标记语言策略搜索方法 |
CN112131434B (zh) * | 2020-09-24 | 2023-02-07 | 西安电子科技大学 | 基于匹配树的可扩展访问控制标记语言策略搜索方法 |
US20230122504A1 (en) * | 2021-10-20 | 2023-04-20 | Dell Products L.P. | Common Access Management Across Role-Based Access Control and Attribute-Based Access Control |
Also Published As
Publication number | Publication date |
---|---|
CN101771683B (zh) | 2012-12-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101771683B (zh) | 访问控制策略生成方法及装置 | |
US9390127B2 (en) | RDF graphs made of RDF query language queries | |
US20060224590A1 (en) | Computer-implemented authorization systems and methods using associations | |
Bhartiya et al. | Issues in achieving complete interoperability while sharing electronic health records | |
CN103312722A (zh) | 一种细粒度强制访问的控制设计方法 | |
Holubová et al. | Unified Management of Multi-model Data: (Vision Paper) | |
Solanki et al. | Multi-tenant access and information flow control for SaaS | |
Münch et al. | An innovative virtual enterprise approach to agile micro and SME-based collaboration networks | |
Kensche et al. | Generic schema mappings for composition and query answering | |
CN110928963A (zh) | 针对运维业务数据表的列级权限知识图谱构建方法 | |
Thanos | Mediation: The technological foundation of modern science | |
Leighton et al. | Access control policy translation, verification, and minimization within heterogeneous data federations | |
He et al. | Extending and inferring functional dependencies in schema transformation | |
Braun et al. | Towards Query Interoperability: PASSing PLUS. | |
Hu et al. | SemPIF: A semantic meta-policy interchange format for multiple web policies | |
Leida et al. | Dynamic access control to semantics-aware streamed process logs | |
Blobel | Conceptual model formalization in a semantic interoperability service framework: Transforming relational database schemas to OWL | |
Leighton et al. | Access control policy translation and verification within heterogeneous data federations | |
Wu et al. | N-Tier Soft Set Data Model: An Approach to Combine the Logicality of SQL and the Flexibility of NoSQL | |
Nie et al. | Study on integration model of heterogeneous database based on XML technology | |
Meckler et al. | The Web and Linked Data as a Solid Foundation for Dataspaces | |
Maran et al. | A Software Architecture to Provide Persistence and Retrieve of Context Data Based on Ontological Models | |
Paneque et al. | An ontology-based secure design framework for graph-based databases | |
Kajan et al. | Towards conflict-free virtual enterprises | |
De la Rosa Algarín et al. | Extending the UML standards to model tree-structured data and their access control requirements |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
C17 | Cessation of patent right | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20121212 Termination date: 20140107 |