多租户环境中的安全性上下文管理的方法、系统和介质转让专利

申请号 : CN201580054342.4

文献号 : CN106797383B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : A·萨维里瓦M·尤斯曼D·伊斯耐尔N·吉尼格

申请人 : 微软技术许可有限责任公司

摘要 :

本公开的示例描述了多租户环境中的安全性上下文强制执行。安全性上下文数据可以通过非安全的多租户计算环境被传输。安全性上下文数据由保护层保护,该保护层限制非受信资源运行租户应用并限制未授权租户访问与租户相关联的上下文信息的能力。数据可以在多租户环境中的组件处被接收和被评估。如果该组件是受信组件并且安全性上下文数据指示租户被授权使用指定的上下文来执行应用,则组件可以在与安全性上下文数据相关联的上下文中运行租户应用。

权利要求 :

1.一种计算机实施的方法,包括:

由多租户计算环境的租户组件接收用于由所述多租户计算环境中的租户的租户应用访问安全性上下文数据的请求;

基于所述租户组件是所述多租户计算环境的受信服务的一部分的确定,解封所述安全性上下文数据的第一保护层,其中所述第一保护层防止由所述多租户计算环境的受信服务外部的设备和服务访问所述安全性上下文数据的能力;

基于所述租户应用被授权访问所述安全性上下文数据的确定,解封所述安全性上下文数据的第二保护层,其中所述第二保护层防止所述受信服务的未授权的租户组件在所述安全性上下文数据的所述上下文中执行所述应用;以及基于所述租户应用被授权访问所述安全性上下文数据的所述确定,在由所述安全性上下文数据限定的上下文中执行所述租户应用,其中所述租户应用的所述执行被授权访问所述安全性上下文数据,其中所述租户应用的所述执行进一步包括启动所述租户应用的所供应的服务账户以执行与所述安全性上下文数据相关联的操作,并且其中所供应的所述服务账户与所述租户的账户相比具有受限的权限。

2.根据权利要求1所述的方法,进一步包括:实现所述受信服务以评估所述租户应用的所述安全性上下文数据,以及将所供应的所述服务账户限制为仅具有与在所述安全性上下文数据中限定的所述上下文一致的权限。

3.根据权利要求1所述的方法,进一步包括:将所述安全性上下文数据存储到所述受信服务的受信秘密源,其中所述受信秘密源由所述租户应用不可访问。

4.根据权利要求3所述的方法,其中所述受信秘密源是受信平台模块。

5.根据权利要求1所述的方法,进一步包括:

在所述受信服务和所述租户应用之间创建安全通信信道,其中所述安全通信信道使用所述多租户计算环境的所述租户的服务账户而被启动,以使得所述受信组件能够在运行时将所述安全性上下文数据传递至所述租户应用。

6.根据权利要求1所述的方法,进一步包括:

监测入侵尝试以检测对所述安全性上下文数据的未授权的访问。

7.根据权利要求1所述的方法,其中对所述第二保护层的所述解封进一步包括:将所述租户应用的注册标识与所述租户应用的所存储的注册标识相比较,以确定所述租户应用是否被授权访问所述安全性上下文数据。

8.根据权利要求1所述的方法,其中对所述第二保护层的所述解封进一步包括:使用密钥来解封所述安全性上下文数据。

9.根据权利要求1所述的方法,其中所述安全性上下文数据是以下至少一项:令牌、证书、以及凭证。

10.根据权利要求3所述的方法,其中所述租户组件向所述受信秘密源提供所述租户组件是所述受信服务的受信组件的指示。

11.一种用于多租户环境中的安全性上下文管理的系统,包括:

至少一个处理器;以及

存储器,操作地连接至所述至少一个处理器,其中所述存储器在其上存储计算机可执行指令,所述计算机可执行指令当在所述至少一个处理器上被执行时使所述至少一个处理器:在多租户计算环境的受信组件处接收安全性上下文数据;

确定是否要解封所述安全性上下文数据的第一保护层以用于所述多租户计算环境的租户组件访问所述安全性上下文数据,其中所述第一保护层防止由所述多租户计算环境的受信服务外部的设备和服务访问所述安全性上下文数据的能力;

响应于确定要解封所述第一保护层,确定是否要解封所述安全性上下文数据的第二保护层以使得所述租户组件能够在与所述安全性上下文数据相关联的上下文中执行应用,其中所述第二保护层防止所述受信服务的未授权的租户组件在所述安全性上下文数据的所述上下文中执行所述应用;以及响应于确定要解封所述第二保护层,启动所述租户组件的受限服务账户以在所述安全性上下文数据的所述上下文中执行所述应用,其中所述受限服务账户与租户的账户相比具有受限的权限。

12.根据权利要求11所述的系统,其中所述多租户计算环境是云计算环境。

13.根据权利要求11所述的系统,其中所述系统访问受信平台模块以接收所述安全性上下文数据,并且其中所述受信平台模块向所述系统提供所述安全性上下文数据,尽管安全通信信道在解封所述第一保护层和所述第二保护层之后被启动。

14.根据权利要求11所述的系统,其中关于是否要解封所述第二保护层的确定进一步包括:实现所述受信服务以评估所述租户组件的所述安全性上下文数据。

15.根据权利要求14所述的系统,其中所述受信服务将与安全性上下文数据一起被提供的所述租户组件的注册标识与由所述受信服务存储的所述租户组件的注册标识相比较,以便于确定所述租户组件是否被授权访问所述安全性上下文数据。

16.一种计算机可读介质,其上具有计算机可执行指令,所述计算机可执行指令在由计算机执行时,使得所述计算机执行一组操作,所述一组操作包括:由多租户计算环境的租户组件接收用于由所述多租户计算环境中的租户的租户应用访问安全性上下文数据的请求;

基于所述租户组件是所述多租户计算环境的受信服务的一部分的确定,解封所述安全性上下文数据的第一保护层,其中所述第一保护层防止由所述多租户计算环境的受信服务外部的设备和服务访问所述安全性上下文数据的能力;

