授权控制的制作方法

文档序号:7552487阅读:135来源:国知局
专利名称:授权控制的制作方法
授权控制
背景技术
云计算环境可以提供被从底层物理硬件中抽象的计算基础设施。云计算环境可以通过提供用于根据需求创建虚拟机(VM)的能力来实现(de I i ver )基础设施即服务(IaaS ),所述虚拟机具有诸如尺寸、操作系统、块设备的数目等的定义的属性。可以从底层物理硬件中挖掘这些VM,所述这些VM可以被形成为封装网络。图1图示了云计算环境的示例。在图1中所示出的示例中,示出了物理计算硬件基础设施101。所述物理计算硬件基础设施能够例如包括一个或多个数据中心等等,所述数据中心包括多个服务器、一个或多个超级计算机或计算资源的任何集合或网络。物理硬件可以被一个组织拥有和控制,并且被使得其他组织可获得,例如作为基础设施即服务和/或平台即服务业务的一部分,或者硬件能够是作为针对其自己的用户的云计算环境而操作的单一组织的硬件。物理硬件可以被用来根据需求将适当的VM提供给用户。VM可以与用于操作和数据存储的卷(即虚拟盘)相关联。在一个实施方式中,VM和卷被提供在单元内,其中每个单元是包括一个或多个VM和/或卷的封装网络。在云计算环境的实施方式中,单元是得自底层物理基础设施的虚拟化基础设施,其可以通过封装与由相同的物理基础设施所提供的其他虚拟资源分离。换句话说,单元是虚拟资源的集合,所述虚拟资源可以被隔离在虚拟安全边界内,并且其中,网络安全规则可以控制任何数据业务进入或离开所述单元。单元因此可以提供虚拟网络,所述虚拟网络可以被连接到更广泛的网络,并且在所述虚拟网络中,除了通过能够被单元的拥有者所控制的连接规则以外,网络安全规则可能意味着一个单元与另一个单元隔离。默认情况下每个单元都可以与所有其他单元彻底地隔离,尽管单元的拥有者能够通过网络访问规则来控制所述单元与外部实体的交互。在单元内又一个虚拟机可以被实例化并且可以形成虚拟网络。卷是单元的部件。在云计算的背景下,卷是可被VM访问的虚拟部件,所述VM提供了永久存储以便保持VM的状态或用来形成VM的图像或部件。在云计算的背景下,卷被自任何底层物理存储硬件中抽象出来,并且因此与任何特定的存储资源或资源的类型分离并且未捆绑到任何特定的存储资源或资源的类型,但是提供具有诸如尺寸之类的定义属性的单一不同的虚拟存储资源。图1示出了第一用户102正在运行两个单元103和104。用户102经由通过例如用户的本地工作站所提供的用户接口来访问单元。用户102针对单元规定了 VM和相关联的卷的数目和属性。单元103示出了若干VM 105-1至105-5的说明性网络,每个VM都具有相关联的卷106-1至106-5。单元104示出了包括具有三个相关联的卷108-1至108-3的单个VM 107的说明性网络。图1还图示了另一用户109正在运行不同的单元110。在一些实施例中,用户可以共享云计算环境内的服务,并且运行在云计算环境内的应用可以自主地与其他应用交互。因此,云计算环境可以以松散耦合的、自主服务的集合为特征。


