带有精细访问控制策略的基于角色的访问控制模型的方法

文档序号:6558833阅读:185来源:国知局
专利名称:带有精细访问控制策略的基于角色的访问控制模型的方法
技术领域
本发明涉及一种用于联网的计算机资源的安全授权的方法,并特别涉及一种用于提供对系统资源的精细访问控制的技术。
背景技术
访问控制策略是在系统安全策略级上表示授权。利用策略对访问主体(用户、进程)进行授权、认证、角色分配,使得只有合法的访问主体才能享用访问客体(资源所有者)提供的服务和资源。目前广为认可的访问控制策略有三种自主访问控制策略DAC,强制访问控制策略MAC和基于角色的访问控制策略RBAC。这三种访问控制策略是在不同的时代、不同的环境需求下产生的,适用于不同的环境中。此外,还有多级策略。多级策略给每个目标分配一个密级,一般安全属性可分为四个级别最高秘密级(Top-Secret)、秘密级(Secret)、机密级(Confidence)以及无级别级(Unclassified)。由于安全发展的需要,目前文件密级已由四级扩展为0~255级。密级划分的细化,更便于执行多级控制的安全机制,并能满足国家和个人的保密需求。密级形成一个层次,每个用户被分配一个相应的级,反映了该用户的最基础的可信赖度,这种模型常用于政府机密部门。
自主访问控制模型(DAC Model,Discretionary Access ControlModel)是根据自主访问控制策略建立的一种模型,基本思想是允许合法用户以用户或用户组的身份访问策略规定的客体,同时阻止非授权的用户访问客体,自主体现在用户还可以自主地把自己所拥有的客体的访问权限授予其它用户。自主访问控制又称为任意访问控制。LINUX、UNIX、Windows NT或是SERVER版本的操作系统都提供自主访问控制的功能。在实现上,首先要对用户的身份进行鉴别,然后就可以按照访问控制列表所赋予用户的权限允许和限制用户使用客体的资源。主体控制权限的修改通常由特权用户或是特权用户组实现。自主访问控制模型的特点是授权的实施主体自主负责赋予和回收其他主体对客体资源的访问权限。DAC模型一般采用访问控制矩阵和访问控制列表来存放不同主体的访问控制信息,从而达到对主体访问权限的限制目的。任意访问控制对用户提供的这种灵活的数据访问方式,使得DAC模型广泛应用在商业和工业环境中。
尽管DAC模型已在许多系统中得以实现,然而该模型的一个致命弱点是访问权的授予是可以传递的。一旦访问权被传递出去将难以控制,访问权的管理是相当困难的,会带来严重的安全问题。另一方面DAC模型不保护受保护的客体产生的副本,即一个用户不能访问某一客体,但能够访问它的拷贝,这更增加了管理的难度。而且在大型系统中主、客体的数量巨大,无论使用哪一种形式的DAC,所带来的系统开销都是难以支付的,效率相当低下,难以满足大型应用特别是网络应用的需要。
强制访问控制模型(MAC Model,Mandatory Access ControlModel)是一种多级访问控制策略,它的主要特点是系统对访问主体和受控对象实行强制访问控制,系统事先给访问主体和受控对象分配不同的安全级别属性,在实施访问控制时,系统先对访问主体和受控对象的安全级别属性进行比较,再决定访问主体能否访问该受控对象。MAC对访问主体和受控对象标识两个安全标记一个是具有偏序关系的安全等级标记;另一个是非等级分类标记。主体和客体在分属不同的安全类别时,都属于一个固定的安全类别SC,SC就构成一个偏序关系。当主体s的安全类别为TS,而客体o的安全类别为S时,用偏序关系可以表述为SC(s)≥SC(o)。考虑到偏序关系,主体对客体的访问主要有四种方式(1)向下读(rd,read down)主体安全级别高于客体信息资源的安全级别时允许查阅的读操作;(2)向上读(ru,read up)主体安全级别低于客体信息资源的安全级别时允许的读操作;(3)向下写(wd,write down)主体安全级别高于客体信息资源的安全级别时允许执行的动作或是写操作;(4)向上写(wu,write up)主体安全级别低于客体信息资源的安全级别时允许执行的动作或是写操作。
由于MAC通过分级的安全标签实现了信息的单向流通,因此它一直被军方采用,其中最著名的是Bell-LaPadula模型和Biba模型Bell-LaPadula模型具有只允许向下读、向上写的特点,可以有效地防止机密信息向下级泄露;Biba模型则具有不允许向下读、向上写的特点,可以有效地保护数据的完整性。MAC的本质是基于格的非循环单向信息流政策。
RBAC96模型基于角色的访问控制从控制主体的角度出发,根据管理中相对稳定的职权和责任来划分角色,将访问权限与角色相联系,这点与传统的MAC和DAC将权限直接授予用户的方式不同;其通过给用户分配合适的角色,让用户与访问权限相联系。首先介绍一下角色的概念,角色是指一个可以完成一定事务的命名组,不同的角色通过不同的事务来执行各自的功能。事务是指一个完成一定功能的过程,可以是一个程序或程序的一部分。角色是代表具有某种能力的人或是某些属性的人的一类抽象,访问控制中访问主体和受控对象之间通过角色关联。
RBAC96模型是包括四种概念参考模型及其框架的RBAC模型家族。其中RBAC0是RBAC96的基本模型,RBAC0中定义了RBAC模型的最少要素,是其它三个子模型的基础;RBAC1和RBAC2是在RBAC0的基础上分别增加了角色继承和约束机制;RBAC3是RBAC1和RBAC2的整合模型,根据传递关系,RBAC3包含了RBAC0。在RBAC96的基础上Ravi.Sandhu等人又先后提出了ARBAC97管理模型、ARBAC99管理模型。RBAC0中定义了四种实体用户、角色、权限和会话。在简单系统中,用户是指可以访问系统中数据或资源的主体;角色代表组织机构中的岗位职能,是具有该角色的成员的权限和职责;权限是在系统中的执行操作的某种能力;当用户激活一组属于他们的角色时,会话被建立,每个会话都包含一个用户和一个或多个角色,用户可同时激活会话中的部分或全部角色。RBAC0中定义了两种角色分配关系用户分配UA和权限分配PA。在进行UA和PA分配时,可以是多对多的关系,即一个用户可以同时被授予多个权限,一个权限可以分配给多个角色,用户可以同时打开多个会话。在每个会话中用户拥有不同的活动角色集合,RBAC0支持最小特权原则,意味着用户可以只激活完成任务所必须的角色。可以在需要时激活再激活分配给用户的角色,这样可以避免用户对权限的误用和非法使用。RBAC0中定义可以自主决定是否激活角色,即允许用户在会话过程中动态激活或撤销角色。RBAC1在RBAC模型的基础上增加了角色继承,分为两大类,限制型角色继承和非限制型角色继承。限制型角色继承强化了继承的结构,通常是简单的正树或者反树结构。RBAC2与RBAC0不同的是增加了约束机制。RBAC2是在RBAC0模型的基础上增加一个约束集合,这些约束决定了RBAC0中各种组件是否可以接受,只有对可以接受的值的操作才可以执行。约束是RBAC中被讨论最多的部分,也可认为是RBAC被推动的重要原因。典型的例子是,一个组织中采购经理和出纳是互斥的角色,通常,这两个角色不允许分配给同一个用户,因为这很可能会产生欺诈犯罪。在高级的组织中约束是一种强有力的机制,能够实现责权分离原则。主要的约束机制包括互斥角色、基数约束、先决约束、会话约束和等级约束。互斥角色在定义为互斥角色的集合中,每个用户至多可以指派为其中的一个角色,这样支持了责权分离原则。同样地,也可以定义互斥权限,在互斥权限集合中,每一个角色至多可以拥有一个权限。基数约束基数约束是定义在用户角色分配和权限角色分配关系上的约束。用户角色分配基数约束是指一个用户拥有的角色数量是受限的,而权限角色分配基数约束是指角色拥有权限的数量是受限的。先决约束该机制规定了用户在进行某种操作时必须拥有的角色。举例来说,只有当用户具是项目组成员角色时,才能给该用户分配程序员角色。RBAC3是RBAC1和RBAC2的合并模型,合并模型中同时包含角色层次和约束机制。约束同样可以应用在角色层次自身,角色层次是偏序关系,这是模型内在的约束。而且约束可以限制给定角色的角色数目,或者限制某些角色不能拥有子角色。这些约束类型在对于那些授权给改变已经被分配的角色层次的情况下非常有用。在层次与约束之间会产生细微的相互作用。在互斥条件下,可以通过约束定义私有角色来解决互斥。
直到2004年2月RBAC被美国国家标准委员会(ANSI)和IT国际标准委员会(INCITS)接纳为ANSI INCITS 359—2004标准。后来又提出新的四层NIST建议标准。这4层标准分别是核心RBAC,层次型RBAC,静态职责分离关系和动态职责分离关系。NIST核心模型中将权限细化为客体集合和操作集合,其余与RBAC0基本相同。层次型RBAC与RBAC1类似,在核心RBAC之上增加了角色分层,并分为普通分层和受限分层。普通分层支持角色多重继承,受限分层仅支持角色单重继承。约束RBAC增加了职责分离,包括静态职责分离(SSD)和动态职责分离(DSD)。SSD限制用户不能同时指派相互冲突的角色,DSD仅限制一个用户不能同时在一个会话中激活相互冲突的角色。NIST RBAC模型也分为四层。分别是核心RBAC,层次型RBAC,静态职责分离关系和动态职责分离关系。NIST RBAC模型的四种模型包含了RBAC96模型的四个模型,并分别引入新的机制。NIST核心模型中将权限细化为客体集合和操作集合,其余与RBAC0基本相同。层次型RBAC与RBAC1类似,在核心RBAC之上增加了角色分层,并分为普通分层和受限分层。普通分层支持角色多重继承,受限分层仅支持角色单重继承。约束RBAC增加了职责分离,包括静态职责分离(SSD)和动态职责分离(DSD)。SSD限制用户不能同时指派相互冲突的角色,DSD仅限制一个用户不能同时在一个会话中激活相互冲突的角色。NIST建议模型没有提供管理模型,但给出了管理函数,分管理命令、系统支持函数和查询函数。RBAC中引进了角色的概念,用角色表示访问主体具有的职权和责任,灵活地表达和实现了企业的安全策略,使系统权限管理在企业的组织视图这个较高的抽象集上进行,从而简化了权限设置的管理,从这个角度看,RBAC很好地解决了企业管理信息系统中用户数量多、变动频繁的问题。
经典RBAC模型可以解决粗粒度的授权需求。即以角色(Role)、操作(Option)和客体(Object)组成的三元组为最细粒度权限,可以控制到某个角色对某种客体的某种操作。然而RBAC模型的基本出发点是以主体为中心来考虑整个安全系统的访问控制,所以只针对有关主体的安全特性进行了深入研究,而没有有关访问控制中的客体和访问约束条件的安全特性等内容,这样就忽略了访问控制过程中对客体和访问事务的安全特性的控制,从而可能造成整个安全系统的安全策略不平衡,降低了模型对现实世界的表达力和可用性。对于大型的企业级应用来说,其系统逻辑复杂,分支机构众多,同时信息数据的大量集中存储和处理,在这种情况下,对访问控制提出了更高的要求。在经典的RBAC模型中,对客体的定义通常为数据表,对于集中存储的数据信息,逻辑上包含了众多的维度,如对于分机构分部门的企业,其逻辑集中的数据必然包括机构及部门信息,而对数据的应用也需要按维度划分和控制。比如对于某分支机构的某部门的数据查询需求,低权限用户要限制到相应的机构和部门,而这个机构的高权限的用户则不需要限制部门,只要限制所在机构,对于更高级的用户可能不应该加任何限制,而允许其查询全辖的数据。经典RBAC模型如果要解决这个问题,就需要对客体按维度进行拆分,拆到足够细的粒度。然而对于大型的系统,数据客体都是高维度的,并且要考虑到不同操作和不同主体对客体有不同的维度控制需求,从而造成了对客体的拆分过于复杂,导致权限系统变得难以维护,背离达到减小授权管理复杂性的目的,失去应用RBAC的意义。为了避免以上问题的发生,充分发挥RBAC的优势,本发明针对RBAC模型的PERMISSION和ROLE等概念进行了改进,得到了一种扩展型的RBAC模型,这种模型适用于大型的企业中对数据客体有多维细粒度访问控制的要求,称之为带有精细访问控制策略的访问控制模型。