基于所述租户应用被授权访问所述安全性上下文数据的确定,解封所述安全性上下文数据的第二保护层,其中所述第二保护层防止所述受信服务的未授权的租户组件在所述安全性上下文数据的所述上下文中执行所述应用;以及基于所述租户应用被授权访问所述安全性上下文数据的所述确定,在由所述安全性上下文数据限定的上下文中执行所述租户应用,其中所述租户应用的所述执行被授权访问所述安全性上下文数据,其中所述租户应用的所述执行进一步包括启动所述租户应用的所供应的服务账户以执行与所述安全性上下文数据相关联的操作,并且其中所供应的所述服务账户与所述租户的账户相比具有受限的权限。

说明书 :

多租户环境中的安全性上下文管理的方法、系统和介质

背景技术

[0001] 在由许多租户共享的计算环境中存在针对保护敏感数据和减轻安全性威胁的挑战。如果合适的安全性控制缺失,可能会导致安全性漏洞。本申请所针对的是有关该通用技术环境。

发明内容

[0002] 本公开的示例描述了多租户环境中的安全性上下文强制执行。安全性上下文数据可以通过非安全的多租户计算环境被传输。安全性上下文数据由保护层保护,该保护层限制非受信资源运行租户应用并限制未授权租户访问与租户相关联的上下文信息的能力。数据可以在多租户环境中的组件处被接收和被评估。如果该组件是受信组件并且安全性上下文数据指示租户被授权使用指定的上下文来执行应用,则组件可以在与安全性上下文数据相关联的上下文中运行租户应用。
[0003] 示例的附加方面、特征和/或优点部分将在下面的说明书中被阐述,并且部分将从说明书中显而易见,或者可以从公开的实践中了解。
[0004] 本发明内容被提供为在以简化的形式介绍概念的选集,这些概念将在具体实施方式中被进一步描述。本发明内容不旨在标识所请求保护主题的关键特征或必要特征,也不旨在用于限制所请求保护主题的范围。

附图说明

[0005] 参考以下附图描述非限制性和非穷举性的示例。
[0006] 图1示出了多租户计算环境的系统的概况。
[0007] 图2是可以由多租户计算环境中的租户执行的方法。
[0008] 图3是可以使用多租户计算环境被执行的方法。
[0009] 图4是说明多租户计算环境上的请求的处理的方法。
[0010] 图5是示出可以利用其来实践本发明的方面的计算设备的示例的框图。
[0011] 图6A和6B是可以利用其来实践本发明的方面的移动计算设备的简化框图。
[0012] 图7是可以利用其来实践本发明的方面的分布式计算系统的简化框图。

具体实施方式

