基于分类方法的细粒度权限管理方法

文档序号:6480891阅读:205来源:国知局

专利名称::基于分类方法的细粒度权限管理方法
技术领域
:主体分类方法和资源分类方法,是一种动态、智能分类方法。可以运用于权限管理、身份认证等领域。基于分类方法的细粒度授权决策方法和细粒度授权查询方法,运用于计算机软件系统权限管理领域。管理主体对资源的访问权限,管理主体对资源的査询权限。2.
背景技术
:计算机系统,尤其是网络系统,资源放在一起集中共享,这些资源可以是图片、数据库、文本、计算机等。当用户请求对某资源进行操作,为了确保系统安全正常运行,系统将对用户和资源进行权限判断,确保该用户对该资源有操作权限,否则拒绝用户请求。权限管理,就是管理用户对资源的操作权限。目前应用最广泛的有两种技术方法1.基于角色的访问控制授权方法;2.XACML(OASISextensibleAccessControlMarkupLanguage)。基于角色的访问控制授权方法,先创建角色,然后授权该角色.有权限访问的资源;将一个或者多个角色授权给用户。当用户访问某资源时,首先査找该用'户有哪些角色,查找出这些角色对应的授权资源。如果授权资源里面有被访问资源,则允许用户请求;否则拒绝用户请求。比如创建管理员角色,授权管理员角色允许访问"添加机构"、"删除机构"网页资源权限。然后给用户张三授予管理员角色。当张三访问"添加机构"时,系统将允许该请求。当张三访问"添加用户"时,因为张三具备的角色都没用被授予"添加用户"权限,系统将拒绝该请求。基于角色的访问控制授权方法是一种粗粒度的权限控制方法。对于细化的需求,基于角色的访问控制则无能为力。比如在某银行系统中,有总行用户张三和北京分行用户李四,现有访问控制需求1.总行管理员只能添加各个分行机构,不能添加支行机构2.北京分行管理员只能添加北京分行下属支行,.不能添加分行机构,且不能添加其他分行支行机构。对于以上需求,基于角色的访问控制只能授予张三和李四管理员角色,赋予该角色添加机构的权限。但无法根据机构的不同层级的属性进一步授权,所以无法实现此类细粒度的访问控制。.XACML是OASIS的一个标准。XACML定义了一种通用的用于保护资源的策略语言和一种访问决策语言。典型的访问控制和授权场景包括三个主要实体主体(Subject)、资源(Resource)和动作(Action)以及它们的属性。主体请求得到对资源执行动作的权限。比如在访问请求"客户请求査看自己的订单"中,主体是"客户",资源是"自己的订单",动作是"査看"。4XACML的授权由策略(Policy)实现。策略中定义若干规则(Rule),规则指定允许或拒绝请求的条件。当主体请求访问资源时,XACML引擎会选择匹配的策略,评估与策略关联的规则。评估过程中,引擎会根据规则的定义对主体、资源以及运行环境(Environment)的属性进行计算和评估,最终做出允许或拒绝请求的决策。其步骤如图1。由于XACML的规则支持对主体、资源以及环境的属性进行复杂计算与评估,所以具备了进行细粒度访问控制的能力。例如对于细粒度授权"分行管理员添加下属支行机构",XACML需要创建一条授权策略。该策略包含的规则为1.主体为拥有"管理员"角色,且所属机构为分行;2.资源为支行机构,且隶属于主体的分行;3.动作为添加分支机构。以上条件满足时,决策的结果为允许,反之拒绝。在该规则中,参与评估的主体属性有"所拥有的角色"和"所属机构";资源属性为"支行机构"和"隶属于主体分行"。XACML其核心是为授权策略定义规则,在规则中对主体,资源和环境属性进行评估,根据评估结果做出访问控制决策(允许或拒绝)。目前IBMTivoliAccessManager和OracleEntitlementServer都是采用这种思路来实现细粒度访问控制。该方法并不完善,有以下两个缺点1.重用性不强策略包含若干规则,不同的策略经常有类似的规则,但不完全相同。例如以下两个策略策略l:分行管理员添加下属支行机构。规则主体的角色为管理员,且所属机构为分行;资源为支行机构,且隶属于主体的分行。策略2:分行管理员添加分行用户。主体的角色为管理员,且所属机构为分行;资源为用户,且与主体属于同一分行。策略1和策略2的规则中都包含了对主体的限制条件主体的角色为管理员,且所属机构为分行。2.不支持资源査询对于"分行管理员有权修改下属支行机构"这一访问控制,XACML可以判断某管理员是否能够修改某支行机构,但不能返回该管理员有权修改的所有支行机构。因为XACML只能返回授权策略决策结果,即允许或拒绝,而不能进行资源査询,返回满足策略规则的资源集合。而在实际的应用系统中,这种需求是随处可见的。XACML还不支持这类查询需求。其实用性受到限制。3.
发明内容本发明包含两大主题1.基于主体分类和资源分类的细粒度授权决策方法;2.基于主体分类和数据查询的细粒度授权査询方法。以上主题运用了主体分类方法、资源分类方法和数据査询方法。主体分类方法和资源分类方法隶属本发明。数据査询方法,是一种常见方法,不隶属本发明。主体分类方法定义主体的分类规则,直接对给定主体的属性进行评估,从而判断主体是否属于该分类,而不用事先显示地将主体划入某分类。主体分类规则的特征是由表达式或表达式组组成,并返回布尔值。表达式可以是数学计算(+,-,*,/)、逻辑计算(AND,OR)和函数等。表达式的特征是对主体的属性、上下文属性或其他数据源数据的计算。主体、上下文环境和数据源都是规则的输入参数。资源分类方法定义资源的分类规则,直接对给定资源和给定主体(给定主体可选)的属性进行评估,从而判断资源是否属于该分类,而不用事先显示地将资源划入某分类。资源分类方法与主体分类方法基本类似,主要有一个显著区别资源分类输入参数为资源、主体、上下文环境和数据源。而主体分类的输入参数没有资源。资源分类方法的主体输入参数是可选的。资源分类规则、表达式、表达式取值和主体分类一致,不再重复。数据査询方法定制査询模板,在运行的时候,对模板中的占位符赋值,形成完整SQL语句,然后进行数据库査询。数据査询方法是一种常见方法。运用于细粒度权限管理领域,数据査询占位符代表的数据,可以来自上下文、主体、资源或者数据源。细粒度授权决策,为不同请求主体设置不同资源操作权限。对给定主体、给定资源,系统能够通过计算,做出决策,允许或者拒绝该请求。基于主体分类和资源分类的细粒度授权决策方法,是一^中简单、直观和实用的细粒度授权决策方法。本方法为每个操作设定一条或者多条授权决策策略。如果有多条策略,策略按照优先级排序。当某主体请求对某资源进行操作时,评估为该操作设置的授权决策策略,得出决策结果。决策结果有两种情况1,允许;2,拒绝,并返回拒绝理由。细粒度授权决策方法,判断请求主体是否对请求资源具有操作权P艮,但不能告诉请求主体具有权限操作的资源有哪些。细粒度授权査询方法,是用来査询出请求主体对哪些资源具有操作权限。细粒度授权查询方法,基于主体分类和数据査询的细粒度授权査询方法,解决了XACML等以往权限管理领域未涉及到的领域。本方法为每个操作设定一条或者多条授权査询策略。如果有多条策略,策略按照优先级排序。对给定主体,系统能够通过计算,选择匹配的査询器,进行资源查询。其査询结果即请求主体具有权限操作的资源集合。4.附图1是XACML工作原理图附图2是细粒度授权决策方法附图3是细粒度授权决策方法附图4是细粒度授权査询方法决策过程示意图。所有策略不满足时査询过程示意图。评估拒绝理由示意图。5.具体实施例方式5.1.主体分类方法主体分类方法定义主体的分类规则,直接对给定主体的属性进行评估,从而判断主体是否属于该分类,而不用事先显示地将主体划入某分类。主体分类主要特征是1.动态匹配计算。通过评估规则判断主体是否属于该分类,而不用事先将主体划入分类,为细粒度授权提供了前提条件。2.具有更好的复用性、可读性。XACML的主体判断规则和资源判断规则混合在一起。通过将主体判断规则提取出来,形成独立分类,这种分类与业务领域中的概念一致,具有很好的稳定性,可以在不同业务操作中复用。分类目的性和可读性更强。主体分类规则的特征是由表达式或表达式组组成,并返回布尔值。表达式可以是数学计算(+,-,*,/)、逻辑计算(AND,OR)和函数等。表达式举例:_//数学计算^^inta=b+l;〃逻辑计算booleanf=(a&&b)&&(c||d)&&e;〃函数c=a.add(b.getVahie());表达式的特征是对主体的属性、上下文属性或其他数据源数据的计算。主体、上下文环境和数据源都是规则的输入参数。表达式获取值举例:_//主体的属性Stringorganization=(String)SUBJECT.get("organization");〃上下文属性Doublemoney=(Double)CONTEXT.get("money");〃执行SQL査询CollectionqueryResult=DATASOURCE.query("selectcolumn1,column2fromtablename");将主体、上下文环境和数据源做为输入参数,执行规则的表达式或表达式组,执行结果就是评估结果。主体分类实施例1:名称规则描述总行用户Stringorganization=SUBJECT.get("organization");returnorganization.equals("总行,,);取出主体(用户)的organization属性值,然后禾口总行机构名称"总行"进行比较。相等表示属于总行用户分类,否则不是。分行用户Collectionbranches=DATASOURCE.query("selectnamefrom査i旬organization表所有分l亍机构(父机构是"总行"),然7<table>tableseeoriginaldocumentpage8</column></row><table>5.2.资源分类方法资源分类方法定义资源的分类规则,直接对给定资源和给定主体(给定主体可选)的属性进行评估,从而判断资源是否属于该分类,而不用事先显示地将资源划入某分类。资源分类方法与主体分类方法基本类似,主要有一个显著区别资源分类输入参数为资源、主体、上下文环境和数据源。而主体分类的输入参数没有资源。资源分类规则、表达式、表达式取值和主体分类一致,不再重复。资源分类实施例1:<table>tableseeoriginaldocumentpage8</column></row><table>5.3.数据查询方法在不同场景,但査询语句非常类似的情况下,我们定制査询模板。在运行的时候,对模板中的占位符赋值,形成完整SQL语句,然后进行数据库査询。运用于细粒度权限管理领域,数据査询占位符代表的数据,可以来自上下文、主体、资源或者数据源。5.4.细粒度授权决策方法基于主体分类和资源分类的细粒度授权决策方法,是一种简单、直观和实用的细粒度授权决策方法。细粒度授权决策,为不同请求主体设置不同资源操作权限。对给定主体、给定资源,系统能够通过计算,做出决策,允许或者拒绝该请求。本方法为每个操作设定一条或者多条授权决策策略。如果有多条策略,策略按照优先级排序。授权决策策略包括1.主体分类,描述什么样的主体;2.资源分类,描述什么样的资源;3.授权关系允许或拒绝;4.拒绝理由。本方法工作原理是当某个主体请求对某个资源进行操作时1.按照优先级顺序列出为本操作设置的授权决策策略,依次评估授权决策策略;2.评估当前授权决策策略,如果请求主体满足该策略的主体分类规则,且请求资源满足该策略的资源分类规则,则该策略得出决策结果;否则该策略视为不能得出决策结果;3.如果决策结果是允许,直接返回允许,不再评估下一条策略;如果决策结果是拒绝,直接返回拒绝,返回的拒绝理由就是当前策略的拒绝理由,也不再评估下一条策略;如果没有得出决策结果,返回到步骤2评估下一条策略,直到没有策略可供评估为止;4.如果所有策略评估完毕,都不能得出决策结果,将拒绝做为决策结果,并评估出拒绝理由,然后返回拒绝理由。评估拒绝理由由以下步骤组成a)按照优先级顺序列出为本操作设置的授权决策策略,依次评估授权决策策略;b)评估当前授权决策策略,如果请求主体满足该策略的主体分类规则,则选中该策略的拒绝理由;C)返回到步骤b评估下一条策略,直到没有策略可供评估为止;d)返回的拒绝理由就是所有选中的拒绝理由,返回的拒绝理由可能是0条、l条或者多条。下面举例说明本方法的有效性。细粒度授权决策方法实施例1:某银行管理系统,维护机构操作。细粒度权限控制要求是1.总行用户,可以维护所有分行机构,但不能维护分行下属支行机构;2.分行用户,可以维护本分行下属支行机构,不能维护其他任意机构,比如其他分行下属支行,本分行机构等。运用本细3险度授权决策方法,为维护机构操作,设置如下授权决策策略优先级主体分类资源分类授权关系拒绝理由1总行用户分行机构允许总行用户只能维护分行机构2分行用户本分行下属支行允许分行用户只能维护本分行下属支行备注:91.总行用户(主体分类),规则是请求主体的机构等于总行机构;2.分行用户(主体分类),规则是请求主体的机构属于机构表中的査询出来的分行机构住入朱口;3.分行机构(资源分类),规则是请求资源的父机构等于总行机构;4.本分行下属支行(资源分类),规则是请求资源的父机构等于请求主体的机构,且请求主体的机构是分行机构。下面考察如下输入,决策结果如何:<table>tableseeoriginaldocumentpage10</column></row><table>细粒度授权决策方法实施例2:某企业客户关系系统,维护客户操作。细粒度权限控制要求是:1.普通销售人员,维护自己开发的客户;2.销售部部门经理,维护所有客户;3.被公司管理员列入黑名单的用户,不能维护任何客户。运用本细3险度授权决策方法,为维护客户操作,设置如下授权决策策略<table>tableseeoriginaldocumentpage10</column></row><table>备注1.黑名单用户(主体分类),规则是请求主体的ID属性属于黑名单表中査询出来的ID隹么朱口;2.普通销售人员(主体分类),规则是请求主体的机构属性是"销售部",且请求主体的部门经理属性等于"否";3.销售部部门经理(主体分类),规则是请求主体的机构属性是"销售部",且请求主体的部门经理属性等于"是";4.所有客户(资源分类),规则是不做任何判断直接返回true;5.自己开发的客户(资源分类),规则是请求资源的客户代表ID属性等于请求主体的ID属性。下面考察如下输入,决策结果如何:<table>tableseeoriginaldocumentpage11</column></row><table>基于主体分类和资源分类的细粒度授权决策方法,主要特征是1.基于主体分类方法和资源分类方法,直接描述出什么样的主体对什么样的资源,具有怎样的操作权限;2.提供了一种较XACML更直观、更实用、更简便的细粒度控制方法;3.主体分类、资源分类是业务域概念,因此主体分类、资源分类定义可以在授权决策策略中复用,提高了管理效率。5.5.细粒度授权查询方法细粒度授权决策方法,判断请求主体是否对请求资源具有操作权限,但不能告诉请求主体具有权限操作的资源有哪些。细粒度授权査询方法,是用来查询出请求主体对哪些资源具有操作权限。基于主体分类和数据査询的细粒度授权查询方法,为不同请求主体设置数据査询器。数据査询器,可由本文5.3所描述的数据査询方法实现。对给定主体,系统能够通过计算,选择匹配的查询器,进行资源査询。其查询结果即请求主体具有权限操作的资源集合。本方法为每个操作设定一条或者多条授权査询策略。如果有多条策略,策略按照优先级排序。授权査询策略包括1.主体分类,描述什么样的主体;2.数据査询器,描述查询哪些资源。本方法工作原理是当某个主体请求查询操作时:1.按照优先级顺序列出为本操作设置的授权査询策略,依次评估授权査询策略;2.评估当前授权査询策略,如果请求主体满足该策略的主体分类规则,执行该策略的查询模板得到査询结果;3.如果当前授权査询策略评估,得出査询结果,那么不必评估下一条策略;否则视为不能得出査询结果,发挥到步骤2评估下一条策略,直到没有策略可供评估为止;4.如果所有策略评估完毕,都不能得出查询结果,返回空集合,即该请求主体没有查询数据权限。下面举例说明本方法的有效性。细粒度授权查询方法实施例1:某银行管理系统,查询机构操作。细粒度权限控制要求是1.总行用户,可以査询所有机构;2.分行用户,可以査询本分行机构及本分行下属支行机构。运用本细3险度授权决策方法,为查询机构操作,设置如下授权査询策略优先级主体分类数据查询器1总行用户査询机构表所有数据2分行用户査询机构表本分行及本分行下属支行数据备注1.总行用户(主体分类),规则是请求主体的机构等于总行机构;2.分行用户(主体分类),规则是请求主体的机构属于机构表中的査询出来的分行机构朱口;3.査询机构表所有数据(数据査询器),规则是查询机构表所有数据;4.査询机构表本分行及本分行下属支行数据(数据查询器),规则是査询机构表数据,查询条件是机构号等于请求主体机构号,或者父机构号等于请求主体机构号。下面考察如下输入,査询结果如何:输入查询结果说明请求主体总行用户张三机构表所有机构数据请求主体满足优先级1的授权查询策略的主体分类,执行该规则的数据査询器,返回机构表所有数据请求主体北京分行用户李四北京分行及北京分行下属支行数据请求主体满足优先级2的授权査询策略的主体分类,执行该规则的数据查询器,返回北京分行及北京分行下属支行数据请求主体上海分行用户王上海分行及上海分行下属支请求主体满足优先级2的授12<table>tableseeoriginaldocumentpage13</column></row><table>备注:1.黑名单用户(主体分类),规则是请求主体的ID属性属于黑名单表中査询出来的ID鱼厶.来□;2.普通销售人员(主体分类),规则是请求主体的机构属性是"销售部",且请求主体的部门经理属性等于"否";3.销售部部门经理(主体分类),规则是请求主体的机构属性是"销售部",且请求主体的部门经理属性等于"是";4.不査询任何客户(数据査询器),规则是査询客户表,查询条件是1=2。即査询结果总是空。5.查询客户表销售人员开发的客户(数据査询器),规则是査询客户表,査询条件是客户代表ID等于请求主体ID属性;6.査询客户表所有客户(数据查询器),规则是査询客户表所有数据。下面考察如下输入,査询结果如何:<table>tableseeoriginaldocumentpage13</column></row><table><table>tableseeoriginaldocumentpage14</column></row><table>基于主体分类和数据査询的细粒度授权査询方法,主要特征是1.基于主体分类方法和数据査询方法,直接描述出什么样的主体对哪些资源具有査询权限;2.解决了XACML等以往权限管理领域未涉及到的领域;3.主体分类、数据查询器是业务域概念,因此主体分类、数据查询器定义可以在授权査询策略中复用,提高了管理效率。权利要求1.一种主体分类方法,其特征是将给定主体做为输入参数,通过运算主体分类的分类规则,判断该主体是否属于该分类,而不用事先显式地对主体进行分类,主要由以下步骤组成a)创建主体分类,定义分类规则;b)将给定主体做为输入参数,运算主体分类的分类规则;c)得出布尔值的运算结果,该布尔值表示该主体是否属于该主体分类。2.根据权利要求1所述的主体分类方法,其特征是所述分类规则由表达式或者表达式组组成,并返回所述布尔值。3.根据权利要求2所述的主体分类方法,其特征是所述表达式可以对主体、主体属性、上下文、数据源进行运算。4.一种资源分类方法,其特征将给定资源和请求该资源的请求主体做为输入参数,通过运算资源分类的分类规则,判断该资源是否属于该分类,而不用事先显式地对资源进行分类,主要由以下步骤组成a)创建资源分类,定义分类规则;b)将给定资源和请求该资源的请求主体做为输入参数,运算资源分类的分类规则;C)得出布尔值的运算结果,该布尔值表示该资源是否属于该资源分类。5.根据权利要求4所述的资源分类方法,其特征是所述分类规则由表达式或者表达式组组成,并返回布尔值。6.根据权利要求5所述的资源分类方法,其特征是所述表达式可以对资源、资源属性、主体、'主体属性、上下文、数据源进行运算。7.根据权利要求4所述的资源分类方法,其特征是所述请求该资源的请求主体,是可选输入参数。8.—种基于主体分类和资源分类的细粒度授权决策方法,主要由以下步骤组成-a)创建一个或者多个主体分类,为每个主体分类定义分类规则;b)创建一个或者多个资源分类,为每个资源分类定义分类规则;c)创建授权决策策略,该策略包括主体分类、资源分类、授权关系、拒绝理由4个要素;d)对给定操作设置一条授权决策策略或者一组授权决策策略,如果是一组策略,对策略设置优先级顺序;e)当某主体请求对某资源进行操作时,选取该操作对应的授权决策策略或者一组授权决策策略进行评估,得出决策结果,根据决策结果,允许或者拒绝请求,如果拒绝请求,并返回拒绝理由。9.根据权利要求8所述的细粒度授权决策方法,其特征是所述评估授权决策策略由以下步骤组成a)按照优先级顺序列出为本操作设置的授权决策策略,依次评估授权决策策略;b)评估当前授权决策策略,如果请求主体满足该策略的主体分类规则,且请求资源满足该策略的资源分类规则,则该策略得出决策结果;否则该策略视为不能得出决策结果;c)如果决策结果是允许,直接返回允许,不再评估下一条策略;如果决策结果是拒绝,直接返回拒绝,返回的拒绝理由就是当前策略的拒绝理由,也不再评估下一条策略;如果没有得出决策结果,返回到步骤b评估下一条策略,直到没有策略可供评估为止;d)如果所有策略评估完毕,都不能得出决策结果,将拒绝做为决策结果,并评估出拒绝理由,然后返回拒绝理由。10.根据权利要求9所述的细粒度授权决策方法,其特征是所述所有策略评估完毕,都不能得出决策结果时,评估出返回拒绝理由由以下步骤组成a)按照优先级顺序列出为本操作设置的授权决策策略,依次评估授权决策策略;b)评估当前授权决策策略,如果请求主体满足该策略的主体分类规则,则选中该策略的拒绝理由;c)返回到步骤b评估下一条策略,直到没有策略可供评估为止;d)返回的拒绝理由就是所有选中的拒绝理由,返回的拒绝理由可能是0条、l条或者多条。11.一种基于主体分类和数据査询技术的细粒度授权査询方法,主要由以下步骤组成a)创建一个或者多个主体分类,为每个主体分类定义分类规则;b)创建一个或者多个数据査询模板;C)创建授权査询策略,该策略包括主体分类、数据査询模板2个要素;d)对给定查询操作设置一个授权査询策略或者一组授权査询策略,如果是一组策略,对策略设置优先级次序;e)当某主体请求执行某査询操作时,选取该操作对应的授权査询策略或者一组授权査询策略进行评估,获得査询结果,返回査询结果。12.根据权利要求11所述的细粒度授权查询方法,其特征是所述的授权査询策略评估由以下步骤组成'a)按照优先级顺序列出为本操作设置的授权査询策略,依次评估授权查询策略;b)评估当前授权查询策略,如果请求主体满足该策略的主体分类规则,执行该策略的査询模板得到查询结果;C)如果当前授权査询策略评估,得出査询结果,那么不必评估下一条策略;否则视为不能得出査询结果,发挥到步骤b评估下一条策略,直到没有策略可供评估为止;d)如果所有策略评估完毕,都不能得出査询结果,返回空集合,即该请求主体没有査询数据权限。全文摘要本发明公开了一种动态智能的主体、资源分类方法,以及基于分类方法的细粒度权限管理方法。主体分类方法,是一种动态、智能分类方法,是通过对主体、主体属性、上下文、数据源进行各种运算来实现的。对于给定主体,只要运算规则,就可判断主体是否属于该分类。资源分类方法和主体分类方法非常类似,资源分类方法还可以对资源、资源属性进行运算。细粒度授权决策方法和细粒度授权查询方法,都运用于权限管理领域。细粒度授权决策方法,基于主体分类、资源分类,定义授权决策策略。当某主体请求对某资源进行操作时,评估策略,允许或者拒绝请求。如果拒绝请求,并返回拒绝理由。细粒度授权查询方法,基于主体分类、数据查询模板,定义授权查询策略。当某主体请求进行某查询时,评估策略,返回查询结果。这种基于分类的授权策略,具有简单、复用性强和易于实施等特点。文档编号G06F21/00GK101493872SQ20091000863公开日2009年7月29日申请日期2009年2月9日优先权日2009年2月9日发明者汪金保,磊王申请人:汪金保;王磊
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1