著录项信息
专利名称 | 带有活动角色的基于角色的访问控制模型的方法和系统 |
申请号 | CN02810345.9 | 申请日期 | 2002-05-08 |
法律状态 | 权利终止 | 申报国家 | 中国 |
公开/公告日 | 2004-10-13 | 公开/公告号 | CN1537262 |
优先权 | 暂无 | 优先权号 | 暂无 |
主分类号 | G06F1/00 | IPC分类号 | G;0;6;F;1;/;0;0查看分类表>
|
申请人 | 国际商业机器公司 | 申请人地址 | 美国纽约
变更
专利地址、主体等相关变化,请及时变更,防止失效 |
权利人 | 国际商业机器公司 | 当前权利人 | 国际商业机器公司 |
发明人 | P·D·格里芬;G·科莱;G·A·威尔逊 |
代理机构 | 北京市中咨律师事务所 | 代理人 | 于静;李峥 |
摘要
一种通过基于角色的访问控制模型管理对资源的访问的方法、系统、设备以及计算机程序产品,基于角色的访问控制模型包括使用角色过滤器和能力过滤器的动态更新功能。为每个角色定义一个角色过滤器,而不是直接将每个用户与某个角色联系起来。通过评价角色过滤器确定与给定角色匹配的用户,并且将匹配的用户自动与给定的角色联系起来。除角色过滤器之外,每个命名的角色均包含一组能力。每种能力包括一组访问条件和一个能力过滤器。每个访问条件包括一组权限。管理员可以定义每种能力的能力过滤器,而不是直接将每种资源与一种能力联系起来。当添加、删除或更改目标实例时,重新评价能力过滤器以保持适当的关系集合。
1.一种对请求计算机系统中的受保护的资源的主体的访问权 限进行控制的方法,其中将主体与至少一个角色联系起来,该方 法包括:
将角色过滤器和角色联系起来;
将一种或多种能力的集合与角色联系起来;
将能力过滤器与一种或多种能力的集合中的一种能力联系起 来;以及
根据请求主体和角色之间的联系以及受保护的资源和角色的 能力之间的联系,授权请求主体对受保护的资源的访问。
2.权利要求1的方法,还包括:
评价角色过滤器,以确定与该角色关联的一个或多个主体的 集合;以及
评价能力过滤器,以确定与该能力关联的一种或多种资源的 集合。
3.权利要求1的方法,还包括:
将资源类型与一种或多种能力的集合中的每种能力联系起 来,其中每种能力定义对该资源类型的至少一种资源的访问。
4.权利要求1的方法,还包括:
将一个或多个访问条件的集合与一种或多种能力的集合中的 每种能力联系起来,其中每个访问条件定义授权请求主体访问受 保护的资源的访问约束。
5.权利要求4的方法,还包括:
将一个或多个权限的集合与一个或多个访问条件的集合中的 每个访问条件联系起来,其中每个权限定义授权请求主体对受保 护的资源进行访问的访问类型。
6.权利要求1-5之任一权利要求的方法,还包括:
将“过滤器角色”列表与请求主体联系起来,其中“过滤器角色” 列表为包含一个或多个角色的集合的多值属性;
将“过滤器成员”列表与角色联系起来,其中“过滤器成员”列 表为包含一个或多个主体的集合的多值属性;
如果将请求主体添加到与角色关联的“过滤器成员”列表中, 则将角色添加到与请求主体关联的“过滤器角色”列表中;以及
如果将角色添加到与请求主体关联的“过滤器角色”列表中, 则将请求主体添加到与角色关联的“过滤器成员”列表中。
7.权利要求1-5之任一权利要求的方法,还包括:
将“过滤器能力”列表与资源联系起来,其中“过滤器能力”列 表为包含一种或多种能力的集合的多值属性;
将“过滤器目标”列表与能力联系起来,其中“过滤器目标”列 表为包含一种或多种资源的集合的多值属性;
如果将资源添加到与能力关联的“过滤器目标”列表中,则将 能力添加到与资源关联的“过滤器能力”列表中;以及
如果将能力添加到与资源关联的“过滤器能力”列表中,则将 资源添加到与能力关联的“过滤器目标”列表中。
8.权利要求1-5之任一权利要求的方法,还包括:
接收更新实例的通知,其中实例的类型选自“主体”、“资 源”、“能力”或“角色”;
确定实例的类型;
搜索其资源类型与实例类型匹配的能力;以及
相对于实例运行匹配的能力的能力过滤器。
9.权利要求8的方法,还包括:
如果确定实例类型为“主体”,则相对于该实例运行所有角 色过滤器。
10.权利要求8的方法,还包括:
如果确定实例类型为“角色”或“能力”,则确定是否已更 新该实例的过滤器;以及
如果确定该实例过滤器已更新,则根据该实例类型运行该实 例过滤器。
11.一种对请求计算机系统中的受保护的资源的主体的访问 权限进行控制的设备,其中将主体与至少一个角色联系起来,该 装置包括:
将角色过滤器和角色联系起来的装置;
将一种或多种能力的集合与角色联系起来的装置;
将能力过滤器与一种或多种能力的集合中的一种能力联系起 来的装置;以及
根据请求主体和角色之间的联系以及受保护的资源和角色的 能力之间的联系,授权主体对受保护的资源进行访问的装置。
12.权利要求11的设备,还包括:
评价角色过滤器的装置,用于确定与该角色关联的一个或多 个主体的集合;以及
评价能力过滤器的装置,用于确定与该能力关联的一种或多 种资源的集合。
13.权利要求11的设备,还包括:
将资源类型与一种或多种能力的集合中的每种能力联系起来 的装置,其中每种能力定义对该资源类型的至少一种资源的访问。
14.权利要求11的设备,还包括:
将一个或多个访问条件的集合与一种或多种能力的集合中的 每种能力联系起来的装置,其中每个访问条件定义授权请求主体 访问受保护的资源的访问约束。
15.权利要求14的设备,还包括:
将一个或多个权限的集合与一个或多个访问条件的集合中的 每个访问条件联系起来的装置,其中每种权限定义授权请求主体 对受保护的资源进行访问的访问类型。
16.权利要求11-15之任一权利要求的设备,还包括:
将“过滤器角色”列表与请求主体联系起来的装置,其中“过滤 器角色”列表为包含一个或多个角色的集合的多值属性;
将“过滤器成员”列表与角色联系起来的装置,其中“过滤器成 员”列表为包含一个或多个主体的集合的多值属性;
将请求主体添加到与角色关联的“过滤器成员”列表中时,将 角色添加到与该请求主体关联的“过滤器角色”列表中的装置;以 及将角色添加到与请求主体关联的“过滤器角色”列表中时,将 请求主体添加到与该角色关联的“过滤器成员”列表中的装置。
17.权利要求11-15之任一权利要求的设备,还包括:
将“过滤器能力”列表与资源联系起来的装置,其中“过滤器能 力”列表为包含一种或多种能力的集合的多值属性;
将“过滤器目标”列表与能力联系起来的装置,其中“过滤器目 标”列表为包含一种或多种资源的集合的多值属性;
将资源添加到与能力关联的“过滤器目标”列表中时,将该能 力添加到与该资源关联的“过滤器能力”列表中的装置;以及
将能力添加到与资源关联的“过滤器能力”列表中时,将该资 源添加到与该能力关联的“过滤器目标”列表中的装置。
18.权利要求11-15之任一权利要求的设备,还包括:
接收更新实例的通知的装置,其中实例的类型选自“主体”、 “资源”、“能力”或“角色”;
确定实例的类型的装置;
搜索其资源类型与实例类型匹配的能力的装置;以及
相对于实例运行匹配的能力的能力过滤器的装置。
19.权利要求18的设备,还包括:
确定实例类型为“主体”时,相对于实例运行所有角色过滤 器的装置。
20.权利要求18的设备,还包括:
确定实例类型为“角色”或“能力”时,确定是否已更新该 实例的过滤器的装置;以及
确定该实例过滤器已更新时,根据该实例类型运行该实例过 滤器的装置。
技术领域\n本发明涉及经过改进的数据处理系统,确切地说,涉及使用数据库的 方法和系统。更确切地说,本发明提供根据特定数据模型管理对资源的访 问的方法和系统。\n背景技术\n分布式系统内部的安全管理一直是令人头痛的问题。公司职员需要以 安全方式访问应用和资源。然而,在任何给定时间段内,应用的安装、删 除;公司内员工的流动导致了人员(包括临时雇员)的增加、解雇或内部 调动;资源的增加、删除或组织内的移动,包括逻辑上或物理上的移动; 以及项目的外包,要求承包商对组织的数据系统具有有限的访问权限;所 有这些都增加了安全风险。此外,网络的互操作性也增加了安全风险,因 此安全管理上的失误代价非常大。\n传统安全管理是依赖平台的—不同类型的计算机系统遵循不同的管 理和实施规则。分布式系统的早期网络管理工具试图罗列出所有需要安全 策略定义的资源和权限。传统访问控制列表(ACL)管理模型在企业内部 的各个资源上做出安全性设置。在某些组织中,安全管理员的职责就是管 理资源、权限和职员之间的每个允许或禁止关系列表,即,某个列表上的 各要素与其他各列表上的各要素之间的关系。由于信息技术(IT)的不断 变化,IT管理员的负担越来越沉重。\n在过去十年中,人们开发了一种可伸缩的、能够避免错误的、可审核 的安全管理方法,并被许多企业采用:基于角色的访问控制(RBAC), 也称为基于角色的管理或基于角色的授权。在该方法中,采用与传统安全 解决方案类似的方式,将用户分成组。然而,在使用安全数据处理系统的 组织内部,将资源和访问权限也分成角色,以反映在组织内部通用的各种 业务过程和业务职责集合。这样,为各组分配能够反映企业活动的多重角 色。在使用基于角色的访问控制的管理系统中,管理员的职责归纳如下: 定义每个角色;定义该角色对有关资源的能力;将用户同一个或多个角色 联系起来;将资源同一个或多个能力联系起来。一旦定义,就能在追加或 更新数据库时自动实现安全策略,以便根据基于角色的访问控制关系改变 人员或资源。\n这种角色定义提供了一个额外的抽象层,从而改善安全管理员的可伸 缩性、审计能力和质量。通过使用许多不同类型的角色,能够管理雇员与 承包人之间的差异。总的来说,基于角色的访问控制系统能够改善最终用 户的安全性和服务,同时降低安全管理成长型企业的管理成本。\n尽管安全管理得到改善,但是基于角色的访问控制系统在管理和费用 上做了很多的考虑。大多数企业是动态实体,当企业的组织和商业目标随 着时间改变时,也希望相关的IT系统能迅速无误地迁移。当组织变更或壮 大时,更加难以管理、更新用户和角色之间的关系,以及资源和能力之间 的关系。\n因此,提供自动协助管理带有基于角色的访问控制的安全管理系统之 方法和系统是有利的。每当组织内的人员和资源变化时,总能自动、有效 地更新安全管理系统将是非常有利的。\n发明内容\n一种通过基于角色的访问控制模型来管理对资源的访问的方法、系统、 设备以及计算机程序产品,基于角色的访问控制模型包括使用角色过滤器 和能力过滤器(也称为“活动角色”)的动态更新功能。为每个角色定义 一个角色过滤器,而不是由安全管理员明确将各个用户与某个角色联系起 来。通过评价角色过滤器确定与给定角色匹配的用户,并且将匹配的用户 自动与给定的角色联系起来。通过使用角色过滤器,管理员能够按照雇员 职务、组织、工作状态或项目分配情况,为基于角色的资源访问创建业务 规则。\n除角色过滤器之外,每个命名的角色均包含一组的访问能力。每种能 力包括一组访问条件和能力过滤器,每个访问条件包括一组权限以及此类 权限的资格和条件。与角色过滤器的操作类似,能力过滤器用于描述将要 应用的特定能力的实例集合。管理员可以为每种能力定义能力过滤器,而 不是由安全管理员明确将每种资源与某种能力联系起来。当添加、删除或 更改目标实例时,重新评价能力过滤器以保持适当的关系集合。\n附图说明\n附属权利要求书阐述被认为是本发明之特征的全新功能。通过连同附 图一起阅读以下详细说明书,将更加了解本发明,其目的以及其优点,其 中附图为:\n图1A表示可以实施本发明的典型分布式数据处理系统;\n图1B表示可以实施本发明的数据处理系统中使用的典型计算机体系 结构;\n图2的方块图表示典型的基于角色的访问控制系统;\n图3的方块图表示对象及对象间的关系,包括根据本发明之最佳实施 方式的基于角色的访问控制模型中的角色过滤器和能力过滤器功能;以及\n图4是一个流程图,表示更新图3所示的根据本发明之最佳实施方式 的数据关系组织的数据库时,出现的活动角色处理。\n具体实施方式\n本发明的目的在于,通过基于角色的访问控制模型来管理对资源的访 问的系统和方法,基于角色的访问控制模型包括“活动角色”,而后者是 一种动态更新机制。在详细论述本发明前,首先介绍可以实施本发明的分 布式数据处理系统的组织结构的背景信息。\n现在参照附图,图1A表示典型的数据处理系统网络,每个系统均能 实施本发明或本发明的一部分。分布式数据处理系统100包含网络101, 网络101是一种介质,为连接在分布式数据处理系统100内的各种设备和 计算机之间提供通信链路。网络101可以包括永久连接,如电缆或光缆, 或通过电话或无线通信建立的临时连接。在所示示例中,将服务器102和 103和存储器104连接到网络101。此外,将客户机105-107也连接到网 络101。客户机105-107和服务器102-103代表各种计算设备,如大型 机、个人计算机、个人数字助理(PDA)等。分布式数据处理系统100可 以包括附加服务器、客户机、路由器和其他设备,以及对等体系结构(未 示出)。\n在所示示例中,分布式数据处理系统100包括因特网,其中网络101 表示遍布世界的彼此使用各种协议进行通信的网络和网关集合,通信协议 如轻量目录访问协议(LADP)、传输控制协议/网际协议(TCP/IP),超 文本传输协议(HTTP)。当然,分布式数据处理系统100还包括不同类 型的网络,如内联网、局域网(LAN)或广域网(WAN)。例如,服务器 102直接支持采用无线通信链路的客户机109和网络110。网络电话111 通过无线链路112连接到网络110,PDA 113通过无线链路114连接到网 络110。通过使用诸如蓝牙TM无线技术之类的适当技术创建所谓的个人局 域网或个人专用网,电话111和PDA 113能够通过它们之间的无线链路115 直接传输数据。同样,PDA 113能够通过无线通信链路116向PDA 117传 输数据。\n可以在各种硬件平台上实施本发明;图1A只是作为异构计算环境的 示例,并不作为本发明的体系结构限制。\n现在参照图1B,正如在图1A中说明的那样,该图表示可以实施本发 明的数据处理系统的典型计算机体系结构。数据处理系统120包含一个或 多个与内部系统总线123相连的中央处理器(CPU)122,系统总线123 互连随机存取存储器(RAM)124、只读存储器126以及支持各种I/O设 备的输入/输出适配器128,I/O设备如打印机130、磁盘机132或诸如音响 系统之类的其他设备(未示出)等。同时,系统总线123与通信适配器134 相连,后者提供对通信链路136的访问。用户接口适配器148连接各种用 户设备,如键盘140和鼠标142,以及诸如触屏、触笔、麦克之类其他设 备(未示出)。显示适配器144将系统总线123连接到显示设备146。\n一般技术人员可以理解,图1B所示的硬件随系统实现变化。例如, 该系统可以有一个或多个处理器,以及一种或多种非易失存储器。除图1B 所示的硬件之外或代替图1B所示的硬件,可以使用其他外围设备。换句 话说,一般技术人员并不会在网络电话和全功能台式工作站中发现相似组 件或体系结构。所示示例并不意味有关本发明的体系结构限制。\n除能够在各种硬件平台上实施之外,也可以在各种软件环境中实施本 发明。可以使用典型操作系统来控制各数据处理系统内的程序的执行。例 如,某台设备运行UnixTM操作系统,而另一台设备包含简单JavaTM运行 环境。有代表性的计算机平台包括浏览器,浏览器是一众所周知的软件应 用,用于访问各种格式的超文本文件,如图形文件、字处理文件、扩展标 记语言(XML)、超文本标记语言(HTML)、手持设备标记语言(HDML)、 无线标记语言(WML),以及各种其他格式和类型的文件。因此,请注 意,图1A所示的分布式数据处理系统完全能够支持各种对等子网和对等 服务。\n尽管参照使用面向对象的应用的最佳实施方式描述本发明,但本发明 并不限于使用面向对象的编程语言。相反,可以使用大部分编程语言实现 本发明。尽管在最佳实施方式中使用Java命名和目录接口(JNDI)应用 编程接口(API),为采用Java编程语言编写的系统管理功能提供命名和 目录功能。JNDI体系结构包括API和服务提供者接口(SPI)。Java应 用使用JNDI API访问各种名称和目录服务,而SPI能够以透明方式插入 各种命名和目录服务,从而允许使用JNDI API的Java应用访问上述服 务,所述服务包括LDAP、通用对象请求代理体系结构(CORBA)、通用 对象服务(COS)名称服务,以及Java远程方法调用(RMI)注册。换 句话说,JNDI允许本发明的系统管理功能独立于任何具体的目录服务实 现,因此能够以通用方式访问各种目录。\n同时请注意,可以部分或全部使用不同于服务器功能的客户机功能实 施本发明。换句话说,或者由客户机或者由服务器处理对象的数据表示, 但是可以按照同一物理设备上的客户机进程和服务器进程的方式,实现客 户机和服务器功能。因此,关于最佳实施方式的说明,客户机和服务器可 以构成独立的远程设备,或者以两种独立身份运行的同一设备。可以在本 地存储器或分布式存储器中存储本发明的数据和应用代码。\n如上所述,可以在各种硬件和软件平台上实施本发明。确切地说,本 发明的目的在于通过基于角色的访问控制模型对资源的访问进行管理,基 于角色的访问控制模型包括使用角色过滤器和能力过滤器的动态更新功 能。作为背景,在详细论述本发明前,首先介绍典型的基于角色的访问控 制系统。\n现在参照图2,方块图表示典型的基于角色的访问控制系统。在安全 管理系统200中所示的部件仅仅表示基于角色的访问控制系统内的某些通 用概念、对象、关系或联系。依据安全管理系统的实施,对象和关系可能 具有不同的名称和功能。\n在企业内部,雇员可能“属于”一个或多个组织单位,如某个部门和 项目。用户对象202代表和组织对象204关联的一名雇员。组织对象204- 208代表企业内部的众多组织单位,假设每个组织单位有多名雇员或用户, 在公司目录210中存储有关雇员的信息,其中目录210为一个或多个目录 服务支持的数据目录。\n用户对象202不仅代表雇员而且代表经理,因此用户对象202与代表 类似经理组的组对象212相关联。在图2中,将组织单位对象206和208 表示为与组对象212相关联。假定企业内部的每个组织单位都有一个组对 象212表示的类型的经理,尽管该图并未明确标识对象206和208表示的 组织内的具体雇员。\n根据雇员在企业内的职务和工作描述,雇员可以在安全管理系统中分 配一个或多个角色。组对象212与角色对象214相关联,角色对象214定 义具有对资源216和218的基本访问权限的角色。例如,企业内的每个雇 员可以访问某些类型的基本计算资源,如访问内部网站的内联网帐户。此 类基本访问适用于与组对象212关联的每个经理,因此组对象212已经同 角色对象214相关联;资源216代表对访问特定内部Web服务器的授权, 而资源218代表对访问因特网防火墙的授权。\n然而,组织内的每个经理可能需要访问公司计时应用的特权。为了反 映真实的事务处理过程,定义角色对象220,并和组对象212相关联,角 色对象220具有一组访问权限222,这些权限明确定义与角色对象220关 联的用户如何使用资源224,该资源代表计时应用。\n可以通过示例阐明访问权限的必要性。假设企业内部具有不同计时应 用使用权限的不同类型的雇员使用计时应用。每个部门有一个计时员,其 主要任务是准确记录出勤、病假、加班费等。可以为每个计时员定义一个 计时员角色,并且每个计时员具有一定的使用计时应用的权限。\n计时应用具有定义公司内部假期的功能,限制计时员在系统内设置公 司内部假期。然而,必须由公司中的某人配置计时应用,以识别假日,此 功能限于经理。因此,与角色对象220相关联的访问权限的集合为,代表 计时功能的资源224内的特权的访问权限222。\n组织单位对象208表示从事特定项目的部门,特定项目需要只有该部 门内的雇员才能使用的资源226。因此,对象208(即,与对象208相关联 的任何用户对象)与角色对象228相关联,角色对象具有对资源226的访 问权限。尽管该图并未表示,但是将用与组织单位对象相关联的用户对象 表示部门内的每个雇员,并且每个用户对象最终与表示除其他角色对象之 外的基本资源访问的角色对象相关联。更重要的是,角色对象228表示制 订和管理特殊角色的方法。例如,外部承包商雇员也能与组对象230相关 联,进而与角色对象228相关联;因此承包商雇员可以访问资源226,而 企业内的其他雇员不能访问。如果雇佣另一家承包公司协助特定项目,可 以为新承包商的雇员构造一个新组,新组能够快速与预先定义的适当角色 对象(如角色对象228)相关联,而无需改变其他关系和联系。\n正如参照图2说明的那样,安全管理员的负担是手工(通过适当的管 理应用)将资源同现有安全管理系统中的角色关联起来。本发明旨在提供 特定的基于角色的访问控制模型,在该模型中,通过使用称为“活动角色” 的方法自动实现某些管理职责。以下参照其他附图进行详细描述。\n现在参照图3,方块图表示对象及对象间的关系,包括根据本发明之 最佳实施方式的基于角色的访问控制模型中的角色过滤器和能力过滤器。 与现有安全管理系统类似,本发明也使用资源和角色的概念。资源,也称 为目标。资源在企业内部为系统、服务、应用、设备、软件/硬件组件、数 据对象/记录等。角色是实体的特征或类别,如人员或服务,通过实体的功 能抽象,角色应用于实体。然而,有关本发明的一个重要问题是就用户、 用户组、服务对保护资源的安全访问进行控制,以便在状态不断改变时有 效管理大量用户与大量资源之间的关系。因此,正如下面详细说明的那样, 本发明扩展了资源和角色的概念。\n在本发明中,角色(如角色302)由一个或多种能力(如能力304)的 集合组成,能力定义对特定资源(如资源306)集合的访问。角色可以有 过滤器,如角色过滤器308,通过评价角色过滤器确定分配给该角色的主 体(principal)列表,如主体310。换句话说,角色过滤器确定角色适用 的主体的集合。\n主体表示资源的潜在消费者,可能包括用户、应用、服务,或其他类 型的资源消费者。假定本发明是采用面向对象的方式实现的,主体对象为 比各用户对象更广的对象类。一般而言,主体的实例是个人或应用。\n过滤器由包含属性条件的表达式组成。对角色过滤器而言,过滤器表 达式使用的属性是主体和主体子集所特有的。在本发明中,过滤器的句法 最好遵循因特网工程任务组(IETF)公布的请求注释(RFC)标准,特别 是RFC 2254,“LDAP搜索过滤器的字符串表示”,该标准定义通用过滤 器句法。\n能力由一个或多个访问条件的集合组成(如访问条件312),每个条 件都有一个或多个权限的集合(如权限314)。访问条件定义某一访问标 准,如日历约束。例如,如果资源是登录验证应用,则某些用户只能在特 定时间内登录到系统上。对特定类型的资源而言,权限为采用简单术语描 述的访问类型,如读、写、执行和删除。某一权限的存在可能隐含其他权 限。例如,对于特定对象类型而言,写权限隐含删除权限。\n能力有两个附加限定符:资源类型316和“对象或引用对象”标志318。 正如资源类型限定符表示的那样,每种能力定义对不同类型的资源的访问。 假定本发明是采用面向对象的方式实现的,利用“目标对象类”属性定义 资源类型;“目标对象类”属性系指WindowsNT类服务器、文件、打 印机和其他计算资源、乃至其他能力、角色或主体。\n请注意,角色并没有相应的“目标对象类”属性,因为角色总是与主 体关联。尽管主体可以为不同类型实体的子集,但是总是参照主体评价角 色过滤器。从某个方面来看,角色的“目标对象类”暗指主体。\n编程上称为“对象或引用”标志的能力内的“对象或引用”标志定义 访问类型:对象访问或引用访问。对象访问指访问数据库中存储的资源的 信息,而引用访问指对资源的物理访问。通过举例说明两种不同访问类型 之间的差别的重要性。某人可能有一个角色,如打印机技师,对打印设备 资源而言,技师有两种能力:一种能力允许打印机技师获得有关打印设备 的所有数据,此时,能力具有对象访问;另一种能力允许打印机技师物理 访问打印设备,以便向打印设备提交打印作业。另一个人有一个角色,如 计算机程序员,对打印设备资源而言,他只有一种能力:为了向打印设备 提交打印作业而允许计算机程序员物理访问打印设备的能力。\n与对有关角色的描述类似,能力也有一个过滤器,如能力过滤器320, 通过评价能力过滤器确定该能力定义的访问资源列表。换句话说,利用能 力过滤器确定特定能力应用的资源集合。诸如安全管理员之类的系统用户 可以利用本发明来定义每种能力的能力过滤器,而不是像现有系统那样, 通过手工方式明确将各种资源连接到某种能力。当添加、删除、修改资源 实例时,重新评价能力过滤器,以保持正确的关系集合。\n另外,过滤器由包含属性条件的表达式组成;对能力过滤器而言,过 滤器表达式使用的属性为能力的资源类型定义的资源类型所特有的(“目 标对象类”)。例如,如果“目标对象类”代表个人,则过滤器引用的属 性为诸如地址、姓氏或职务之类的属性。\n资源可以为系统中的任何对象,包括主体、角色或能力的任何实例。 因此,具有对象访问的能力应该允许以下情况。某人可能具有某个角色, 如打印机技师经理,他具有打印机技师角色的能力的超集。相对于打印机 技师,打印机技师经理除具有对打印设备资源的所有访问权限之外,还具 有以下能力:以打印机技师为资源,打印机技师经理具有获得有关打印机 技师之所有信息的对象访问权限。\n活动角色处理检查特定实例(角色、能力、主体或资源)和/或特定实 例属性的添加、删除或修改,检索与特定实例类型相关的过滤器,并对照 特定实例“运行”过滤器,从而引起一个或多个成员资格列表的变更。换 句话说,任何实例的任何改变导致与实例相关联的过滤器的识别,并对照 该实例运行所识别的过滤器。\n如果添加或修改过滤器,则对照所有适用实例运行过滤器,从而导致 一个或多个成员资格列表的变更。\n成员资格列表是与包含成员资格列表的实例关联的实例的列表。利用 角色(“过滤器成员”322)、能力(“过滤器目标”324)、主体(“过 滤器角色”326)以及作为资源的各对象类(“过滤器能力”328)内的多 值属性表示成员资格列表。在“过滤器成员”与“过滤器角色”之间是双 向关系,“过滤器目标”与“过滤器能力”之间也是双向关系,如下:\n当向角色的“过滤器成员”属性添加主体时,将角色添加到主体的“过 滤器角色”属性中。\n当向主体的“过滤器角色”属性添加角色时,将主体添加到角色的“过 滤器成员”属性中。\n当向能力的“过滤器目标”属性添加资源时,将能力添加到资源的“过 滤器能力”属性中。\n当向资源的“过滤器能力”属性添加能力时,将资源添加到能力的“过 滤器目标”属性中。\n请注意,角色有0个或1个角色过滤器;如果角色没有角色过滤器, 则它不会有任何“过滤器成员”,也不参与活动角色处理。然而,在这种 情况中,没有角色过滤器的角色还是很有用的,因为诸如安全管理员之类 的系统用户,可以使用管理应用用手工方式将角色与主体联系起来,即静 态方式。因此,角色的实例中可能有其他静态属性。相应地,静态关联的 有关主体不会有该角色的任何“过滤器角色”。\n同样,请注意,能力有0个或1个能力过滤器;如果能力没有能力过 滤器,则它不会有任何“过滤器目标”,也不会参与活动角色处理。然而, 在这种情况中,没有能力过滤器的能力还是很有用的,因为安全管理员或 其他用户可以使用管理应用用手工方式将资源和能力联系起来,即静态方 式。因此,能力实例中可能有其他静态属性。相应地,静态关联的有关资 源不会有该能力的“过滤器能力”。\n如上所述,最好采用以下面向对象的方式实现本发明。活动角色处理 在存储和管理与安全性有关的数据(用户、帐户、角色等)的基于Java 的目录服务器中进行。客户使用JNDI向服务器请求更新和检索,服务器 与后端数据仓库(数据库或与LDAP兼容的命名服务)进行交互,以服务 请求。对数据库的每个更新(除成员资格列表的更新之外),总是调用活 动角色处理,以分析该更新是否需要重新生成上述成员资格列表。如果需 要的话,则生成新列表,并调用后台数据仓库以修改与该列表关联的属性。 请注意,只有成员资格列表的变更才会引起活动角色处理。因此,如果请 求更新数据库内的成员资格列表,则该请求更新并不调用其他活动角色处 理,以防止在活动角色处理内部产生循环。\n再次参照图3,在该系统中,分别用“角色”、“能力”和“访问条 件”对象类来表示角色、能力和访问条件。客户通过创建JNDI“属性”结 构并向目录服务器发送“bind()”请求将“属性”绑定到目录中的名称, 实例化对象类的实例。例如,要创建“能力”对象类的实例,诸如安全管 理员之类的用户借助管理应用,指定实例的名称,以及由值为“能力”的 “对象类”、与RFC 2254兼容的过滤器、表示与创建的能力关联的资源 的资源类型的“目标对象类”属性、“对象或引用对象”标志,以及其他 可能的属性组成的“属性”。然后将创建的“能力”对象“绑定”到该系 统中的现有“角色”对象。\n“主体”是一个抽象对象类。它不能直接实例化,但可以实例化它的 子集(如“人”,“服务”)。“资源”并不是真正的对象类,因为任何 对象类都可以为资源。然而,从概念上说,当实例成为能力的目标时,它 就成为资源。\n现在参照图4,该流程图表示更新图3所示的根据本发明之最佳实施 方式的数据关系组织的数据库时,出现的活动角色处理。图4所示的处理 仅仅表示添加或修改数据库内的数据时,活动角色处理器模块(与目录或 数据库一起运行)可能触发的处理事项的一个流程。然而,请注意,活动 角色处理器可以以守护程序或监视方式运行,因此能够以事件循环方式重 复执行该处理。\n当活动角色处理器模块收到带有关联属性的添加或更新实例时,处理 开始(步骤402)。活动角色处理器可以接收实例的副本,作为有关实例 发生与数据库关联的操作时的通知。作为选择,也可以选择其他数据通知 机制。然后,确定所接收实例的对象类(步骤404),并开始搜索其资源 类型与接收实例之对象类匹配的能力(步骤406)。假设至少有一个能力 匹配,则活动角色处理器针对接收的示例,运行匹配能力的能力过滤器(步 骤408),从而导致数据库中的属性的更新,在授权处理期间使用数据库 确定发出请求的主体是否收到对保护资源的访问。\n接着,确定收到实例的对象类是否是“主体”类或任何“主体”的子 集(步骤410)。如果是的话,则针对接收实例运行所有角色过滤器(步 骤412),从而导致数据库中属性的更新,在授权处理期间使用数据库确 定发出请求的主体是否收到对保护资源的访问,并且完成有关该实例的活 动角色处理。此时,该处理确定应用于主体的角色。因为角色能够应用于 所有主体,所以必须评价所有角色过滤器。请注意,因为某些主体还服从 能力过滤器,所以新主体或经过修改的主体导致有关步骤408的能力过滤 器和步骤412的角色过滤器的过滤处理。\n如果已接收实例的对象类不是“主体”类型,则确定已接收实例的对 象类是否是“角色”类型或“能力”类型(步骤414)。若不然,则处理 结束。如果是的话,则确定已接收实例的过滤器属性是否改变,即,过滤 器是新过滤器还是经过修改的过滤器(假设实例有过滤器)(步骤416)。 若不然,则处理结束。如果是的话,则以适当方式运行已接收实例的过滤 器(步骤418),从而导致数据库中的属性的更新,在授权处理器期间使 用该数据库,确定发出请求的主体是否收到对保护资源的访问,然后处理 结束。如果实例是“角色”类型,则相对于所有主体运行实例的角色过滤 器。假如实例是“能力”类型,则相对于带有匹配资源类型的所有资源运 行该实例的能力过滤器。无论如何,如果系统定义了成千上万个主体或资 源,则完成此步骤需要大量计算。\n考虑到本发明的以上详细说明,本发明的优势是显而易见的。在现有 技术中,基于角色的访问控制模型使用角色概念自动进行与用户以及关联 组有关的处理。尽管通过使用基于角色的访问控制模型能够改善安全管理 应用,但上述系统仍会给安全管理员带来沉重的负担。\n相反,本发明通过引入基于角色的存取控制模型这一新颖概念而获得 了明显改善。除与现有系统中的角色关联的访问条件和/或权限之外,通过 将一组能力合并到角色中,本发明能够自动处理有关用户和资源之间的关 系。特别地,角色具有角色过滤器,评价角色过滤器以匹配用户,然后自 动与给定角色关联起来。除角色过滤器之外,每个已命名的角色包含一组 能力,每种能力有一个能力过滤器。当添加、删除、修改目标实例时,需 要重新评价能力过滤器以保持正确的关系集合。通过自动管理角色和用户 以及该角色的能力和资源之间的关系,本发明提供增强安全管理员之能力 的方法,从而用户能够安全访问资源。\n请注意,尽管在全功能数据处理系统的环境中描述本发明,但是一般 技术人员可以理解,能够以计算机可读介质上的指令的方式或以各种其他 方式,分发本发明的处理方法,而不关心进行分发时实际使用的信号承载 介质的特定类型。计算机可读介质的示例包括:EPROM、ROM、磁带、 纸张、软盘、硬盘、RAM、CD-ROM以及其他传输类型的介质,如数字 和模拟通信链路。\n提供本发明之详细说明书的目的是为了举例说明,而不是穷举或限制 所公开的实施方式。一般技术人员容易想到许多修改和变更。选择上述实 施方式的目的是解释本发明的特征以及其实际应用,并使一般技术人员理 解本发明,以便实现其修改适合于其他预期用途的各种实施方式。
法律信息
- 2010-09-01
未缴年费专利权终止
IPC(主分类): G06F 1/00
专利号: ZL 02810345.9
申请日: 2002.05.08
授权公告日: 2006.05.24
- 2006-05-24
- 2004-12-29
- 2004-10-13
引用专利(该专利引用了哪些专利)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 | 该专利没有引用任何外部专利数据! |
被引用专利(该专利被哪些专利引用)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 | 该专利没有被任何外部专利所引用! |