[0013] 共享计算环境被许多不同的租户访问。租户可以对应于单个用户账户或群组用户账户。作为非限制性示例,租户可以与可能正在执行服务或运行应用的组、组织、公司、业务或个人相关。租户可以使用共享计算环境。共享计算环境可以是包括对于多于一个的租户可访问的数据或网络资源的任意计算环境。分布式网络是共享计算环境的示例。分布式网络可以是使用共享资源提供用于通过网络处理的服务的任意网络模型。示例性的共享计算环境可以是基于云的,以跨各种数据结构和处理环境来访问用于运行它们的应用的资源(处理能力和存储)。出于该目的,多租户可以使用共享应用平台。共享应用平台可以是为应用提供服务的系统的组件,服务包括操作系统、执行服务、数据服务、云服务和开发工具以及其他示例。共享应用平台可以是用于为租户调度应用、管理共享资源以及监控计算过程的健康和其他相关任务的一组工具和技术。
[0014] 在由多个租户共享的计算环境中传输的数据容易受到可能是有意或无意的安全性威胁。可以通过在不同的虚拟机上托管租户应用来实施安全性措施以隔离租户。当对大量租户应用这种隔离时可能呈现扩展性问题(例如,共享应用平台的计算资源的低效使用)。在极端情况下,诸如非军事区(DMZ)的解决方案可以被实施。这种安全性措施可能需要专用资源(基本上用多个单租户环境替代多租户环境)的实施,其涉及较高的支持和运营成本,以及扩展性问题。可替代地,如果共享应用平台的超级用户账户充当租户应用和外部数据结构/操作环境之间的中介,则其需要所有的租户应该授权共享应用平台访问它们的数据源。这种方法容易出现开发错误,减少租户对操作的责任并且可能导致对属于其他租户的数据的不可检测的未授权访问。
[0015] 图1示出了多租户计算环境的系统100的概况。系统100是交互以形成集成的整体的相互依赖的组件的组合。系统100的组件可以包括硬件和运行在系统100的组件上的软件,并可以与系统100的其他组件一起被连接到网络。该示例中的多租户计算环境是由多租户共享的分布式网络。多租户分布式网络可以是使用共享资源提供服务以用于通过网络为多租户处理数据的任意联网模型。作为示例,多租户计算环境可以是基于云的环境。系统100为通过多租户计算环境传输的数据实施密封和解封方案。密封方案保护数据使得仅系统100的授权用户或组件能够访问数据。解封方案是防止系统100的未授权用户或组件访问由密封方案密封的数据的过程。将这种安全性方案实施到诸如系统100的系统的安全性框架中可以防止非受信设备访问敏感数据以及防止未授权应用使用租户的账户运行。
[0016] 系统100可以使得一个到多个租户(例如租户A102、租户B104以及租户C106)能够通过利用共享应用平台108来使用用于在不同数据结构或操作系统上运行应用的计算资源,诸如数据资源120和数据资源122。诸如数据资源120或数据资源122的外部数据结构或操作环境是可连接到多租户计算环境的一个组件或组件的集合。数据资源可以在共享应用平台108的外部或被用于计算处理的组件。在其他示例中,数据资源可以是计算机资源、应用、数据库、计算机程序或者可以由运行在多租户计算环境中的应用远程访问的任意其他设备或信息。共享应用平台108是能够访问多租户计算环境的设施和数据资源的系统。共享应用平台108实施安全性框架以将安全性上下文强加于租户应用以限制对数据结构、外部存储、操作环境等中的数据的未授权访问。共享应用平台108可以包括硬件和/或被实施在硬件组件上的软件组件。软件组件可以是计算机实施的过程或程序。多租户计算环境的硬件组件具有用于实现软件过程或程序的装置。请参见图5-7以获得附加说明。在一个示例中,诸如租户C106的租户当经由共享应用平台108启动它的应用时可能寻求对数据资源120的访问。诸如租户A102和租户B104的其他租户可能也寻求对数据资源102和122的访问以用于数据处理。
[0017] 共享应用平台可以包括管理对密封数据的访问的数个共享设备。作为示例,共享应用平台108可以包括用于访问秘密和在特定安全性上下文中启动租户应用的受信服务110以及受信服务110的受信秘密存储118。然而,本领域技术任意将认识到,包括共享应用平台使用的组件数目的共享应用平台108的规模可以变化。受信服务108用于管理对来自共享应用平台108的受信秘密存储118(例如,受信源)的租户敏感数据或秘密数据的访问,在多租户计算环境中使用具有比受信机器账户或共享计算平台108的其他共享组件更低的权限的特定安全性上下文内运行租户应用,并且在运行时供应安全性上下文数据的必要片段以运行租户的应用。受信秘密存储118是确保安全性上下文数据的片段利用安全性层被密封的、仅受信设备110的受信组件能够解封的秘密受信秘密源。在一个示例中,受信秘密存储118可以是基于应用的。作为示例,受信秘密存储118可以是通过将敏感信息绑定到包括被使用的软件和硬件的平台配置信息来保护敏感信息的受信平台模块(TPM)。作为示例,受信秘密存储118可以被实施在诸如膝上型计算机、移动电话、平板电脑等移动设备的TPM芯片上。
[0018] 来自租户A102、租户B104和租户C106的安全性上下文数据通过共享应用平台108传递,该安全性上下文数据被应用到由租户启动的访问诸如数据资源120或数据资源122的外部数据结构或操作环境的应用。共享应用平台108可以被托管在地理上的分布式数据中心并且由组织内的许多不同的操作组可控制。作为示例,操作组可以是被分配以执行特定任务的用户的分组。因此,数据的安全性和租户被授予以在特定安全性上下文下执行应用的验证是至关重要的。
[0019] 不同组件可以被实施为共享应用平台108的部分。如上所述,组件可以是适用于共享应用平台108的任意硬件或软件资源。可以被实施的一个这种组件是可用于共享应用平台108的一个或多个硬件设备的基于软件的安全性框架。安全性框架提供用于在允许多租户计算环境保持与诸如云计算环境的示例多租户分布式网络相关联的开放时强制执行应用级别安全性上下文的健壮工具。安全性框架可以被实施在共享应用平台108上,其包括受信服务110、受信秘密存储118和由受信服务实施用于保证被传输的安全性上下文数据的安全性的协议。该协议允许租户将其安全性上下文的片段绑定到该租户的应用并限制其他租户滥用特定于租户的信息的能力。共享应用平台108实施该协议并在租户应用被启动时检查以对租户授权。受信服务110还建立与租户的应用的安全连接以用于在必要时向租户应用传递安全性上下文数据。总之这允许在多租户计算环境内的租户应用和在多租户计算环境外的租户数据的隔离。
[0020] 为了实现这一点,实施安全性框架的共享应用平台108可以执行以下操作:
[0021] 1.在租户提供的账户下的应用的模拟。
[0022] 2.建立受信设备110和租户应用之间的安全连接。
[0023] 3.用以使与租户相关联的安全性上下文数据不被其他租户知道的密封方法;
[0024] 4.限制对与租户相关联的未密封敏感数据的访问,其中仅在高权限账户下运行的共享应用平台108代码的受信组件才能解封该敏感数据。
[0025] 由于示例性共享应用平台108具有促进与有价值的未来数据层的集成的多层可扩展性模型,因此示例性共享应用平台108可以被定制以与任意外部数据结构一起工作。
[0026] 多租户计算环境的系统100可以提供数据保护服务,以防止来自非受信设备、程序以及用户对敏感数据的未授权访问。由计算环境提供的数据保护服务可以是基于软件的并对实际存储设备不可知的。在示例性计算环境中,租户可以具有密封敏感数据的能力,但是仅共享应用平台108的受信设备能够解封租户的敏感数据。示例性共享应用平台108可以通过添加用于将租户敏感数据绑定到它们的授权用户的协议来提供除了计算环境的安全性之外的附加安全性。协议防止其他租户为了在计算环境中运行它们的应用而对租户的安全性上下文的未授权使用。安全性框架可以运行在示例性共享应用平台108的一个或多个组件或设备上。
[0027] 在系统100中,多个租户可以与共享应用平台108接口。如图1所示,租户A102、租户B104和租户C106可以与受信秘密存储118接口以密封安全性上下文数据的部分。安全性上下文数据的部分或片段可以是用于运行或执行服务或应用的客户端所特定的数据。在一个示例中,安全性上下文的多个片段或部分可以与租户相关联。此外,正由租户运行的服务或应用可以与安全性上下文数据的多个片段或部分相关联。受信秘密存储118可以是由计算环境提供的数据保护服务,其是基于软件的并对实际存储设备不可知的。在示例计算环境中,租户可以具有密封敏感数据的能力,但是仅共享应用平台108的受信设备能够解封租户的敏感数据。例如,安全性上下文数据的部分可以被加密,使得仅共享应用平台108的受信组件能够访问安全性上下文数据的部分。安全性上下文可以由以下表示:用于运行被授权允许访问某些数据存储的应用的服务账户、数据库连接字符串(例如,使用SQL、MySQL等)、证书、或令牌、或租户凭证等。安全性上下文数据使用由共享应用平台108可用的协议被提交以验证租户具有经由共享应用平台108在该账户下执行某过程的访问权。如由图1中的通信101所示,诸如租户C106的租户可以将安全性上下文数据传输到诸如受信秘密存储118的受信源。
[0028] 在一个示例中,运行在共享应用平台108的受信服务110可以包括数个组件。受信服务110的组件可以是硬件和/或运行在硬件组件或设备上的软件。作为示例,受信服务110可以包括用于管理租户应用的组件。一旦租户部署应用和安全性上下文数据,共享应用平台108接管对应用请求的管理并能够代表租户运行租户应用。作为示例,受信服务110可以包括组件或内部资源112(或,在备选示例中的内部资源),其可以执行管理、处理和存储等功能。在一个示例中,受信服务110可以包括组件或资源,诸如用于分配租户应用请求的处理和处理用于评估和处理租户应用请求的资源的管理资源。在一个示例中,计算资源(例如,内部资源112)可以被视为非受信的,因为非受信应用代码可能正在上述资源上运行。租户可以将安全性上下文数据部署到受信设备110的组件,例如,限制安全性上下文数据向受信服务110的受信资源的提供的受信秘密存储118。在其中由非受信资源(例如,受信服务110外部的资源)做出对安全性上下文数据的请求时,该资源将被评估以确定其是否受信以运行租户应用。如果资源被确定为非受信,则受信服务110可以阻止非受信资源接收其未被授权接收的安全性上下文数据。
[0029] 如图1中的通信线路116所示,当共享应用平台108接收到用于运行租户应用114的分配时,它可以要求取回与发起该请求的租户(例如,租户C106)相关联的安全性上下文数据的片段。针对安全性上下文数据的受信服务请求可以由受信服务110提交以用于访问保存在诸如受信秘密存储118的受信秘密存储上的秘密。受信秘密存储118可以是能够保护诸如租户安全性上下文数据的敏感数据的任意软件或硬件实施。受信秘密存储可以评估安全性上下文数据中被请求的片段以确定组件或资源是否被授权接收安全性上下文数据的该片段。在一个示例中,受信服务110的内部资源112可以被评估。例如图1中通信线路116所示,如果受信服务110确定内部资源112被授权以接收安全性上下文数据的片段,则受信秘密存储118将安全性上下文数据传输到受信服务110以用于评估。受信秘密存储118可以以诸如加密数据的安全形式来传输安全性上下文数据,使得即使安全性漏洞发生并且非受信设备或服务接收到安全性上下文数据的该片段,安全性上下文数据也将不会被破解,因为非受信设备无法访问安全形式的安全性上下文数据。
[0030] 此外,当受信服务接收到安全性上下文数据的至少片段/部分时,其评估安全性上下文数据以确定租户C106是否被授权以使用安全性上下文数据来运行其应用。如果该检查成功,则受信服务110允许内部资源112使用安全性上下文数据以在低权限非受信账户下运行租户的应用而不访问秘密存储库接口。在没有被实施为在特定创建的安全性上下文中运行租户的应用(例如,在诸如租户C106的租户的服务账户下)的安全框架的情况下,租户可能能够提升权限并获得对多租户计算环境的资源的未授权访问,例如其中租户C106可能能够访问对共享应用平台108整体可用的任意资源、或属于租户B104的安全性上下文数据的片段/部分。如上所述,安全性上下文数据的多个片段或部分可以与诸如租户B104的租户相关联。针对客户端的应用执行可能需要用于执行过程的安全性上下文数据的一个或多个片段或部分。安全性上下文数据的片段/部分可以根据需要在运行时从受信服务110被传递到租户C106的应用。出于该目的,受信服务110发起其自身与租户应用之间的安全连接,如由说明受信服务110和诸如数据资源120的外部资源的连接的通信线路119所示。作为示例,租户B104的应用和受信服务之间的安全连接对于租户C106的应用不可访问,并且反之亦然。
[0031] 图2是可以由多租户计算环境的租户执行的方法200。作为示例,租户(如上所述)可以拥有或使用计算环境中的一个或多个组件(例如,应用/服务/硬件等)。方法200可以是计算机实施的方法,其中操作或过程在具有处理器的租户操作的设备上被执行。处理设备可以保护但不限于计算机、膝上型计算机、以及诸如智能电话或平板电脑的移动设备等。
[0032] 方法200开始于决定操作202,其中与过程的执行相关联的安全性上下文数据的片段从租户被传输到诸如图1中的共享应用平台108的共享应用平台。安全性上下文数据的片段可以是可以被共享应用平台108使用以为租户寻求执行的应用提供安全性上下文的任意数据。安全性上下文数据可以由以下表示:用于运行被授权允许访问某些数据存储的应用的服务账户、数据库连接字符串(例如,使用SQL、MySQL等)、证书、或令牌等。安全性上下文数据可以通过非安全多租户计算网络被传输。在一个示例中,租户可以针对其自身设置对于特定数据的权限或访问权。在另一示例中,租户可以针对另一租户设置/限制访问权。作为示例,租户可以保护(例如,加密)可用于执行租户的应用的安全性上下文数据。租户可以授权另一租户使用安全数据以用于运行应用或服务。然而,虽然另一租户可能能够使用安全数据以运行或访问应用或服务,但是实际的安全性上下文数据在其被保护时对于这样的用户是不透明的。安全性上下文数据可以被保持在安全受信存储中,其可以是共享应用平台108的组件并且可以是在多租户计算机环境的设备上实施的硬件或软件。作为示例,受信源可以是诸如图1中的受信秘密存储118的受信秘密源。
[0033] 方法200进行到操作204,其中请求被生成。该请求可以是与在诸如图1中的数据资源120的资源上执行过程相关的应用请求。作为示例,所生成的请求可以包括可执行文件或脚本。可执行文件或可执行任务可以与要在多租户计算网络外部的数据上执行的应用相关。
[0034] 一旦请求被生成,则流程进行到决定操作206,其中做出对于租户的注册标识(ID)是否被提供以密封该请求的决定。在其中租户注册ID没有被提供的情况下,方法进入分支“否”并且租户被要求提供其租户注册ID(操作208)。一旦租户ID被提供或生成,则安全性框架的协议可以与租户设备或服务通信以利用第一保护层密封或包裹请求(操作210)。在示例性共享应用平台中,第一保护层可以限制解封请求的能力。在操作210,安全性上下文数据被包裹在安全层中,该安全层限制非授权租户使用安全性上下文数据的能力并且限制不安全多租户计算网络的其他用户访问它的能力。换句话说,请求被密封以防止多租户分布式网络的未授权设备或服务访问与该请求相关联的数据。在操作210中执行的密封可以限制解封与该请求相关联的数据的能力,使得仅共享应用平台108的授权设备或服务能够解封在操作210中实施的保护层。在示例性共享应用平台中,授权组件可以是由多租户计算环境的受信组件(例如,受信服务110)认证的组件。此外,操作210中的保护层可以被实施在公钥基础设施(PKI)的顶部上。在一个示例中,操作210中的第一安全层可以被实施在用于基于云的联网的PKI的顶部上。
[0035] 流程200接着进行到操作212,其中利用第二保护层密封该请求。在示例性共享应用平台中,第二安全层可以防止未指定的租户访问数据或执行与租户相关联的应用处理。在一个示例中,租户注册ID可以被用于利用第二保护层密封该应用请求。当多租户计算环境中的租户请求应用访问时,安全性上下文数据可以被评估以授权租户寻求应用访问。如果租户没有被授权,则对该请求的租户所特定的数据的访问被拒绝。如上所述,租户可以指定用于访问与该请求相关联的数据的访问权或权限。流程200可以进行到决定操作214,其中租户确认该请求是否已经利用操作214中实施的第二保护层被密封。如果没有,则流程进入分支“否”并返回操作212。
[0036] 一旦安全性上下文数据已经利用第一保护层和第二保护层被密封,则流程可以进行到操作216,其中被密封的请求通过多租户计算环境被传输。
[0037] 图3是可以使用多租户计算环境被执行的方法。作为示例,方法300可以说明诸如图1中的共享应用平台108的共享应用平台的组件之间的交互。方法300可以开始于操作302,其中多租户计算环境的组件(诸如服务或设备)接收应用请求以用于处理。如图2所描述的,该请求可以从多租户计算环境的租户(例如,图1中的租户C106)被生成。在示例中,租户可以寻求运行访问多租户计算环境中的资源的应用,资源诸如外部数据结构或数据资源。
[0038] 一旦该请求被接收,则多租户计算环境的资源或组件可以提交请求(操作304)以从诸如图1中所描述的受信秘密存储118的受信秘密源中取回与该请求相关的安全性上下文数据。受信秘密源可以是共享应用平台的组件,该组件确保安全性上下文数据的片段使用安全层被密封并且仅受信服务才能对其解封。流程进行到决定306,其中受信秘密源可以确定做出针对安全性上下文数据的请求的服务或设备是否被授权接收与租户相关联的安全性上下文数据。也就是说,受信秘密源将不会展现安全性上下文数据,除非服务或设备被授权接收安全性上下文数据。服务或设备可以提供其受信的指示,并且多租户计算环境的受信秘密源可以使用该指示以认证服务或设备作为受信服务或受信设备。作为示例,资源或组件可以将该请求的数据(例如,元数据)中的标识提供到受信秘密源。受信秘密源可以使用这样的数据以确定是否要授权设备或服务用于安全性上下文数据的接收。
[0039] 如果受信秘密源确定服务非受信,则流程将进入分支“否”,并且受信秘密源将拒绝针对安全性上下文数据的请求(例如,步骤308)。如果请求在操作308处被拒绝,则流程进行到操作310,其中共享应用平台可以日志记录用以访问安全性上下文数据的未授权尝试。多租户计算平台可以使用计数器来跟踪入侵尝试。
[0040] 当服务或设备被认证时,受信秘密源可以传输安全性上下文数据并且受信服务可以被实施以强制执行安全性上下文数据。受信设备可以接收安全性上下文数据(操作312)。流程进行到操作314,其中受信服务可以解封安全性上下文数据。作为示例,受信服务可以与用于共享应用平台108的安全性框架的安全性组件接口,诸如用以包裹/解包应用安全性上下文数据以便于解封安全性上下文数据用于评估的协议。作为解封的示例,如果服务(或设备)受信,则协议可以使用仅由共享应用平台108的安全性框架提供的私钥来解密经加密的安全性上下文数据。如关于图2所讨论的,租户可以加密要使用用于包裹应用安全性上下文数据的协议通过多租户应用环境被传输的、与请求相关联的数据。解封数据的能力被限制到仅共享应用平台108受信组件。
[0041] 一旦安全性上下文数据被解封(步骤314),则受信服务可以基于与应用请求相关联的处理来评估安全性上下文数据(操作316)。如上所述,安全性上下文数据的多个片段可以与租户相关联。在操作316,受信服务评估发起请求的租户是否具有访问权以使用相关联的安全性上下文数据来执行其应用。作为示例,受信服务可以将租户的标识符或(租户注册ID)的数据与从受信秘密源接收到的安全性上下文数据相比较。也就是说,操作316可以评估请求和安全性上下文数据。如果安全性上下文数据验证通过则租户被授权。在决定操作318,受信服务基于对请求和安全性上下文数据的评估(操作316)来确定租户是否被授权以执行请求的应用。
[0042] 如果租户没有被授权以在所请求的上下文中执行应用,则流程分支到操作320,其中请求被拒绝。当请求由于租户不具有访问权而被拒绝时,该拒绝被日志记录为入侵尝试(操作322)。共享应用平台的安全性框架可以使用计数器以追踪入侵尝试。作为示例,计数器可以被用于追踪请求访问安全性上下文数据的组件所特定的数据,以及基于被用于对用以执行过程的租户的认证以及授权的安全性上下文数据的片段或部分而对用以执行过程的租户的授权所特定的数据。
[0043] 如果租户被授权以执行请求的应用,则流程进行到操作324,其中受信服务在租户的服务账户下处理或运行应用。在租户自己的服务账户下运行处理可以帮助确保多个租户能够让他们的过程安全地运行在共享应用平台的同一组件上。租户服务账户相对被托管在多租户计算环境上的共享数据平台的受信机器账户可以具有受限的权限。即,新过程可以被创建以执行与租户请求相关联的处理,并且该新过程在仅被授予权限以执行该处理的租户服务账户上运行。这可以最小化多租户计算环境中租户的未授权访问的风险。
[0044] 流程接着可以进行到操作326,其中请求处理可以被报告回到发起请求的租户。
[0045] 在实施安全性框架的示例性共享应用平台中,以下是描述由安全性框架提供的集成的安全性的表。
[0046]
[0047]
[0048] 图4是说明多租户计算环境上的请求的处理的方法400。方法400在其中租户被授权以在诸如图1中的共享应用平台108的共享应用平台上执行应用的点处被发起。方法400开始于操作402,其中安全连接通道(例如,安全通信管道)被创建在多租户计算环境的两个组件之间。安全连接通道是创建于共享应用平台的组件和租户应用之间的通信路径。组件可以是适用于多租户计算环境的任意受信硬件或软件资源。
[0049] 一旦安全连接通道被创建(操作402),则流程进行到操作404,其中过程在发起处理请求的租户的服务账户下被运行在共享应用平台的组件上。使用租户服务账户运行该过程并通过安全连接与它交互以用于在运行时供应安全性上下文数据的片段提供了租户可以安全地使其应用运行在也可能正在运行其他租户应用的共享应用平台上。这可以最小化租户的数据将被泄露给其他租户的未授权访问的风险。在一个示例中,用于共享应用平台的执行上下文的强制执行和供应的受信服务可以在租户服务账户下模拟租户工作,尽管用于执行上下文的强制执行和供应的受信服务在机器账户下执行。在一个示例中,受信组件的机器账户可以是高权限账户。即,租户服务账户具有最低可能权限并被授权以执行仅在强制执行的安全性上下文下被允许的处理。不管处理是否完成,流程进行到操作406,其中处理的报告被生成。在一个示例中,报告可以被提供给受信服务的管理员或监视者。在另一示例中,报告可以被提供给发起应用请求的租户。
[0050] 一旦用于处理的请求已经完成,流程结束并且安全连接被终止(操作410)。在示例性共享应用平台,如果租户想用执行另一应用,一旦租户被共享应用平台授权以执行另一应用则新的安全连接通道将需要被建立。它由受信服务发起以防止安全性漏洞或租户服务账户的滥用。
[0051] 图5-7和相关联的描述提供了其中本发明的示例可以被实践的各种操作环境的讨论。然而,关于图5-7所示出和讨论的设备和系统是用于示例和说明的目的,并且不是可以用于实践本文所描述的本发明的示例的大量的示例计算设备配置的限制。
[0052] 图5是示出本公开的示例可以利用其被实践的计算设备502的物理组件、租户的组件、共享应用平台108或诸如本文所描述的数据资源120和122的数据资源的框图。下面描述的计算设备组件可以适合于上述的计算设备。在基本配置中,计算设备502可以包括至少一个处理单元504以及系统存储器506。根据计算设备的配置和类型,系统存储器506可以包括但不限于,易失性存储(例如,随机存取存储器)、非易失性存储(例如,只读存储器)、闪速存储器,或这样的存储器的任意组合。系统存储器506可以包括操作系统507以及适合于运行诸如用于数据复制528、IO管理器524和其他实用程序526的软件应用520的一个或多个程序模块508。例如,操作系统507可以适合于控制计算设备502的操作。此外,本发明的示例可以与图形库、其他操作系统或其他应用程序结合而被实践,并且不限于任意特定应用或系统。该基本配置在图5中由虚线522内的那些组件所示出。计算设备502可以具备附加的特征或功能。例如,计算设备502也可以包括诸如磁盘、光盘或磁带的附加数据存储设备(可拆卸的和/或不可拆卸的)。这样的附加存储在图5中由可拆卸存储设备509和不可拆卸存储设备
510示出。
[0053] 如上所述,数个程序模块和数据文件可以被存储在系统存储器506中。当在处理单元504上执行时,程序模块508(例如,应用528、输入/输出(I/O)管理器524以及其他实用程序526)可以执行过程,过程包括但不限于例如图2-4中所示的操作流程200-400的阶段中的一个或多个阶段。根据本发明的示例可以使用的其他程序模块可以包括电子邮件以及联系人应用、文字处理应用、电子表格应用、数据库应用、幻灯片演示应用、绘图或计算机辅助应用程序等。
[0054] 此外,本发明的示例可以被实践在包括分立电子元件的电气电路、包含逻辑门的封装或集成的电子芯片、使用微处理器的电路、或包含电子元件或微处理器的单个芯片上。例如,本发明的示例可以经由片上系统(SOC)被实践,其中图5中所示的组件中的每个或许多组件可以被集成到单个集成芯片上。这种SOC设备可以包括一个或多个处理单元、图形单元、通信单元、系统虚拟化单元以及各种应用功能,它们的全部被集成(或“被烧写”)到芯片基板上作为单个集成电路。当经由SOC操作时,本文所描述的功能可以经由与计算设备502的其他组件一起被集成到单个集成电路(芯片)上的专用逻辑来被操作。本公开的示例还可以使用能够执行诸如与(AND)、或(OR)以及非(NOT)的逻辑操作的其他技术来被实践,这样的技术包括但不限于机械、光学、流体以及量子技术。此外,本发明的示例可以被实践在通用计算机内或任意其他电路或系统中。
[0055] 计算设备502也可以具有一个或多个输入设备512,诸如键盘、鼠标、笔、声音输入设备、触摸输入设备等。还可以包括诸如显示器、扬声器、打印机等的输出设备。前述设备是示例,并且其他设备可以被使用。计算设备504可以包括允许与其他计算设备518通信的一个或多个通信连接516。合适的通信连接516的示例包括但不限于,射频发射器、接收器、和/或收发器电路、通用串行总线(USB)、并行和/或串行端口。
[0056] 本文所用的术语“计算机可读介质”可以包括计算机存储介质。计算机存储介质可以包括以用于信息的存储的任意方法或技术来被实施的易失性的和非易失性的、可拆卸和不可拆卸的介质,信息诸如计算机可读指令、数据结构或程序模块。系统存储器506、可拆卸存储设备509以及不可拆卸存储设备510都是计算机存储介质的示例(例如存储器存储)。计算机存储介质可以包括RAM、ROM、电可擦除只读存储器(EEPROM)、闪存或其它存储器技术、CD-ROM、数字多功能盘(DVD)或其他光存储、磁带盒、磁带、磁盘存储或其它磁存储设备、或可以被用于存储信息并能被计算设备502访问的任意其他制品。计算机存储介质不包括载波或其他经传播或调制的数据信号。
[0057] 通信介质可以由计算机可读指令、数据结构、程序模块或诸如载波或其他传输机制的经调制的数据信号中的其他数据体现,并且包括任意信息传递介质。术语“经调制的数据信号”可以描述使一个或多个特性将信息编码在信号中的方式被设置或改变的信号。通过示例而非限制的方式,通信介质可以包括诸如有线网络或直接有线连接的有线介质,以及诸如声学、射频(RF)、红外和其他无线介质的无线介质。
[0058] 图6A和6B示出了本发明的示例可以利用其之被实践的移动计算设备,例如,移动电话、智能电话、平板个人计算机、膝上型计算机等。例如,移动计算设备600可以被用于实施租户、共享应用平台108的组件或数据资源。参考图6A,用于实施示例的移动计算设备600的一个示例被示出。在基本配置中,移动计算设备600是具有输入元件和输出元件两者的手持计算机。移动计算设备600通常包括显示器605和允许用户输入信息到移动计算设备600中的一个或多个输入按钮610。移动计算设备600的显示器605也可以用作输入设备(例如,触摸屏显示器)。如果被包括,则一个可选侧面输入元件615允许其他用户输入。侧面输入元件615可以是旋转开关、按钮、或任意其他类型的手动输入元件。在备选示例中,移动计算设备600可以包括更多或更少的输入元件。例如,在一些示例中,显示器605可以不是触摸屏。在又一备选示例中,移动计算设备600是诸如蜂窝电话的便携式电话系统。移动计算设备
600还可以包括可选键盘635。可选键盘635可以是物理键盘或触摸屏显示器上生成的“软”键盘。在各种示例中,输出元件包括用于显示图形用户界面(GUI)的显示器605、视觉指示器
620(例如,发光二极管)、和/或音频换能器625(例如,扬声器)。在一些示例中,移动计算设备600包括用于向用户提供触觉反馈的震动换能器。在又一示例中,移动计算设备600包括用于发送信号到外部设备或从外部设备接收信号的输入和/或输出端口,诸如音频输入(例如,麦克风插孔)、音频输出(例如,耳机插孔)和视频输出(例如,HDMI端口)。
[0059] 图6B是示出移动计算设备的一个示例的架构的框图。即,移动计算设备600可以包括系统(即,架构)602来实现一些示例。在一个示例中,系统602被实施为能够运行一个或多个应用(例如浏览器、电子邮件、日历、联系人管理器、消息客户端、游戏、以及媒体客户端/播放器)的“智能电话”。在一些示例中,系统602被集成为计算设备,诸如集成的个人数字助理(PDA)和无线电话。
[0060] 一个或多个应用程序666可以被加载到存储器662并且在操作系统664上运行或与之相关联地运行。应用程序的示例包括电话拨号器程序、电子邮件程序、个人信息管理(PIM)程序、文字处理程序、电子表格程序、互联网浏览器程序、消息程序等。系统602还包括存储器662内的非易失性存储区域668。非易失性存储区域668可以被用于存储系统602断电时不应被丢失的持久性信息。应用程序666可以使用并在非易失性存储区域668中存储信息,诸如电子邮件应用使用的电子邮件或其他消息等。同步应用(未示出)也驻留在系统602上并且被编程以与驻留在主机计算机上的对应同步应用交互以保持被存储在非易失性存储区域668中的信息与被存储在主机计算机处的对应信息同步。应当理解,包括用于数据复制529、IO管理器524以及本文描述的其他实用程序526的其他应用可以被加载到存储器662中并且运行在移动计算设备600上。
[0061] 系统602具有功率供应器670,其可以被实施为一个或多个电池。功率供应器670可以进一步包括诸如AC适配器或补充电池或对电池重新充电的加电对接底座的外部功率源。
[0062] 系统602可以包括执行促进系统602和一个或多个外围设备之间的连接性的功能的外围设备端口678。去往和来自外围设备端口672的传输在操作系统664的控制下被引导。换句话说,由外围设备端口678接收到的通信可以经由操作系统被传播给应用程序666,并且反之亦然。
[0063] 系统602也可以包括执行发射和接收射频通信的功能的无线电装置672。无线电装置672经由通信载体或服务提供商来促进系统602和“外部世界”之间的无线连接性。去往和来自无线电装置672的传输在操作系统672的控制下被引导。换句话说,由无线电装置672接收到的通信可以经由操作系统被传播给应用程序666,并且反之亦然。
[0064] 视觉指示器620可以用于提供视觉通知,和/或音频接口674可以用于经由音频换能器625产生可听见的通知。在所示的示例中,视觉指示器620是发光二极管(LED)并且音频换能器625是扬声器。这些设备可以被直接耦合到功率供应器670,使得当被激活时即使处理器和其他组件可能关闭以用于节省电池电量,它们在由通知机制指示的时间段内保持开启。LED可以被编程以无限地保持开启,直到用户采取行动以指示设备的上电状态。音频接口674用于向用户提供可听见的信号以及从用户接收可听见的信号。例如,除了被耦合到音频换能器625之外,音频接口672还可以被耦合到麦克风以接收音频输入,诸如以促进电话交谈。根据本发明的示例,麦克风也可以作为音频传感器以促进通知的控制,如将在以下被详细描述的。系统602可以进一步包括视频接口676,其使得设备上的相机630的操作能够记录静止图片、视频流等。
[0065] 实施系统602的移动计算设备600可以具有附加的特征或功能。例如,移动计算设备600还可以包括诸如磁盘、光盘或磁带的附加数据存储设备(可拆卸的和/或不可拆卸的)。这样的附加存储在图6B中由非易失性存储区域668所示出。
[0066] 由移动计算设备生成或捕获的并且经由系统602存储的数据/信息可以如上所描述的被本地地存储在移动计算设备600上,或者数据可以被存储在任意数量的存储介质上,该任意数量的存储介质可以由设备经由无线电装置672或经由移动计算设备600和与移动计算设备600相关联的分离的计算设备(例如,诸如互联网的分布式计算网络中的服务器计算机)之间的有线连接被访问。应当理解,这样的数据/信息可以经由移动计算设备600经由无线电装置672或经由分布式计算网络被访问。类似地,这样的数据/信息可以根据包括电子邮件和协作数据/信息共享系统的公知的数据/信息传递和存储手段而在计算设备之间被容易地传输以用于存储和使用。
[0067] 图7示出用于提供应用的系统的架构的示例,如上所述,该应用可靠地访问存储系统上的目标数据以及处理到一个或多个客户端设备的通信故障。被访问的、与之交互的、或与应用528、IO管理器524、其他实用程序526和存储(例如,存储104和存储110)相关联被编辑的目标数据可以被存储在不同通信信道或其他存储类型中。例如,各种文档可以使用目录服务722、门户网站724、邮箱服务726、即时消息存储库728或社交联网站点730被存储。应用528、IO管理器524、其他实用程序526以及存储系统可以使用这些类型的系统中的任意系统等来实现如上所述的数据利用。服务器720可以提供存储系统以供通过网络715而操作在通用计算设备502和移动设备600上的客户端使用。通过示例的方式,网络715可以包括互联网或任意其他类型的局域网或广域网,并且客户端节点可以被实施为体现在个人计算机中的计算设备502、平板计算设备,和/或由移动计算设备600(例如,智能电话)实施。客户端计算设备502或600的这些示例中的任意示例可以从存储库716获得内容。
[0068] 根据一个示例性计算机实现的过程,安全性上下文基于由租户提供的要通过多租户计算网络被传输的安全性上下文数据被生成。在一个示例中,安全性上下文数据可以用于指定用于对与安全性上下文数据相关联的数据的访问的权利。所发送的安全性上下文数据包括以下至少一项:令牌、证书、数据库连接字符串、或租户服务账户凭证。安全性上下文数据利用保护层被包裹,该保护层限制由多租户计算环境中的非受信设备和服务访问安全性上下文数据的能力。此外,安全性上下文数据利用防止未授权租户使用安全性上下文的保护层被包裹。用于处理的安全性上下文数据然后被传输到多租户计算环境的共享应用平台。在一个示例中,安全性上下文数据被发送到多租户计算环境的受信秘密资源。
[0069] 在示例计算机实施的方法中,数据在多租户计算环境的组件处被接收。与租户应用相关联的安全性上下文数据可以被存储到多租户计算环境的受信秘密源。作为示例,受信秘密源可以是受信平台模块。如果组件被授权以接收安全性上下文数据,则组件可以接收与租户应用相关联的安全性上下文数据。组件可以向受信秘密源提供多租户计算环境的组件是被授权以接收安全性上下文数据的受信组件的指示。安全性上下文数据是令牌、证书或凭证中的至少一项。组件评估安全性上下文数据以授权由租户应用对安全性上下文数据的使用以用于执行。组件可以实施受信服务以评估租户的安全性上下文数据。在评估中,提供的租户的注册标识可以与租户存储的注册标识相比较以确定租户是否被授权以使用安全性上下文以用于运行租户应用。组件可以使用受信组件上存在的私钥来解封安全性上下文数据。如果租户应用基于安全性上下文数据的评估而被授权,则作为受信组件的组件可以在与安全性上下文数据相关联的上下文中运行租户应用。作为示例,运行可以进一步包括发起受信组件以在为租户供应的服务账户下运行租户应用,该服务账户仅具有用于在与安全性上下文数据相关联的上下文中运行应用的权限。为了运行租户应用,安全通信信道可以在受信组件和租户应用之间被创建。入侵尝试可以被监测以检测对安全性上下文数据的未授权访问。
[0070] 在示例性系统中,在多租户计算环境中操作的设备可以包括存储器和至少一个处理器。设备的处理器可以被配置为执行过程。过程可以包括在多租户计算环境的受信组件处接收安全性上下文数据。作为示例,多租户计算环境可以是云计算环境。设备可以访问受信平台模块以接收安全性上下文数据,并且仅在设备是受信组件的情况下受信平台模块可以向该设备提供安全性上下文数据。设备基于安全性上下文数据的评估来确定租户是否被授权以在安全性上下文下执行应用。安全性上下文数据的评估可以包括实施受信服务以评估租户的安全性上下文数据。作为示例,受信服务将与安全性上下文数据一起被提供的租户的注册标识与由受信服务存储的租户的注册id相比较,以确定租户是否被授权以使用安全性上下文来运行租户的应用。如果租户被授权,则受信组件使用租户的服务账户以访问多租户计算环境的数据资源来运行应用。作为示例,租户的服务账户被限制为仅执行与安全性上下文数据相关联的过程。
[0071] 已经贯穿本说明书而对“一个示例”或“示例”做出的引用意指特定描述的特征、结构或特性被包括在至少一个示例中。因此,这样的短语的使用可以指代多于仅一个示例。此外,所描述的特征、结构或特性可以在一个或多个示例中以任意合适的方式被组合。
[0072] 然而,本领域技术人员可以意识到,这些示例可以在没有具体细节中的一个或多个细节的情况下或者使用其他方法、资源或材料等被实践。在其他情况下,公知的结构、资源或操作尚未被详细地示出或描述以仅观察示例的模糊方面。
[0073] 尽管示例和应用已经被示出和描述,应当认识到示例不限于以上描述的精确配置和资源。可以在不脱离所请求保护的示例的范围的情况下对本文所公开的方法和系统的布置、操作和细节做出对本领域技术人员而言显而易见的各种修改、改变和变化。