发明内容
针对现有模型对数据客体访问时的粗粒度问题,本发明提供了一种带有精细访问控制策略的基于角色的访问控制模型的方法,解决了标准的基于角色的访问控制模型中访问控制粒度粗,只能精确到某角色对某客体进行了某种操作这一原子粒度,使访问控制的粒度可以做更精确的划分。
本发明提供了一种带有精细访问控制策略的基于角色的访问控制模型的方法,包括功能,客体与操作组成的二元组,描述对客体进行操作的许可;功能权限,角色与功能组成的二元组,描述角色拥有对客体执行操作的权限;精细访问控制,功能权限与精细访问控制策略组成的二元组,实现运行环境中对客体的访问控制精确到客体的一部分乃至最细粒度的控制。其中,精细访问控制策略是预先定义好的运行时动态策略函数,进一步包含两个方面内容一是描述业务逻辑要求的用户在执行操作时,有权限访问客体的一个集合,根据精细访问控制策略的不同,访问权限受到约束,以访问客体的子集、空集或全集;二是基于外部环境及上下文信息的约束,在运行时确定访问客体的子集。还包括功能权限到精细访问控制策略的映射。
也可以把精细访问控制看作是客体、操作、角色和精细访问控制策略按照层次关系构建的四元组。
角色是在特定组织中清晰定义职责和权利的工作职能,代表一种资格、权利和责任,角色的集合为角色集。功能是对计算机系统中被保护数据或资源的访问许可,功能的集合为功能集,功能集为客体集与操作集的笛卡尔积的幂集。操作到功能的映射得到指定功能的操作集合;功能到客体的映射,得到指定功能的客体集合;角色到功能的映射,得到映射方法的集合。角色与功能之间为多对多的关系,一个功能可以分派到一个或多个角色,一个角色也可以被分派一个或多个功能。功能权限到精细访问控制策略的映射为单射关系,对于任意功能权限都有唯一的精细访问控制策略与之相对应。
与标准RBAC模型技术相比,本发明的有益效果是1.加入了精细访问控制策略这一元素,用来限制标准RBAC模型中由角色、客体、操作这个三元素构成的功能权限,达到对功能权限进行细化的目的。
2.在角色层次结构的RBAC模型中,包括限制型角色继承和非限制型角色继承,角色的偏序关系带动了权限范围的变化,某角色继承了其它角色即可得到其它角色的功能,然而精细访问控制策略元素与角色、客体、操作这个三元组构成了单射的关系,即对于任意功能,有唯一的精细访问控制策略与之对应,所以精细访问控制策略不随角色的继承而传递。
3.在限制型RBAC模型中,对角色作了静态职责分离和动态职责分离的限制,使某用户不能同时拥有几个受约束的角色。对于精细访问控制策略来说,与用户元素没有直接映射关系,而是与角色、客体、操作这个三元组建立了单射的关系,所以也不受静态职责分离和动态职责分离限制的约束。