现在将参考以下图仅通过示例对实施方式进行描述,图中
图1图示了云计算环境和多个单元的示例;
图2图示了卷管理系统的实施方式;
图3图示了云计算环境中的授权系统的实施方式;
图4图示了使用授权系统来出具认证的实体的实施方式;
图5示出了出具认证的一个方法的流程 图6示出了查询实体是否具有授权的一个方法的流程图;以及 图7图示了授权系统的多个实例的实施方式。
具体实施例方式在许多计算环境中以及尤其在云计算环境中安全是重要的考虑事项。安全的重要方面是用于控制对服务和资源的访问的授权。例如,图2图示了可以被与多个用户202a和202b共享的卷管理服务201。卷管理服务201可以允许用户创建和修改单元卷,即可以被附加到在用的虚拟机(VM)的虚拟盘。卷管理服务在基于单元的云计算环境中可以被实例化在其自己的单元内,并且可以提供卷管理服务器VM 203以便执行各种管理功能。用户202a可以连接到卷管理服务器203并且能够访问该用户的单元卷204a。用户202b也可以连接到卷管理服务器203以访问由用户202b所拥有的单元卷204b。一般而言,用户202a可能想要成为能够访问用户202a拥有的卷204a的唯一用户。然而在一些情况下,用户202a可能是想允许一个或多个其他用户(例如,用户202b)访问用户202a拥有的卷中的一个或多个。此外,出于执行卷的扫描的目的,用户202a可能想要允许云计算环境中的一个或多个应用(例如,应用205)例如病毒扫描应用能够访问卷204a。图3图示了认证系统的实施方式,所述认证系统例如云计算环境中用于控制对服务和资源的访问的授权系统。图3示出了访问应用302的实体301,所述实体301在本示例中可以是访问诸如上述的卷管理服务器VM的用户。然而显然实体301还能够是云计算环境的应用。用户301可以访问卷管理服务器并且请求关于卷303的动作。卷管理服务器需要确定用户301是否被授权以对所规定的卷执行所请求的动作。例如,如果用户试图访问可用卷的列表或者针对满足特定标准的卷执行搜索,则卷管理服务器需要确定用户301被授权发现哪些卷,例如具有读访问权。如果用户301选择了特定卷并且试图修改该卷,则卷管理服务器需要确定用户301是否具有修改该卷的授权,例如已经许可了对该特定卷的写访问权。卷管理服务器因此联系授权系统304,以确定用户301是否具有对所规定的资源执行所请求的动作的必要授权。在一个实施方式中,卷管理服务器生成查询,所述查询询问授权系统用户301是否被授权对所规定的资源执行所请求的动作。在一个实施方式中,授权系统304可以包括与卷管理服务器进行交互的授权服务器VM 305。授权系统304控制对认证的存储306的访问,所述存储306支配授权。认证是语句,其已经被实体预先出具,其指示另一个实体(认证的主体)具有特定属性。认证因此是主体具有相关属性的预先出具的确认。属性可以是用于执行某动作的许可和/或属性可以是与访问相关的主体的任何属性。认证是能够赖以进行授权决定的安全语句。在一个实施方式中,授权系统为出具的认证提供安全。授权系统在授权服务器305处接收查询,并且将所述查询传递到决定引擎307。所述决定引擎根据已经被出具的认证的存储306来确定用户301是否具有对所规定的资源执行所请求的动作的授权。决定引擎307因此进行关于用户301是否被授权的决定,并且充当策略决定点(PDP)。授权系统然后可以以关于针对该动作用户301是否被授权的决定的结果来响应卷管理服务器302 (经由授权服务器305)。卷管理服务器302然后使用本决定的结果来相应地许可或者拒绝用户301访问。应用即本示例中的卷管理服务器因此充当策略实施点(PEP)。应当认识到的是,云计算环境中的授权系统可以包括一个或多个虚拟机(VM)。例如,授权服务器可以是在底层物理基础设施内实例化的VM,即底层计算机硬件提供授权服务器。认证的存储306可以由附加到VM并且实现在底层物理基础设施内的一个或多个卷来提供。卷管理服务器可以检验用户301的身份,即卷管理服务器可以验证用户301。在一个实施方式中,卷管理系统在向授权系统生成查询之前验证用户301的身份。卷管理服务器可以使用任何类型的验证,例如使用X509加密方案、Kerberos或OpenID或任何其他适当的验证协议。在本实施方式中,验证因此由授权来解耦。由查询传送的用户的身份可以简单地是字符串,例如类型化字符串,其得自由卷管理服务器所执行的验证程序。卷管理服务器即应用可以采用相对简单的查询来查询授权系统,并且授权系统可以以决定例如授权真(True)或假(False)来响应。这避免了对于认证为数字证书的需要。数字证书的管理和处理可能是复杂的。避免了对于认证为数字证书的需要的授权系统的实施方式可以避免这样的复杂性。在这样的情况下,云计算环境的用户和应用信任出具认证的授权系统以及各方-然而可以使授权系统它本身变得安全,并且在实现安全授权系统方面的改进的易用性将意指应用开发者更可能开发安全的应用。授权系统可以作为局部对象被实现为应用或服务的部件。换句话说,授权系统的实例可以包括云计算环境的应用的一部分,使得所述应用让授权系统作为局部对象嵌入在其之内。例如授权系统可以是卷管理系统的部件,作为卷管理系统的一部分的局部对象例如Java对象来运行。能够将授权服务作为局部对象来运行意指可以在服务的开发的非常早期阶段包括授权,并且可能无需开发或者部署额外的基础设施。授权服务还可以被实现为云计算环境内的独立服务,并且可以例如经由诸如HTTP/SSL之类的安全通信协议访问。在任何一种情况下,编程抽象是相同的。如将稍后更详细地描述的那样,可以存在在单个云计算环境内实例化的授权系统的多个实例,并且授权系统可以是多租户,即可被多个用户使用。如还将稍后更详细地描述的那样,授权系统可被云计算环境的应用使用,并且应用可以自主地出具认证。授权系统使用认证来确定云计算环境的用户或应用是否被授权对资源执行动作。在一个实施方式中,针对授权所选择的初级抽象是路径的概念。程序员和开发者熟悉路径的概念,并且路径的使用允许便于对多个资源的授权。认证可以包括访问权限认证。访问权限认证规定了主体即一个或多个用户和/或应用被授权对特定资源执行特定动作。主体可以包括标别一个或多个用户或应用的字符串。字符串可以是类型化字符串,例如类型可以规定‘用户’-在这个情况下字符串标别用户-或者可以规定‘组’-在这个情况下字符串表示将被授权系统所识别的组。正被允许的特定动作可以通过表示特权例如读、写、拷贝等来规定。特定的特权可以使得能实现多个动作,例如写特权可以使得能实现修改或者更新以及删除诸如卷之类的资源的动作。写特权还可以被采取来包括在读特权级可获得的所有动作,以便避免对于单独地规定每个个别特权的需要。云计算环境可以配置有用于访问资源的公共的一组特权,使得对不同应用和资源的访问能够使用所述公共的一组特权来控制。然而在一些实施方式中,特定的应用可能想要为该应用引入定制(bespoke)特权。来自这样的应用的查询以及关于访问这样的应用的认证因此可以指的是这样的定制特权,并且授权系统将确认特定的主体是否已经被许可定制特权。这样的定制特权将被特定的应用识别但可能不被其他应用识别。资源的指定可以包括路径到资源的指定。如上所述,路径对于程序员和开发者而言可能是熟悉的概念,并且提供用于指定云计算环境中的资源的方便方法。指定还可以包括资源的类型的指定。使用资源的基于路径的指定,认证可以指定在路径的规定节点处的资源,例如在分级目录存储系统中路径能够指定特定的卷。例如,形式为/用户/用户a/卷/卷I (/users/user_a/volumes/voll)的路径将指定所规定的目录中被命名‘卷I (voll)’的卷。资源的指定还能够指示路径中的所指定的节点以下的所有资源,例如指定/用户/用户a/卷/* (/users/user_a/volumes/*)可以被用来标识相关目录或任何子目录内的所规定的类型的所有资源,如果资源的类型被包括的话。主体和特权的指定还可以包括例如诸如或条件‘all (所有)’之类的通配符的指定,以指示所有主体或所有特权级都被许可。因为授权系统可以是多租户并且可以被多个用户和应用使用,所以认证还可以包括出具认证的实体的身份的指示。以这种方式,用户或应用可以仅使用由已经被选择为信任的实体所出具的认证。出具者(issuer)的指定可以是字符串,所述字符串指示了进行认证的用户或应用。将在下面描述出具认证的过程,但出具认证的实体可以向授权系统验证它自己。以这种方式,认证的消费者可以信任已经正确地验证了所述认证的出具者的授权系统,以及由此,如果它们信任该出具者,则能够信任所述认证。在一个实施方式中访问权限认证因此是五元组(5-tuple),即五个元素的排序列表,包括(出具者、主体、路径、接口、特权)其中,接口元素表示资源的类型。例如访问权限认证可以是
出具者用户(爱丽丝(Alice)),主体用户(鲍勃(Bob)),路径/用户(users)/鲍勃/*,接口 :目录,特权写
该认证因此指示了其通用名为爱丽丝的用户已经向其通用名为鲍勃的用户许可了对于/用户/鲍勃目录内和以下的每件事的写访问权。因此由用户鲍勃修改在/用户/鲍勃/卷/卷I处的卷的请求可以得到授权系统授权。如上所述,授权系统可以允许基于几组用户或应用的认证。组的定义能够减少所需要的认证的数目,并且通过按角色对用户进行分组并且对访问相关基于角色的组进行授权来允许基于角色的访问的能力。为了组的成员资格被正确地控制,由授权系统所控制的认证可以包括组认证。
组认证规定了主体即一个或多个用户和/或应用是规定组的成员。组认证还可以包括组认证的出具者的指定。组认证在一个实施方式中因此包括三元组(3-tuple):(出具者、主体、组名)。出具者和主体可以是分别定义了出具者和主体的名字的字符串,并且可以是类型化字符串。主体它本身可以是组以允许到组的层级结构,即一个组,以及由此所有它的成员可以是另一个组的成员。组名可以是用来指定组的任何字符串。例如以下组认证
出具者用户(爱丽丝),主体用户(鲍勃),组名工程师出具者用户(查理(Charlie)),主体用户(戴夫(Dave)),组名经理出具者用户(爱丽丝),主体组(用户(爱丽丝),工程师),组名员工出具者用户(爱丽丝),主体组(用户(查理),经理),组名员工指示了用户爱丽丝已经证实用户鲍勃是在称为‘工程师’的组中,并且用户查理已经证实用户戴夫是在称为‘经理’的组中。用户爱丽丝还已经证实组‘工程师’(由爱丽丝出具)和组‘经理’(由查理出具)两者是称为‘员工’的组的一部分。各组(Group)可以由出具者限定范围,即组的指定包括对定义该组的认证的出具者的参考。这意指组(用户(爱丽丝),工程师)与由不同用户出具的也称为工程师的组例如(用户(伊芙(Eve)),工程师)不同。如果不同用户选择了不同的组名,则组的此作用范围由用户来避免任何冲突。授权‘员工,组(如由爱丽丝出具)的成员执行特定动作的访问权限认证,即其中主体是组(用户(爱丽丝),员工)的认证因此将在本示例中将向鲍勃和戴夫两者许可授权。在一个实施方式中,认证还可以包括属性认证,所述属性认证规定了一个或多个用户或应用的或可以被访问的资源的属性。例如,只要用户已经完成了由用户的雇主所要求的培训课程或进修课程例如商业行为准则课程,希望使用特定应用例如通过用户的雇主所提供的云计算环境的电子邮件服务的用户就可以允许访问。培训课程能够由在云计算环境中实现的培训应用来提供。如果用户成功地完成了培训课程,则培训应用可以出具相关用户已经完成所述培训课程的认证。在没有这样的有效认证的情况下,电子邮件服务可以拒绝该用户访问服务。作为另一示例,只要卷已经由病毒扫描服务扫描过并且认为无毒,卷管理系统就可以允许用户访问或者使用卷。在本实施方式中,云计算环境的应用和服务因此能够自主地出具认证,并且许多不同的应用可能够出具认证。这避免了对于由人类管理员管理的单个中央认证管理机构(authority)的需要。在松散耦合服务的集合内,诸如为云计算环境中的特性,认证的中央控制将是复杂的和耗时的。然而,通过允许认证的自主出具并且允许用户规定他们将信任的认证的出具者,授权的管理被大大简化了。属性认证可以包括所述认证的主体的指示,所述认证的主体可以包括云计算的一个或多个用户或应用和/或一个或多个组,并且所述属性认证在一些实施方式中可以包括资源的指示。属性认证还可以包括相关属性的指示,所述相关属性在一个实施方式中可以包括类型和值。类型可以定义值的适当类型,即布尔值、日期、字符串等,其中所述值然后表示值的适当指示器。例如,如果认证是特定用户已经完成进修课程,则主体可以包括相关用户的身份,类型可以指示日期以及所述值可以包括所述课程成功地完成的相关日期。这能够允许构建授权查询,所述授权查询询问特定用户是否已经在规定的时间段内例如在最近两年内承担了进修课程。属性认证可以包括认证的出具者的指示。认证的消费者可以仅信任由特定实体出具的认证,所以出具者的指示可能是重要的。在一个实施方式中,至少一些认证可以包括用于存储所述认证的路径指示器。换句话说,认证可以被存储在其中路径指示存储结构的相关目录的基于目录的结构中。在一些实例中,用于存储认证的路径可以对应于所述认证应用于的相关资源的路径,或者在一些实例中路径可能与进行认证的应用相关。为至少一些认证提供基于路径的存储结构可以使得认证能够在基于路径的基础上被管理。例如,如将稍后描述的那样可以向用户许可对结构中的某节点以下的所有认证的读访问权。这能够便于对认证的访问控制的管理,特别是对于属性认证来说。例如,病毒扫描应用可以在特定用户的卷即爱丽丝的卷中的全部上运行扫描。扫描的结果可以作为属性认证被存储在诸如Il病毒扫描仪(virus_scanner)/扫描(scans)/爱丽丝之类的授权系统的储存器内的目录中。本目录的内容可以由已经被许可对爱丽丝的卷的读访问权的任何人按只读方式访问。作为另一示例,培训应用能够按员工将进修课程的完成的日期存储在目录//培训应用(training_app)/进修(refresher)/状态(status)/中,所述目录由组‘人力资源’的所有成员读访问。用于存储认证的路径的使用为经授权的属性提供了完全结构化的命名空间。应用能够通过使用授权系统自主地出具认证,并且这些与规定路径存储在一起。认证的消费者通过授权系统知道对所述认证的写访问被控制和限制。在一个实施方式中,仅认证的原始出具者被准许更新或者修改认证。然而,对于规定的用户、用户的组或应用,授权系统可以基于该路径允许读访问。这避免了对于认证为数字证书的需要,由此避免接踵而至的复杂性。在缺少用于存储认证的规定路径时,授权系统可以将所述认证存储在可被授权系统访问的一个或多个存储系统(诸如数据库)中。授权系统可以基于认证的类型即访问权限或组或属性来存储认证。通常,存储系统对于授权系统的实例而言可能是个别的,并且可以包括授权系统的一部分。然而,在一个实施方式中,储存器可以在授权系统的任何特定实例外部但可被授权系统的该实例访问。图4图示了实体使用授权系统来出具认证的实施方式,而图5图示了在出具认证方面的步骤的流程图。图4图示了实体401可以经由诸如HTTP/SSL之类的适当的通信协议访问授权系统402 (步骤501)。授权系统可以包括用于与实体401和存储404交互的授权服务器403。授权服务器403可以是由底层物理基础设施提供的VM。为了与授权系统402建立会话,实体向授权系统验证它自己(步骤502)。诸如X509验证之类的任何合适的认证协议可以被授权系统用来验证实体,并且在一些实施方式中,取决于实体的性质授权系统可以被配置成承担多个可能的验证协议中的一个。实体401可以是云计算环境的用户,例如经由计算机工作站或移动计算设备或任何其他适当的计算硬件访问该授权系统的用户。替换地,实体可以是例如包括在被配置成运行应用的底层物理基础设施(即底层计算硬件)中实例化的一个或多个VM的云计算环境的应用。因此,云计算环境的应用或服务能够自主地出具认证。用于应用自主地出具认证的能力提高了授权系统在云计算环境中的灵活性,并且减少了对于基于中央用户的控制的需要。
一旦会话已经被建立了,实体401就能够向授权系统发送用于添加认证的命令(步骤503)。所述命令可以规定正被进行的认证的类型,并且规定所述认证的元素。例如,用于添加认证的命令可以包括用于添加访问权限的命令并且可以规定权限的主体、资源的路径、接口即资源的类型以及按如上所述许可的特权。因此命令诸如
添加许可(addGrant)(主体用户(鲍勃),路径/用户/爱丽丝/*,接口 目录(dir),特权读)
将给予用户鲍勃遍及目录/用户/爱丽丝的整个内容的读访问权。授权系统接收所述命令并且确定(步骤504)实体401是否有权添加这样的访问权限。许可访问权限的能力可以限于特定定义的用户和/或应用,和/或可以限制可以进行的认证的类型。因此,如果实体是用户爱丽丝并且目录用户/爱丽丝是存储了由爱丽丝创建的卷的地方,则爱丽丝可以被授权添加这样的许可。然而,爱丽丝可能未被授权将许可添加到目录用户/鲍勃。检查实体401是否具有添加认证的必要授权的过程可以使用响应于访问权限查询所使用的基本上相同的过程,将稍后对所述过程进行更详细的描述。如果实体不具有必要的授权,则可以终止过程(步骤505)。然而如果实体被授权,则如在步骤502中验证过的实体401的身份被添加到认证(步骤506),并且然后完成的认证被存储(步骤507)在存储404中,存储404可以是由计算机存储器/底层物理资源的储存器所提供的卷。认证可以被存储在存储404中,所述存储404被封装在授权系统402内并且仅可经由特定的授权服务器403访问。因此,授权服务器403可以控制对认证的存储的所有访问。然而在一个实施方式中,存储404可以在授权系统402外部和/或可以被授权系统的不同实例访问。在一些实施方式中,至少一些认证以指定的路径存储在存储404内。例如实体401可以是已经被用户用来完成进修课程的培训应用。在这种情况下,认证可以是规定完成的日期的属性认证。用于添加认证的命令因此可以包括用于存储所述属性的路径,例如
添加属性(addAttribute)(主体用户(鲍勃),路径//课程(courses)/状态(status),类型日期,值I月23日
这将指示授权系统将鲍勃于I月23日完成进修课程的属性认证添加在存储404内的规定路径处。如上所述,出具者的身份可以通过授权系统而被存储在认证中。在本实施方式中,不可能代表第三方出具认证。因此,认证的消费者知道授权系统已经验证了出具者的身份以及由此指定特定出具者的认证是可信的,从而避免对于认证包括数字证书的需要,所述认证的消费者可能仅信任从特定信任源出具的认证。参考图4,与授权服务器403建立会话的用户还可以使用该连接来管理他们的认证。授权系统可以提供用于管理授权的各种各样的设施,诸如搜索、编辑功能等。用户可以列举或者搜索认证,并且在需要时可以修改或者更新认证。认证本身可以包含敏感信息。例如,各个组的成员能够使敏感的,或者给予特定用户的访问权限也可能是敏感的。对认证本身的访问因此可以由授权系统来控制。因此可以存在支配哪些用户能够读现有认证的访问权限。这提供了允许在使用数字证书时是不可能的选择性访问认证的能力,并且保护所述认证的主体和出具者的隐私。另外,能够动态地改变控制对认证的访问的认证。如上所述,访问控制可以是基于路径的,通过其认证被存储,并且可以针对规定的节点和其以下的所有节点给予访问权。默认情况下,诸如访问权限认证或组认证之类的认证的出具者可以是被授权读、修改或者删除认证的唯一用户,尽管一些认证可以是有时限的并且可以期满。认证的出具者可能够授权其他用户读和/或写,即修改现有认证。例如在组织中,组的管理可能是人力资源的责任。管理者因此可以创建组认证以创建初始人力资源组。人力资源组然后可以被授权创建新的组认证以及修改或者替换现有的组认证(包括人力资源组)。一旦认证已经被出具,授权系统就能够被其他实体用来确定云计算环境的用户或应用是否被授权执行如与图3相关地在上文所描述的特定动作。图6图示了访问控制的一个方法的流程图。如图3中所示,实体301联系应用302以便访问一些资源303 (步骤601)。应用302使用诸如X509、Kerboros> OpenID等等之类的任何适当的验证协议来验证实体301的身份(步骤602)。因为认证被执行在应用302与实体301之间并且由授权解耦,所以不同的应用能够在具有相同授权系统的云计算环境内使用不同的验证协议。一旦应用302已经验证了实体301,实体就可以请求访问一些资源,例如用户可以请求访问存储服务的目录或者试图执行搜索,并且病毒扫描应用可以请求访问卷以便病毒扫描。应用确定由实体301所请求的动作和资源并且构建查询(步骤603)。查询可以是关于主体即请求实体是否有权对规定的资源执行规定的动作的查询。查询的形式可以和访问权限认证的通用形式匹配。主体可以由如在验证步骤中确定的实体301的通用名字来表示。所规定的资源可以由相关资源的路径规定。资源的类型还可以用接口字段规定。所请求的动作可以通过表示所需要的特权级来规定。例如,如果实体301是用户爱丽丝,并且应用是存储服务器,以及爱丽丝正想要访问在/用户/爱丽丝/卷I处的目录,则查询可以采取形式
具有授权(hasAuth)(主体用户(爱丽丝),路径/用户/爱丽丝/,接口目录,特权读)
在一些实施方式中,在对服务的访问还取决于特定属性情况下,诸如例如,用户已经在最近两年内完成了进修课程,查询还可以查询主体是否具有相关的属性认证。例如
具有属性(hasAttr)(主体用户(爱丽丝),路径/课程/状态,类型日期,值:>01/01/2009)
可以包括询问用户爱丽丝是否具有比2009年I月I日更近的在所述位置处存储的课程完成日期。在一些实施方式中,查询可以包括应用和/或实体将信任的认证的所有出具者的指不,即以便确定哪些认证应当被用在决定授权决定中。在其他实施方式中,针对应用和/或用户的信任关系可以由授权系统存储并且由授权系统基于查询的应用和/或主体的身份来检索。应用302与授权系统304进行联系(步骤604)。尽管在本示例中被示出为在生成查询之后与授权系统进行联系,但显然能够在与授权系统进行联系的步骤期间或之后生成所述查询。如果授权系统是独立服务或应用302的一部分或与应用302不同的应用,则通信是经由诸如HTTP/SSL之类的任何适当的安全协议的,并且应用和授权系统可以互相验证(步骤605)。然而在授权系统正作为应用内的局部部件运行的实例中,可能无需验证并且通信可以本身是内在私密的。一旦建立了适当的连接,应用302就将查询发送到授权系统304 (步骤606)。授权系统接收请求并且确定应用和/或实体准备信任的受信任的出具者的列表(步骤607 )。如上所述,这个可以被包含在查询内,或者授权系统可以基于应用和/或主体的身份来访问存储关系的列表。授权系统然后可以搜索受信任的出具者的所存储的认证,用来确定主体是否是任何组的成员并且用来标识这样的组(步骤608)。这可以涉及迭代搜索,因为如果主体即个别用户爱丽丝是组即‘工程师’的一部分,则将有必要然后确定组‘工程师’是否是较大组的本身部分。一旦所有组已经被标识了,就可以搜索访问权限认证(步骤609)以确定主体或所述主体属于的组中的任何一个是否具有必要的访问权限(如由受信任的出具者所证实的)。如果查询涉及以特定属性认证为条件的授权,则还可以执行搜索(步骤610)以确定主体或相关组是否具有必要的属性(如由受信任的出具者所证实的)。如果发现主体具有必要的访问权限和任何必要的属性(如由受信任的出具者所证实的),则决定被采取来对所请求的动作进行授权,然后该决定被传送到应用302 (步骤611)。应用接收用于授权的所述决定,并且通过允许实体301访问所请求的资源来实施所述决定(步骤612)。然而,如果未发现必要的访问权限或者如果未发现必要的属性(如由受信任的出具者所证实的),则由授权系统做出所请求的访问未被授权的决定。该决定被发送到应用(步骤613),并且所述应用通过拒绝访问来实施所述决定(步骤614)。如上所述,在云计算环境中可能存在授权系统的若干实例。图7图示了具有授权系统的若干实例的实施方式。图7示出了多个用户701a_d。用户701a和701b正在分别地访问与图2相关地在上文所描述的卷管理服务类似的卷管理服务702。用户701a和用户701b中的每一个都与卷管理服务器VM 703建立会话以便访问和管理卷704。为了决定用户701a是否被授权访问卷704,卷管理服务器与如上所述的授权系统705进行通信。在本实施方式中,授权系统705被提供为卷管理系统702的部件,例如作为局部Java对象。卷管理系统702内的网络规则是这样的,即仅卷管理服务器能够通常直接地访问授权系统705。用户701a和701b在一些实施方式中可以是来自不同组织的用户,并且卷管理系统使用授权系统705来确定哪一个用户能够访问那些卷704。卷管理服务器还可以被云计算环境的应用706访问,所述应用706在本示例中可以是病毒扫描应用。病毒扫描应用可以被布置成扫描由卷管理系统702所管理的卷,例如,用户701b可能布置成以便病毒扫描应用定期地扫描由用户701b所控制的卷。病毒扫描系统706因此可以定期地联系卷管理服务器703以便对用户701b的卷读访问。卷管理服务器703可以查询本地授权系统以确定病毒扫描系统706是否被授权访问所请求的卷。病毒扫描的结果可以被存储为属性。所述结果可以通过病毒扫描系统包括所规定的卷是无毒的认证。病毒扫描系统可以被配置成经由卷管理服务器703使用授权系统705出具这样的认证。这意味着关于卷的病毒属性的认证连同针对所述卷的访问控制一起被存储在授权系统705中。替换地,病毒扫描系统可以被配置成联系授权系统707的独立实例。授权系统707可以与授权系统705大体上相同,除了一般可访问的授权系统707将经历任何实体联系它的认证步骤之外。病毒扫描系统可以使用授权系统707来存储相关认证。因为卷管理服务器703可能要求访问由授权系统707所存储的属性认证,所以其还可以被配置成询问授权系统707。替换地,卷管理服务器703可以仅与其自己的嵌入的授权系统705进行通信,并且该嵌入的授权系统705可以被配置成联系独立授权系统707以确定来自病毒扫描系统706的适当认证是否存在。例如在每个授权系统都包括授权服务器的实施方式中,相关的授权服务器可以彼此通信。用户701c可以直接地联系授权系统707以便添加新的认证或者修正现有认证。然而对其认证的存储的访问由授权系统707控制,并且仅用户701c被授权读的认证将被显示。另外,用户701c添加新的认证或者修正现有认证的能力可能限于例如某些规定的资源。图7还图示了两个另外的应用708和709,例如分别为培训应用和电子邮件服务。培训应用708可以采用授权系统710检查用户701d被授权访问针对特定主体的培训材料,例如以完成规定的在线培训模块,诸如商业行为准则进修课程。同样地,当用户701d接受并且成功地完成了这样的模块时,培训应用可以使用授权系统来出具具有完成所述课程的日期的认证。该认证通常被存储在授权系统710内,但在一个实施方式中,能够被存储在通用存储(未示出)中或者在培训应用的安全存储区域内。电子邮件服务709可以通过查询授权系统710检查用户701d被授权访问邮箱。另夕卜,只要确认了相关用户已经在设定的时间段内完成了 ‘商业行为准则’进修课程的来自培训应用的认证存在,电子邮件服务就可以允许用户709发送电子邮件。上述授权系统的实施方式将简单的模型提供给应用开发者以及提供给授权系统的管理员。所述授权系统利用了编程抽象和交互模型,并且可以通过可能不是安全专家的开发者来使得能实现相对不费劲的采用,从而提高正确的安全的实施方式的可能性。所描述的系统、方法以及技术可以用数字电子电路、计算机硬件、存储在一个或多个计算机硬件部件中并且执行在其上的固件或软件实现,或者用这些元件的组合实现。体现这些技术的装置可以包括适当的输入和输出设备、计算机处理器、以及确实地体现(例如,存储)在机器可读存储设备中以便由可编程处理器执行的指令。体现这些技术的过程可以由可编程处理器执行,所述可编程处理器执行指令的程序以通过对输入数据进行操作并且生成适当的输出来执行所期望的功能。技术可以用包括指令的一个或多个计算机程序实现,所述指令可在包括至少一个可编程处理器的可编程系统上执行,所述至少一个可编程处理器被耦合来从数据存储系统、至少一个输入设备以及至少一个输出设备接收数据和指令,并且被耦合来将数据和指令传送到数据存储系统、至少一个输入设备以及至少一个输出设备。通过示例,适当的处理器包括通用和专用微处理器两者。适合于确实地体现计算机程序指令和数据的存储设备包括所有形式的非易失性存储器,其通过示例包括半导体存储器设备,诸如可擦可编程只读存储器(EPR0M)、电可擦可编程只读存储器(EEPROM)以及闪速存储器设备;诸如内部硬盘和可移动盘之类的磁盘;磁光盘;以及紧致盘只读存储器(CD-ROM)。前述中的任何一个可以由特别设计的ASIC (专用集成电路)来补充,或者被结合在特别设计的ASIC中。应该注意的是,上述的实施方式是说明性的而非限制性的,并且实施方式修改是可能的。例如,如果以不同次序执行所公开的技术的动作和/或如果所公开的系统中的部件被以不同方式组合和/或被其他部件替换或者补充,则可以实现有利的結果。此外,词“包括”不排除除权利要求中列举的那些之外的元件或步骤的存在,并且术语“一”或“ー个”的使用未必排除多个。权利要求中的任何附图标记不应该被解释为限制它们的范围。
权利要求
1.一种云计算环境中的认证系统(705,707,710),其被配置成 允许所述云计算环境的多个用户(710a-d)和应用(702,706,708,709)出具关于其他用户和应用的属性的认证; 控制对所述认证的访问;以及 允许所述云计算环境的多个用户和应用查询所述授权系统,以确定规定的用户或应用是否具有规定的属性。
2.如权利要求1所述的认证系统,其中,关于其他用户的属性的所述认证包括其他用户和应用的授权,使得所述授权系统被配置成 允许所述云计算环境的多个用户和应用出具关于其他用户和应用的授权的认证;以及 允许所述云计算环境的多个用户和应用查询所述授权系统,以确定规定的用户或应用是否具有规定的授权。
3.如权利要求1或权利要求2所述的认证系统,其被配置成存储用户或应用的身份的指示,所述用户或应用出具具有所述认证的认证。
4.如权利要求3所述的认证系统,其被配置成验证出具认证的用户或应用的身份。
5.如前述权利要求中任一项所述的认证系统,其中,所述认证包括对于资源的访问权限认证,所述访问权限认证包括相关资源、经授权的用户和应用以及所准许的动作的指示。
6.如权利要求5所述的认证系统,其中,所述相关资源的指示包括到所述相关资源的路径。
7.如前述权利要求中任一项所述的认证系统,其中,所述认证可以规定用户的组。
8.如权利要求7所述的认证系统,其中,所述认证包括组认证,所述组认证规定了为组的成员的所述用户或应用。
9.如前述权利要求中任一项所述的认证系统,其中,关于属性的所述认证通过为关于属性的每个认证指定路径而被存储。
10.如前述权利要求中任一项所述的认证系统,其中,所述认证不包括数字证书。
11.如前述权利要求中任一项所述的认证系统,其被配置为使得其可以作为局部对象被嵌入在所述云计算环境的应用内或者作为独立服务进行操作。
12.一种用于与包括计算机可读代码的计算系统一起使用的计算机程序产品,所述计算机可读代码当在所述计算系统中执行时,致使所述计算系统提供如前述任何权利要求中所要求保护的云计算环境中的认证系统。
13.—种控制对云计算环境中的资源(704,709)的访问的方法,所述方法包括 接收来自所述云计算环境的实体(701a-d,706, 709)的请求以用规定的资源来执行动作; 验证所述实体的身份; 向授权系统(705,707,710)生成关于所述经标识的实体是否被认证授权来对所述规定的资源执行所述动作的查询; 响应于指示所述实体是否被如此授权的所述查询来接收响应;以及 实施从所述授权系统接收到的决定。
14.如权利要求13所述的方法,其进一步包括出于确定所述实体是否被认证授权的目的,将受信任的认证的出具者的指示提供给所述授权系统。
15.—种在云计算环境中提供安全认证的方法,其包括接收来自实体(701a-d,706,709)的查询以出具认证;验证所述实体的身份;从所述实体接收用于添加认证的指令;以及连同所述实体的身份的指示一起存储所述认证;其中所述实体可以是所述云计算环境的用户(701a-d)或应用(702,706, 708, 709)。
全文摘要
本申请描述了一种云计算环境中的认证系统(705,707,710)。授权系统被配置成允许所述云计算环境的多个用户(701a-d)和应用(702,706,708,709)出具关于其他用户和应用的属性的认证。所述授权系统还被配置成控制对所述认证的访问,并且被配置成允许所述云计算环境的多个用户和应用查询所述授权系统以确定规定的用户或应用是否具有规定的属性。还描述了控制对云计算环境中的资源的访问的方法以及还提供安全认证的方法。
文档编号H04L29/06GK103038778SQ201080068733
公开日2013年4月10日 申请日期2010年6月23日 优先权日2010年6月23日
发明者N.J.爱德华兹, M.J.雷, J.M.阿尔卡拉斯卡莱罗, P.戈尔德萨克 申请人:惠普发展公司,有限责任合伙企业
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1