图1是带有精细访问控制策略的基于角色的访问控制模型图;图2是可以实施本发明的信息系统中的典型结构示意图。
具体实施例方式
现结合附图及实施例对本发明作进一步详细说明。实施例1参考图1,如图1所示1.用户集104用户就是一个可以独立访问被保护数据或资源的主体,它可以是人或程序,此处简化为人,用USERS表示一个用户集合,用u表示用户集合USERS中的一个用户,即u∈USERS2.角色集103角色是在特定组织中清晰定义职责和权利的工作职能,它代表一种资格、权利和责任,用ROLES表示一个角色集合,用r表示角色集ROLES中的一个角色,即r∈ROLES3.角色分配108是角色到用户的多对多映射是USERS和ROLES之间的一个二元关系,即用UAUSERS×ROLES表示一个用户角色委派集合,用(u,r)∈UA表示用户u被委派了一个角色r,用户和角色之间是多对多的关系。一个用户可以分派到多个角色,一个角色也可以被分派给多个用户。
给角色指派用户方法定义为assigned_user(rROLES)→2users该方法得到指定角色的user集合,即assigned_user(r)={u∈USERS|(u,r)∈UA}4.功能112功能是对计算机系统中被保护数据或资源的访问许可。用PERMISSIONS表示一个功能集合,用p表示PERMISSIONS中的某个功能,即p∈PERMISSIONS。
功能集为客体集与操作集的笛卡儿积的幂集PRMS=2(OPSxOBS)RBAC模型是“策略中立”的模型,它没有对权限作具体的定义,因此权限的本质是开放的,可以依据不同的应用和安全策略进行定义,通常可以将权限看作是一个二元组(Obj,Opt),其中Obj是客体或客体标识符,也就是被保护的系统数据或资源,而Opt是Obj的非空访问模式集。
5.操作到功能的映射方法Op(pPRMS)→{OPOPS)该方法得到指定功能的操作集合。
功能到客体的映射方法Ob(pPRMS)→{obOBS)该方法得到指定功能的客体集合。
6.功能分配110表示角色到功能的映射,角色权限分配关系定义为ROLES与PERMISSIONS之间的二元组,即用下式表示一个角色权限委派集合。
PAPRMS×ROLES
一个角色r拥有一个功能p,表示为(r,p)∈PA7.角色和功能之间是多对多的关系。一个功能可以分派到一个或多个角色,一个角色也可以赋予一个或多个功能。
定义返回与功能相关联的操作的函数Op(pPRMS)→{opOPS)定义返回与功能相关联的客体的函数Ob(pPRMS)→{obOBS)assigned_permissions(rROLES)→2PRMS该方法得到角色映射功能的集合,即为assigned_permissions(r)={p∈PRMS|(p,r)∈PA}8.会话集105是用户调用的一组会话集合,用户与会话是一对多的关系,每个用户都需要调用一套会话,定义函数将用户u映射到一套会话中user_sessions(uUSERS)→2SESSIONS该方法得到指定用户的会话集合。
定义函数将会话s映射到一套角色中session_roles(sSESSIONS)→2ROLES该方法得到指定会话的角色集合,即session_roles(si){r∈ROLES|(session_users(si),r∈UA}用户在指定会话中可用角色定义方法
avail_session_persm(sSESSIONS)→2roles该方法得到用户的被激活会话。
用户在一个会话里所拥有的权限定义为avail_session_persm(sSESSIONS)→2PRMS用户在全部会话中拥有的权限定义为Yr∈session_roles(s)assigned_permissions(r)]]>9.角色继承109关系表示为RHROLES×ROLESRH是ROLES上的偏序关系,描述了授权与职责的组织结构关系,定义了角色之间的继承关系,包括普通型和限制型两类。
在普通型角色继承关系中,角色r1继承r2定义为r1φr2则r1的用户属于r2的用户且r2的权限属于r1的权限。
r1φr2authorized_permissions(r2)authorized_permissions(r1)^authorized_users(r1)authorized_users(r2)授权的用户定义为authorized_users(r)={u∈USERS|r′φr(u,r′)∈UA}授权的功能定义为authorized_permissions(rROTES)→2PRMSauthorized_permissions(r)={p∈PRMS|r′φr,(p,r′)∈PA}限制型角色继承关系中,角色r1继承r2满足式3-24。
r,r1,r2,∈ROLES,rφr1^rφr2r1=r2指定角色的用户定义为authorized_users(r)={u∈USERS|r’φr(u,r′)∈UA}该方法得到指定角色的用户。
角色与权限映射关系定义为authorized_permissions(rROLES)→2PRMS该方法得到指定角色的权限集合,即authorized_permissions(r)={p∈PRMS|r′φr,(p,r′)∈PA10.静态职责约束SSD表示静态职责分配集合107,定义为SSD(2ROLESxN)一个用户不允许被分配SSD中定义冲突的角色(rs,n)∈SSD,trs|t|≥nIr∈tassigned_usere(r)=11.动态职责约束DSD表示动态职责分配集合106,定义为DSD(2ROLESxN)rs∈2ROLES,n∈N,(rs,n)∈DSDn≥2^|rs|≥n,ands∈SESSIONS,rs∈2ROLES,role_subset∈2ROLES,role_subsetrs,n∈N,(rs,n)∈DSD,role_subsetsession_role(s)|role_subset|<nDSD中允许一个用户被分配相互冲突的角色,但不允许在一次会话集中激活。
12.功能权限111功能权限描述某角色执行某功能这个语义,是角色与功能的二元关系的集合,功能权限集合的元素为角色与功能的二元组,既(r,p)∈RIGHTS13.精细访问控制策略108精细访问策略定义为与角色、客体、操作这个三元组相关联的元素。这个元素描述了对客体的精细访问策略以及上下文环境的访问控制限制,这个元素和权限的映射实现了对访问控制的精细级别处理,即构建了精细权限。用FG_POLICIES表示一个精细访问策略集合,用f表示精细访问策略集FG_POLICIES中的一个策略元素f∈FG_POLICIES14.精细访问控制策略分配113表示精细访问策略到权限的映射,即精细权限精细访问策略与权限的关系定义FG_POLICIES→RIGHTS即由集合FG_POLICIES到集合RIGHTS映射。根据定义,对于任意的权限r,都有唯一的精细访问控制策略f与之对应,即函数FA满足单射。
实施例2如图2所示用户通常为系统使用人员,客体通常为数据库表,但不限于此,用户可以是一个程序,客体也可以是数据文件、XML文件以及任何计算机资源,操作也不限于所列操作,可根据实际应用系统需要任意扩充。
例如在管理信息系统中,功能项按照粗粒度的划分,分为四大类系统管理类、码表管理类、数据处理类和报表查询类。通常对应四大类的角色,即系统管理相关角色,码表管理相关角色,数据处理相关角色和报表查询相关角色。
系统管理用于对使用本系统的用户新增、变更、复核、查询、以及系统日志监控、用户锁定及解锁等。系统管理类权限涉及到的角色包括系统管理员相关的角色,操作包括增加、删除、修改、查询,客体包括用户表、角色表、操作表、客体表、系统表等。
码表管理的功能主要包括对各种码表的维护和查询。涉及到的角色包括码表管理员相关的角色,操作包括增加、删除、修改、查询、审核等,客体包括各类码表,如产品号表、货币表等。
数据处理功能用于对业务数据的新增、变更、审核、查询以及对业务数据的各种加工。数据处理类的功能涉及到的角色包括各类数据处理相关角色,操作包括增加、删除、修改、查询、审核、加工等,客体包括各数据表或数据文件等。
报表查询功能是将加工后的数据项展现成报表。报表查询类功能涉及的角色和操作较少,主要集中在决策者和领导层的查询操作,客体包括各类报表。
对于上述的细粒度访问控制要求,采用FG_RBAC模型的精细访问策略来实现,即对于功能性的访问控制仍然精确到客体,建立角色与功能的对应关系,而对于客体的细粒度访问控制,则通过预先设置精细访问策略函数,在授权时将预设置的策略函数加入到精细权限集合里,以角色、客体、操作、精细策略这个四元组来完成访问控制,即可满足需求。
但由于精细权限是多个集合的笛卡尔积,其元素相对众多,难于维护,所以对角色维度采用默认方式处理,即先确定一个三元组,如客体、操作、精细策略,或者角色、客体、精细访问策略等等,对于剩下的一个维度,如角色维度或操作维度默认为使用同样已有三元组中的精细访问策略,如果需要变化,则针对具体权限再做策略的调整,这样大大降低了维护的成本。
对于系统管理的功能,客体只有所属子系统这一个维度。如果访问主体的角色是角色集230中的超级管理员232,对客体集210中的客体元素角色表211执行增加222操作,则对应精细访问策略集240中的精细访问策略元素不做任何限制242,如果访问主体的角色是子系统管理员231,则精细访问策略函数241返回限制项,要求客体的系统属性要和访问主体所属的系统一致。
对于码表管理的功能,如果客体某一码表212也只有所属子系统这一个维度,建立精细访问策略元素241与码表管理员修改某一码表254这个功能权限元素相关联,返回一个约束,要求客体的系统属性要和访问主体所属的系统一致。
对于数据处理的功能,其客体为业务数据,数据量庞大而且维度多样,建立精细访问策略元素与该功能关联,根据预先设定的业务规则,对不同主体的不同操作返回不同限制条件。例如,支行柜员角色234的用户执行查询221、修改223、删除224某数据表213的操作,要限制其只能操作自己录入的数据,即数据录入者等于访问用户243;如支行审核员角色235的用户进行查询221操作,则要限制其只能查询本机构及下属机构的数据244;如果是总行复合员236角色的用户进行查询221操作,则不做任何限制242。
对于报表查询的功能,其客体是经过加工处理的报表214,数据量虽然不大,但是维度更加丰富,建立精细访问策略元素与该功能关联,根据预先设定的业务规则,对不同主体的查询221操作返回不同限制条件。例如,分行报表用户237角色的主体查询221某一报表214,精细访问策略限制报表的口径为银行口径且是报表的数据为访问主体所在机构及下属机构的数据245;如是总行报表用户238角色的主体做查询221某一报表214的操作,则不作任何限制242。
精细访问策略元素通常为一策略函数,输入可以为用户、角色、操作、客体等元素以及上下文环境等参数,输出为访问约束,限制某功能的某一次执行的影响范围。
以上所述实施方式仅为本发明的两个实施例,而不限于上述实施例,对于本领域一般技术人员而言,在不背离本发明原理的前提下对它所做的任何显而易见的改动,都属于本发明的构思和所附权利要求的保护范围。
权利要求
1.一种带有精细访问控制策略的基于角色的访问控制模型的方法,包括功能,客体与操作组成的二元组,描述对客体进行操作的许可;功能权限,角色与功能组成的二元组,描述角色拥有对客体执行操作的权限;精细访问控制,功能权限与精细访问控制策略组成的二元组,实现运行环境中对客体的访问控制精确到客体的一部分乃至最细粒度的控制;其中,精细访问控制策略,预先定义好的运行时动态策略函数,进一步包含两个方面内容,一是描述业务逻辑要求的用户在执行操作时,有权限访问客体的一个集合,根据精细访问控制策略的不同,访问权限受到约束,以访问客体的子集、空集或全集,二是基于外部环境及上下文信息的约束,在运行时确定访问客体的子集;功能权限到精细访问控制策略的映射。
2.如权利要求1所述的访问控制模型的方法,其特征在于可以把精细访问控制看作是客体、操作、角色和精细访问控制策略按照层次关系构建的四元组。
3.如权利要求1所述的访问控制模型的方法,其特征在于所述角色是在特定组织中清晰定义职责和权利的工作职能,代表一种资格、权利和责任,角色的集合为角色集。
4.如权利要求1所述的访问控制模型的方法,其特征在于所述功能是对计算机系统中被保护数据或资源的访问许可,功能的集合为功能集,功能集为客体集与操作集的笛卡尔积的幂集。
5.如权利要求1所述的访问控制模型的方法,其特征在于操作到功能的映射,得到指定功能的操作集合;功能到客体的映射,得到指定功能的客体集合。
6.如权利要求1所述的访问控制模型的方法,其特征在于角色到功能的映射,得到映射方法的集合;角色与功能之间为多对多的关系,一个功能可以分派到一个或多个角色,一个角色也可以被分派一个或多个功能。
7.如权利要求1所述的访问控制模型的方法,其特征在于所述功能权限到精细访问控制策略的映射为单射关系,对于任意功能权限都有唯一的精细访问控制策略与之相对应。
全文摘要
本发明公开了一种带有精细访问控制策略的基于角色的访问控制模型的方法,其中包括精细访问控制策略和功能权限与精细访问控制策略的映射函数。精细访问控制策略是预定义好的运行时动态策略函数,包括业务逻辑所要求的在精细访问上的约束逻辑和基于外部环境及上下文信息的约束。本发明通过加入精细访问控制策略这一元素和相应的映射函数,解决了标准的访问控制模型中访问控制的粒度粗,只能精确到某角色对某客体进行了某种操作这一原子粒度的问题,使访问控制的粒度可以被更精确的划分。
文档编号G06F21/00GK1885297SQ20061008331
公开日2006年12月27日 申请日期2006年6月2日 优先权日2006年6月2日
发明者石杰 申请人:石杰
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1