CN114641767A - 在经管理的多租户服务中管理用户身份 - Google Patents

在经管理的多租户服务中管理用户身份 Download PDF

Info

Publication number
CN114641767A
CN114641767A CN202080038414.7A CN202080038414A CN114641767A CN 114641767 A CN114641767 A CN 114641767A CN 202080038414 A CN202080038414 A CN 202080038414A CN 114641767 A CN114641767 A CN 114641767A
Authority
CN
China
Prior art keywords
data processing
cloud
user
account
clusters
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202080038414.7A
Other languages
English (en)
Inventor
J·罗蒂恩吉斯
V·钱纳帕坦
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Twitter Inc
Original Assignee
Twitter Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Twitter Inc filed Critical Twitter Inc
Publication of CN114641767A publication Critical patent/CN114641767A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/602Providing cryptographic facilities or services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/604Tools and structures for managing or administering access control systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5072Grid computing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/0823Network architectures or network communication protocols for network security for authentication of entities using certificates
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/0884Network architectures or network communication protocols for network security for authentication of entities by delegation of authentication, e.g. a proxy authenticates an entity to be authenticated on behalf of this entity vis-à-vis an authentication entity
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/10Network architectures or network communication protocols for network security for controlling access to devices or network resources
    • H04L63/101Access control lists [ACL]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/10Network architectures or network communication protocols for network security for controlling access to devices or network resources
    • H04L63/102Entity profiles
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1097Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45583Memory management, e.g. access or allocation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45587Isolation or security of virtual machine instances
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2145Inheriting rights or properties, e.g., propagation of permissions or restrictions within a hierarchy

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Computing Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Mathematical Physics (AREA)
  • Automation & Control Theory (AREA)
  • Information Transfer Between Computers (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Stored Programmes (AREA)

Abstract

用于在多租户系统中处理数据的方法、系统和装置,包括编码在计算机存储介质上的计算机程序。方法之一包括:接收与用户的用户账户相关联的数据处理作业;决定在云服务提供方的一个或多个云集群上启动数据处理作业;标识与用户相对应的镜像账户,其中,镜像账户定义用户被允许访问云服务提供方的哪些云资源;获得镜像账户的密钥;发送用于在一个或多个云集群上启动数据处理作业的请求,包括向一个或多个云集群发送表征数据处理作业的数据、用户的镜像账户和所获得的密钥;以及从一个或多个云集群接收与数据处理作业相关联的输出数据。

Description

在经管理的多租户服务中管理用户身份
相关申请的交叉引用
本申请要求于2019年4月9日提交的美国专利申请第62/831,659号的提交日的权益,其通过引用并入本文中。
技术领域
本说明书涉及多租户环境中的数据处理中的用户身份。
背景技术
在常规的多租户仅本地模型中,例如企业的多个用户在企业网络内的集群(例如,在企业的一个或多个数据中心)上执行特别处理。通常,相同的用户凭证用于用户访问企业服务和访问集群两者。
在常规的仅多租户云模型中,第三方云提供方托管可以用于执行处理的集群。使用云进行数据处理的一些企业依靠单个服务帐户来运行所有数据处理作业。因此,无论在企业启动作业的个人用户帐户,云数据访问都与同一个服务帐户相关联。
这些第三方云提供方还可以提供其他服务,例如,电子邮件、日历和各种软件即服务应用。
发明内容
本说明书描述了用于在多租户环境中管理身份的技术,其中在非交互式环境中代表用户执行任务,例如,在混合本地和云架构中。混合架构包括用于数据处理的本地集群和云集群。另外,云可以提供其他服务,例如,电子邮件和其他基于云的应用。当用户存在时,通常使用认证令牌,例如,kerberos“委托令牌”。然而,当用户的代表在云集群上启动无人参与的任务时,并且这些任务需要对第二系统进行访问,避免同时提供对其他系统(例如,其他云服务)的访问很重要。使用在本说明书中描述的技术,可以使用针对每个用户生成的镜像账户来执行云集群上的用户数据处理作业,其中镜像账户镜像用户的企业账户。镜像账户可以对用户透明,同时针对云数据处理作业提供授权、认证和审计。
可以在特定实施例中实现在本说明书中描述的主题,从而实现以下优点中的一个或多个优点。镜像帐户可以与各个用户企业帐户相关联,以用于在多服务云环境的云集群上执行的数据处理作业。这可以对云集群上的数据访问提供授权、认证和审计,而不会泄露由云提供的其他服务的用户数据的风险。与所有用户的单个服务帐户相比,镜像帐户可以使用特定凭证各自定制以用于数据访问。此外,针对每个用户的唯一镜像帐户允许对数据访问进行简单审计,这对于作为用户的代表的单个超级用户服务帐户来说更加困难。镜像账户的创建和使用对用户是透明的,因此用户不需要学习另一用户名和密码来执行基于云的数据处理任务。通过使用镜像帐户,用户凭证的潜在危险仅限于在短时间内访问一项服务,而不会暴露对其他服务的访问。
本说明书的主题的一个或多个实施例的细节在附图和以下描述中阐述。根据描述、附图和权利要求,本主题的其他特征、方面和优点将变得清楚明白。
附图说明
图1是示例混合本地和云架构的框图。
图2是图示用于访问不同服务的各种用户账户的示图。
图3是用于认证新用户的示例过程的流程图。
图4是使用镜像帐户来启动数据处理作业的示例过程的流程图。
各个附图中的类似的附图标号和标记指示类似的要素。
具体实施方式
图1是示例混合本地和云架构100的框图。在混合本地和云架构100中,企业的数据处理的一些部分在企业环境101的分别位于数据中心106和108中的本地集群102和104上发生。另外,企业数据处理的一些其他的部分在位于云环境110上的云集群112上发生。
集群102、104和112可以是用于在分布式环境中处理大数据集的许多计算设备的计算集群。在一些实现方式中,一个或多个集群是Hadoop集群。
另外,企业环境101包括企业服务器103,用户可以通过企业服务器103访问数据中心或云的集群。因此,架构100也是具有多个用户的多租户架构,这些用户可以共存并且可以同时访问集群中的相同资源。
云环境110由不同于企业环境101的第三方提供,并且可以通过集群112和其他服务116向许多不同的企业提供数据处理。服务116可以包括基于云的企业服务,例如,电子邮件、日历和会议。企业服务还可以包括软件即服务应用,例如,文字处理、幻灯片演示和电子表格,以及针对每个服务生成的文档的存储。用户可以将处理作业分配为在本地集群102或104之一或云集群112上运行。
在管理数据处理作业时,针对在本地集群和云集群两者上运行的处理作业维护认证、授权和审计可能很有价值。认证是指验证用户或进程的身份的过程。验证对本地集群和云集群两者执行处理作业的每个用户的身份可能很重要。授权是指确定用户是否具有执行动作的权限,例如,确定用户是否具有访问集群上的处理作业的数据的权限。审计是指具有所执行的动作的日志或痕迹,例如,用于确定哪些用户对集群执行了哪些处理作业,或者确定哪些用户访问了哪些特定数据片段以及何时访问。
本地用户身份
在企业环境(例如,企业环境101)内,用户通常被分配用于标识用户和访问特定网络资源的唯一帐户。例如,可以为用户分配一个轻量目录访问协议(LDAP)的帐户,该轻量目录访问协议(LDAP)提供允许通过网络(例如,企业内部网)共享各种信息的目录服务。
在一些情况下,可以为特定任务分配其他用户身份。例如,可以为使用本地集群(例如,集群102和104)来执行数据处理任务的用户分配Unix帐户。在LDAP帐户与Unix帐户之间通常存在一对一映射,从而使用户无需登录单独的帐户即可访问各个功能。在一些实现方式中,已完成特定编程代码的用户可以将作业移动到生产环境中以运行。可以将最终生产作业的进程调度为作为不与任何特定个人用户身份相关联的Unix服务帐户运行。
云身份
企业还可以使用基于云的服务(例如,服务116),例如,基于云的服务提供基于云的电子邮件、日历和应用。可以为每个用户分配单独的云服务帐户以用于访问云服务。例如,企业可以使用基于云的电子邮件,为企业的每个用户分配云服务帐户。也可以为该云服务帐户指定与用户的LDAP账户相同的账户名。然而,密码通常是不同的。云服务的账户认证可以由云服务提供方(例如,第三方实体)管理。云服务帐户可以提供对作为云服务的一部分存储的所有用户数据的访问。
提供基于云的服务的实体还可以提供用于数据处理的计算集群(例如,云集群112)。
用于访问在云集群112上针对企业执行的数据处理作业的一种选项是针对整个企业使用单个服务帐户。也就是说,可以提供单个服务帐户以在云集群112上运行企业的所有数据处理作业。然而,在这种情况下,审计可能很困难,这是因为没有用户正在运行数据处理作业的直接审计痕迹;相反,所有的作业请求和数据访问请求似乎都由一个服务帐户执行。另外,由于所有数据都必须由单个服务帐户访问,因此授权可能很困难;也就是说,可能难以向各个不同的用户提供访问云数据的不同权限。
使用单个服务帐户的备选方案是使用已经分配给用户的个人云服务帐户。这可以提供对云中的数据访问的认证和审计。
然而,当数据处理作业在云集群上运行时,该作业往往需要云集群访问存储在云中的数据。如果需要认证以访问数据,那么用于访问的凭证(例如,启动数据处理作业的用户的云服务帐户的凭证)需要对执行数据处理作业的集群的一个或多个虚拟机可用。如果启动数据处理作业的用户的云服务帐户的凭证用于认证并且对虚拟机可用,那么云服务帐户的凭证可能容易被窃取(例如,被得到对虚拟机的访问的攻击者窃取,或者虚拟机的另一用户)。例如,对虚拟机具有管理访问的任何用户都可以获得在虚拟机上运行作业的用户的云服务帐户的凭证,并且假设云服务帐户的身份并且可以访问该用户的所有云服务(例如,服务116)。例如,这可以允许管理用户查看云服务帐户的电子邮件或文档。
混合本地和云混模型中的身份
可以针对每个用户生成镜像帐户,该镜像帐户与用户的企业帐户具有一对一映射(例如,用户的企业LDAP帐户)。镜像账户可以标识与对应的企业账户相关联的用户,并且可以用于执行由用户在云集群上启动的作业,在本地和云结构的多租户混合环境中提供认证、授权和审计。另外,通过使用与云服务帐户分开的镜像帐户,降低了对用户的云服务数据的管理访问的安全风险。
图2是图示用于访问用户的企业的计算资源且用于访问企业的云服务提供方的不同服务的用户201的各种用户账户的示图200。用户201使用云服务账户203来访问云服务202。用户201还使用企业帐户205(例如,Unix或其他合适的帐户)来访问企业的企业处理资源204(例如,包括一个或多个本地集群的处理资源)。如上所述,云服务账户203和企业账户205可以具有同一账户名;然而,云服务账户203的账户认证由云服务提供方管理,而企业账户205的账户认证可以由企业管理。来自用户201并指向企业处理资源204的数据处理请求可以使用企业账户凭证205在本地集群上运行,或者可以在云集群206上运行。
云服务提供方可以针对用户201生成镜像账户210,该镜像账户210提供对由云集群206执行的数据处理作业的特定云数据的访问。在一些实施方式中,企业处理资源204可以生成镜像账户210。该镜像账户可以映射到用户的对应的企业账户205。
当企业处理资源204接收到用于启动用户201的数据处理作业的请求时,企业处理资源204可以确定数据处理作业应该在本地集群上还是在云集群206上执行。在一些实施方式中,由用户201提交的用于启动数据处理作业的请求将标识哪种类型的集群应该执行该作业;在一些其他实施方式中,企业处理资源204可以在没有用户输入的情况下做出确定(例如,根据本地集群的可用性)。如果企业处理资源204确定使用本地集群来执行数据处理作业,那么企业处理资源可以使用企业账户205来授权和审计该作业。如果企业处理资源204确定使用云集群206来执行数据处理作业,则企业处理资源204可以使用镜像账户210将作业请求路由到云集群206。由企业处理资源204向云集群206发送的请求可以使用密码进行认证,如图2中通过镜像账户210的密钥207(例如,JSON密钥)所表示的。
然后,云集群205可以使用镜像账户210来授权和审计数据处理作业。例如,云集群206可以生成由数据处理作业提交的云数据请求的日志,并且将该日志与用户201相关联,该用户201与镜像账户210相关联。云集群206还可以针对由数据处理作业提交的云数据的每个请求确定用户201是否可以访问被请求的云数据。特别地,云集群206和云集群206的任何其他用户(例如,云集群206的管理用户)无法使用镜像账户210来访问用户201的云服务202,确保即使云集群206的另一个用户获得了镜像账户210的凭证,云服务202的用户数据也是安全的。
云服务提供方可以以对用户201透明的方式生成镜像账户210。用户201不需要知道关于镜像账户210的细节或镜像账户210的账户凭证。另外,镜像账户210的密码(例如,密钥201)可以由系统(例如,由企业处理资源204或云集群206)生成和定期轮换。因此,个人用户无需知道其各个镜像帐户的凭证,或者输入凭证以执行数据处理。用户在运行他们的数据处理作业时也不需要知道它是访问云上的数据的身份的镜像帐户。表征企业的镜像账户的数据和镜像账户的凭证可以由企业处理资源204本地存储。
图3是用于针对企业的新用户生成凭证的示例流程300的流程图。为了方便起见,流程300将被描述为由位于一个或多个位置的一个或多个计算机的系统执行,并且根据本说明书适当地编程。
系统针对用户生成账户标识符(302)。例如,账户标识符可以用于用户的新企业账户。企业账户可以是用户加入企业时生成的新账户,例如,具有唯一账户名的LDAP账户(例如,newuser1)。同时可以生成对应的云服务账户,用于访问企业的由云服务提供方提供的云管理服务(例如,电子邮件)。为了方便起见,可以使用同一帐户名(例如,newuser1)生成云服务帐户,但是通常具有与企业帐户不同的密码。
系统将企业账户与具有对云数据处理的访问的企业的用户组相关联(304)。例如,系统可以基于用户在企业中的角色将用户的企业账户与企业的特定组织组相关联。这些组织组可以各自使用在云服务提供方的云集群中存储或处理的企业数据的不同部分工作或具有对该不同部分的访问。
系统可以确定企业账户是否具有与其相关联的镜像账户。响应于确定企业账户不具有对应的镜像账户,系统针对用户生成镜像账户(306)。镜像账户可以被企业的本地计算资源使用来将用户的计算作业启动到云服务提供方的云集群上。可以以迅速标识对应的企业帐户的方式构建镜像帐户。例如,可以在镜像账户(例如,newuser1@enterprisegrp.iam.mirroraccount.com)内包括企业账户的账户名。通过在镜像账户中包含企业账户,可以快速执行审计,以便将云集群数据的请求映射到与数据访问请求相关联的企业账户。
系统针对用户的镜像帐户建立凭证(308)。凭证可以包括定义允许用户帐户访问的云数据的特定权限集。系统可以根据用户的企业账户与其相关联的不同企业组针对用户的镜像账户建立凭证。因此,基于特定组的成员被允许执行的数据处理作业的类型,可以为每个用户的镜像帐户提供对用户是其成员的特定组定制的凭证。
系统还可以指定用户存储区域,以用于将与用户的云处理作业相关联的数据与其他用户的数据分开存储。
系统针对镜像账户生成一个或多个密钥。密钥由企业存储,例如,在企业处理资源的安全密钥库中,并且当用户数据处理作业发送到云集群时检索。密钥被存储为使得它们仅可以与特定镜像帐户相关联地被检索。
重要的是,镜像帐户无法访问由云服务提供方提供的与云集群和所启动的数据处理作业无关的云服务。也就是说,镜像账户无法访问用户可以使用用户的所生成的云服务账户来访问的用户云服务。因此,即使镜像账户被泄露,由这些其他云服务维护的用户数据保持安全。
图4是用于使用镜像帐户来启动数据处理作业的示例过程400的流程图。为了方便起见,流程400将被描述为由位于一个或多个位置的一个或多个计算机的系统执行,并且根据本说明书适当地编程。
系统从企业的用户接收数据处理作业(402)。例如,用户可以将作业提交给企业的管理数据处理作业的数据处理管理系统,例如,通过调度要由本地集群执行的处理作业的一部分并通过将处理作业的不同部分提供给云服务提供方的云集群。在一些实施方式中,用户请求指定数据处理作业应该在本地集群上还是在云集群上执行。在一些其他的实施方式中,数据处理管理系统基于执行作业所需的资源来确定将数据处理作业发送到哪里。
针对要由云集群执行的作业,系统标识请求用户的镜像帐户(404)。镜像账户可以基于用户的企业账户名进行标识。特别地,如上所述,可以针对用户生成在镜像账户的名中包括企业账户名的镜像账户。在一些其他的实施方式中,系统在将企业帐户名(或者,本地数据处理的Unix帐户名)与镜像帐户相关联的目录中查找用户的镜像帐户。
系统检索镜像帐户的当前密钥(406)。密钥是镜像帐户用于向云集群提供认证的密码,并且可以由系统存储在安全的密钥库中。因此,系统可以检索密钥而不是要求用户密码输入。可以定期更改镜像账户的密钥,以增强镜像账户的安全性。在一些实施方式中,密钥集被定期轮换(例如,特定天数)。也就是说,可以定期生成新密钥并逐步淘汰最旧的密钥。
系统使用镜像帐户标识符和密钥来将数据处理作业发送到云集群(408)。镜像帐户标识符提供允许云集群确定帐户是否被授权访问作业的数据的信息。密钥提供对镜像帐户的认证。
如果用户被正确授权和认证,则云集群执行数据处理作业。系统从云集群接收输出数据(410)。输出数据可以取决于由云集群执行的特定数据处理作业。
本主题的实施例包括方法和对应的计算机系统、装置、以及记录在一个或多个计算机存储设备上的计算机程序,各自被配置为执行方法的动作。一个或多个计算机要被配置为执行特定操作或动作的系统意味着系统已在其上安装了软件、固件、硬件或其组合,这些软件、固件、硬件或其组合在操作中会使系统执行操作或动作。针对要被配置为执行特定操作或动作的一个或多个计算机程序意味着该一个或多个程序包括在由数据处理装置执行时使该装置执行操作或动作的指令。
在本说明书中描述的主题和功能操作的实施例可以实现在下述形式中:数字电子电路、有形具体实施的计算机软件或固件、计算机硬件,包括在本说明书中公开的结构及其结构等同物、或它们中的一个或多个的组合。在本说明书中描述的主题的实施例可以被实现为一个或多个计算机程序,即,在有形的非暂时性计算机存储介质上编码的计算机程序指令的一个或多个模块,以用于被数据处理装置执行或控制数据处理装置的操作。计算机存储介质可以是机器可读存储设备、机器可读存储基板、随机或串行存取存储器设备、或者计算机存储介质、它们中的一种或多种的组合。备选地或另外地,程序指令可以在人工产生的传播信号(例如,机器生成的电、光或电磁信号)上编码,该传播信号被生成以对信息进行编码,以用于被传输到合适的接收器装置,以用于被数据处理装置执行。
术语“数据处理装置”是指数据处理硬件,并且涵盖用于处理数据的各种装置、设备和机器,例如包括可编程处理器、计算机、或者多个处理器或计算机。该装置还可以是或还包括专用逻辑电路,例如,FPGA(现场可编程门阵列)或ASIC(专用集成电路)。除了硬件之外,该装置可以可选地包括针对计算机程序创建执行环境的代码,例如,构成处理器固件、协议栈、数据库管理系统、操作系统、或者它们中的一种或多种的组合的代码。
计算机程序,也被描述为程序、软件、软件应用、app,模块、软件模块、脚本或代码,该计算机程序可以以任何形式的编程语言编写,包括编译或解译语言、或者声明性或程序语言;并且它可以以任何形式部署,包括作为独立程序或作为模块、组件、子程序或其他适合在计算环境中使用的单元。一个程序可以但不必对应于文件系统中的文件。程序可以存储在保存其他程序或数据的文件的一部分中,例如,存储在标记语言文档中的一个或多个脚本、专用于相关程序的单个文件、或者多个协调文件,例如,存储一个或多个模块、子程序或部分代码的文件。计算机程序可以被部署为在一个计算机上或在位于一个站点或分布在多个站点并通过数据通信网络互连的多个计算机上执行。
在本说明书中描述的过程和逻辑流可以由一个或多个可编程计算机执行,该一个或多个可编程计算机执行一个或多个计算机程序以通过操作输入数据并生成输出来执行功能。处理和逻辑流程也可以由专用逻辑电路(例如,FPGA或ASIC)或由专用逻辑电路和一个或多个编程计算机的组合来执行。
适用于执行计算机程序的计算机可以基于通用或专用微处理器或这两者或任何其他种类的中央处理单元。通常,中央处理单元将从只读存储器或随机存取存储器或这两者接收指令和数据。计算机的必不可少的元件是用于执行或运行指令的中央处理单元以及用于存储指令和数据的一个或多个存储器设备。中央处理单元和存储器可以由专用逻辑电路补充或合并在专用逻辑电路中。通常,计算机还将包括用于存储数据的一个或多个大容量存储设备(例如,磁盘、磁光盘或光盘),或者可操作耦接以从该一个或多个大容量存储设备接收或向其发送数据。然而,计算机不需要具有这样的设备。此外,计算机可以嵌入在另一设备中,例如,移动电话、个人数字助理(PDA)、移动音频或视频播放器、游戏机、全球定位系统(GPS)接收机或者便携式存储设备(例如,通用串行总线(USB)闪存驱动器),这仅是举几个例子。
用于存储计算机程序指令和数据的计算机可读介质包括所有形式的非易失性存储器、介质和存储器设备,例如包括示例半导体存储器设备,例如,EPROM、EEPROM和闪存设备;磁盘,例如,内置硬盘或可移动磁盘;磁光盘;以及CD ROM和DVD-ROM磁盘。
为了提供与用户的交互,在本说明书中描述的主题可以在计算机上实现,该计算机具有用于向用户显示信息的显示设备(例如,CRT(阴极射线管)或LCD(液晶显示器)和用户可以向计算机提供输入的键盘和指向设备(例如,鼠标或轨迹球)。也可以使用其他类型的设备来提供与用户的交互;例如,提供给用户的反馈可以是任何形式的感官反馈,例如,视觉反馈、听觉反馈或触觉反馈;并且可以以任何形式从用户接收输入,包括声学、语音或触觉输入。另外,计算机可以通过向用户所使用的设备发送文档和从用户所使用的设备接收文档来与用户交互;例如,响应于从Web浏览器收到的请求,将网页发送到用户设备上的Web浏览器。
在本说明书中描述的主题的实施例可以实现在计算系统中,该计算系统包括后端组件(例如,数据服务器)、或者包括中间组件(例如,应用服务器)、或者包括前端组件(例如,具有用户可以通过其与在本说明书中描述的主题的实现交互的图形用户界面、Web浏览器或应用的客户端计算机)、或者一个或多个这样的后端组件、中间件组件或前端组件的任意组合。系统的组件可以通过任何形式或介质的数字数据通信(例如,通信网络)互连。通信网络的示例包括局域网(LAN)和广域网(WAN)(例如,互联网)。
计算系统可以包括客户端和服务器。客户端和服务器通常彼此远离并且通常通过通信网络进行交互。客户端与服务器的关系是由于在各个计算机上运行的计算机程序而产生的,并且彼此之间具有客户端-服务器关系。在一些实施例中,服务器将数据(例如,HTML页面)传输到用户设备(例如,出于向作为客户端的与设备交互的用户显示数据和接收来自与设备交互的用户的用户输入的目的)。在用户设备生成的数据(例如,用户交互的结果)可以从设备在服务器接收。
除了上述实施例以外,以下实施例还具有创新性:
实施例1为一种方法,包括:接收与用户的用户账户相关联的数据处理作业;决定在云服务提供方的一个或多个云集群上启动数据处理作业;标识与用户相对应的镜像账户,镜像账户定义用户被允许访问哪些云服务提供方的云资源;获得镜像账户的密钥;发送用于在一个或多个云集群上启动数据处理作业的请求,包括向一个或多个云集群发送表征数据处理作业的数据、用户的镜像账户和所获得的密钥,其中所获得的密钥向一个或多个云集群认证请求;以及从一个或多个云集群接收与数据处理作业相关联的输出数据。
实施例2是实施例1的方法,其中,一个或多个云集群使用镜像账户来对由数据处理作业提交的一个或多个请求进行授权,该授权包括确定用户是否被允许访问与请求相关联的数据。
实施例3是实施例1或2中的任一实施例的方法,其中,一个或多个云集群使用镜像账户来审计由数据处理作业提交的一个或多个请求,该审计包括生成与请求并且与用户相关联的一个或多个日志。
实施例4是实施例1-3中的任一实施例的方法,其中,云服务提供方向用户提供一个或多个其他云服务,并且其中,镜像账户无法访问与一个或多个其他云服务相关联的数据。
实施例5是实施例1-4中的任一实施例的方法,其中,获得镜像账户的密钥包括从安全密钥库获得密钥,并且其中,密钥被定期更新。
实施例6是实施例1-5中的任一实施例的方法,其中,确定在一个或多个云集群上启动数据处理作业包括标识与数据处理作业相关联的用户输入,其中,用户输入指定数据处理作业应该在一个或多个云集群上被启动。
实施例7是实施例1-6中的任一实施例的方法,其中,确定在一个或多个云集群上启动数据处理作业包括确定用户的企业的一个或多个本地集群执行数据处理作业的能力。
实施例8是实施例1-7中的任一实施例的方法,还包括:接收与第二用户的第二用户账户相关联的第二数据处理作业;确定在用户的企业的一个或多个本地集群上启动数据处理作业;以及使用与第二帐户相关联的凭证在一个或多个本地集群上执行数据处理作业。
实施例九是一种方法,包括:针对用户生成账户标识符;将账户标识符与被授权在一个或多个云集群上执行数据处理的一个或多个用户组相关联;针对账户标识符生成对应的镜像账户,镜像账户可以用于针对用户在一个或多个云集群上执行数据处理作业;以及针对镜像账户建立凭证包括:根据一个或多个用户组定义对存储在一个或多个云集群上的数据的访问权限,并且针对镜像账户生成一个或多个密码。
实施例10是实施例9的方法,其中,镜像账户和镜像账户的一个或多个密码对用户透明。
实施例11是实施例9或10中的任一实施例所述的方法,其中,账户标识符对应于针对企业的用户的企业账户,并且其中,用户的企业账户可以用于针对用户在企业的一个或多个本地集群上执行数据处理作业。
实施例12是实施例9-11中的任一实施例的方法,还包括:针对用户生成云服务账户,其中,云服务账户对应于由一个或多个云集群的云服务提供方提供的一个或多个云服务;以及针对云服务账户建立凭证,其中,镜像账户的凭证与云服务账户的凭证不同。
实施例13是实施例12的方法,其中,与镜像账户相对应的访问权限不提供对由云服务提供方提供的一个或多个云服务的访问。
实施例14是实施例9-13中的任一实施例的方法,还包括:将镜像账户的一个或多个密码存储在安全数据库中;以及定期更新镜像账户的一个或多个密码。
实施例15是一种系统,包括:一个或多个计算机以及存储指令的一个或多个存储设备,该指令在由该一个或多个计算机执行时,可操作以使该一个或多个计算机执行实施例1-14中的任一实施例的方法。
实施例16是一种计算机存储介质,编码有计算机程序,该程序包括指令,该指令在由数据处理装置执行时,可操作以使该数据处理装置执行实施例1-14中的任一实施例的方法。
尽管本说明书包含许多具体的实现细节,但是这些不应该被解释为对任何发明的范围或可能要求保护的范围的限制,而是对可能特定于特定发明的特定实施例的特征的描述。在单个实施例中,还可以组合实现本说明书中在独立实施例的上下文中描述的特定特征。反之,在单个实施例的上下文中描述的各种特征也可以在多个实施例中分开地或以任何合适的子组合来实现。此外,尽管特征在上面可以被描述为在某些组合中起作用并且甚至最初如此要求保护,但是来自所要求保护的组合的一个或多个特征在一些情况下可以从组合中删除,并且所要求保护的组合可以针对子组合或子组合的变体。
尽管在附图中以特定顺序描述了操作,但是这不应该被理解为:为了实现期望的结果,要求按所示的特定顺序或按相继的顺序来执行这些操作,或者要求执行所有所示的操作。在特定情况下,多任务和并行处理可能是有利的。此外,上述实施例中的各个系统模块和组件的分离不应该被理解为在所有实施例中都需要这样的分离,并且应该理解的是,所描述的程序组件和系统一般可以集成到单个软件产品中或打包成多个软件产品。
已描述了本主题的特定实施例。其他实施例在所附权利要求的范围内。例如,在权利要求中记载的动作可以以不同的顺序执行并且任然达到期望的结果。如一个示例,在附图中描绘的过程不一定需要所示的特定顺序或连续顺序来实现期望的结果。在一些情况下,多任务和并行处理可能是有利的。

Claims (24)

1.一种方法,包括:
接收与用户的用户账户相关联的数据处理作业;
确定在云服务提供方的一个或多个云集群上启动所述数据处理作业;
标识与所述用户相对应的镜像账户,其中所述镜像账户定义所述用户被允许访问所述云服务提供方的哪些云资源;
获得针对所述镜像账户的密钥;
发送用于在所述一个或多个云集群上启动所述数据处理作业的请求,包括向所述一个或多个云集群发送表征所述数据处理作业的数据、所述用户的所述镜像账户和所获得的所述密钥,其中所获得的所述密钥向所述一个或多个云集群认证所述请求;以及
从所述一个或多个云集群接收与所述数据处理作业相关联的输出数据。
2.根据权利要求1所述的方法,其中所述一个或多个云集群使用所述镜像账户来对由所述数据处理作业提交的一个或多个请求进行授权,所述授权包括确定所述用户是否被允许访问与所述请求相关联的数据。
3.根据权利要求1所述的方法,其中所述一个或多个云集群使用所述镜像账户来审计由所述数据处理作业提交的一个或多个请求,所述审计包括生成与所述请求并且与所述用户相关联的一个或多个日志。
4.根据权利要求1所述的方法,其中所述云服务提供方向所述用户提供一个或多个其他云服务,并且其中所述镜像账户无法访问与所述一个或多个其他云服务相关联的数据。
5.根据权利要求1所述的方法,其中,获得针对所述镜像账户的所述密钥包括从安全密钥库获得所述密钥,并且其中所述密钥被定期更新。
6.根据权利要求1所述的方法,其中确定在所述一个或多个云集群上启动所述数据处理作业包括标识与所述数据处理作业相关联的用户输入,其中所述用户输入指定所述数据处理作业应该在所述一个或多个云集群上被启动。
7.根据权利要求1所述的方法,其中确定在所述一个或多个云集群上启动所述数据处理作业包括确定所述用户的企业的一个或多个本地集群执行所述数据处理作业的能力。
8.根据权利要求1所述的方法,还包括:
接收与第二用户的第二用户帐户相关联的第二数据处理作业;
确定在所述用户的企业的一个或多个本地集群上启动所述数据处理作业;以及
使用与所述第二帐户相关联的凭证来在所述一个或多个本地集群上执行所述数据处理作业。
9.一种系统,包括:
企业环境,包括一个或多个数据中心,每个数据中心具有一个或多个数据处理集群;以及
多租户云环境,包括一个或多个基于云的数据处理集群和一个或多个基于云的服务,
其中所述企业环境的每个数据处理集群被配置为执行操作,所述操作包括:
接收与用户的用户账户相关联的数据处理作业;
确定在所述多租户云环境的所述一个或多个基于云的数据处理集群上启动所述数据处理作业;
标识与所述用户相对应的镜像账户,其中所述镜像账户定义用户被允许访问所述云环境的哪些云资源;
获得针对所述镜像账户的密钥;
发送用于在所述一个或多个基于云的数据处理集群上启动所述数据处理作业的请求,包括向所述一个或多个基于云的数据处理集群发送表征所述数据处理作业的数据、所述用户的所述镜像账户和所获得的所述密钥,其中所获得的所述密钥向所述一个或多个基于云的数据处理集群认证所述请求;以及
从所述一个或多个基于云的数据处理集群接收与所述数据处理作业相关联的输出数据。
10.根据权利要求9所述的系统,其中所述一个或多个基于云的数据处理集群使用所述镜像账户来对由所述数据处理作业提交的一个或多个请求进行授权,所述授权包括确定所述用户是否被允许访问与所述请求相关联的数据。
11.根据权利要求9所述的系统,其中所述一个或多个基于云的数据处理集群使用所述镜像账户来审计由所述数据处理作业提交的一个或多个请求,所述审计包括生成与所述请求并且与所述用户相关联的一个或多个日志。
12.根据权利要求9所述的系统,其中所述镜像账户无法访问与所述一个或多个其他基于云的服务相关联的数据。
13.根据权利要求9所述的系统,其中获得针对所述镜像账户的所述密钥包括从安全密钥库获得所述密钥,并且其中所述密钥被定期更新。
14.根据权利要求9所述的系统,其中确定在所述一个或多个基于云的数据处理集群上启动所述数据处理作业包括标识与所述数据处理作业相关联的用户输入,其中所述用户输入指定所述数据处理作业应该在所述一个或多个基于云的数据处理集群上被启动。
15.根据权利要求9所述的系统,其中确定在所述一个或多个基于云的数据处理集群上启动所述数据处理作业包括确定所述企业环境的所述数据中心执行所述数据处理作业的能力。
16.根据权利要求9所述的系统,其中所述企业环境的每个数据处理集群被配置为执行操作,所述操作还包括:
接收与第二用户的第二用户帐户相关联的第二数据处理作业;
确定在所述企业环境的数据中心的一个或多个数据处理集群上启动所述数据处理作业;以及
使用与所述第二帐户相关联的企业凭证来在所述企业环境的数据中心的所述一个或多个数据处理集群上执行所述数据处理作业。
17.一种或多种非暂时性计算机存储介质,编码有计算机程序指令,所述计算机程序指令在由一个或多个计算机执行时使所述一个或多个计算机执行操作,所述操作包括:
接收与用户的用户账户相关联的数据处理作业;
确定在云服务提供方的一个或多个云集群上启动所述数据处理作业;
标识与所述用户相对应的镜像账户,其中所述镜像账户定义所述用户被允许访问所述云服务提供方的哪些云资源;
获得针对所述镜像账户的密钥;
发送用于在所述一个或多个云集群上启动所述数据处理作业的请求,包括向所述一个或多个云集群发送表征所述数据处理作业的数据、所述用户的所述镜像账户和所获得的所述密钥,其中所获得的所述密钥向所述一个或多个云集群认证所述请求;以及
从所述一个或多个云集群接收与所述数据处理作业相关联的输出数据。
18.根据权利要求17所述的一种或多种非暂时性计算机存储介质,其中所述一个或多个云集群使用所述镜像账户来对由所述数据处理作业提交的一个或多个请求进行授权,所述授权包括确定所述用户是否被允许访问与所述请求相关联的数据。
19.根据权利要求17所述的一种或多种非暂时性计算机存储介质,其中所述一个或多个云集群使用所述镜像账户来审计由所述数据处理作业提交的一个或多个请求,所述审计包括生成与所述请求并且与所述用户相关联的一个或多个日志。
20.根据权利要求17所述的一种或多种非暂时性计算机存储介质,其中所述云服务提供方向所述用户提供一个或多个其他云服务,并且其中所述镜像账户无法访问与所述一个或多个其他云服务相关联的数据。
21.根据权利要求17所述的一种或多种非暂时性计算机存储介质,其中获得针对所述镜像账户的所述密钥包括从安全密钥库获得所述密钥,并且其中所述密钥被定期更新。
22.根据权利要求17所述的一种或多种非暂时性计算机存储介质,其中确定在所述一个或多个云集群上启动所述数据处理作业包括标识与所述数据处理作业相关联的用户输入,其中所述用户输入指定所述数据处理作业应该在所述一个或多个云集群上被启动。
23.根据权利要求17所述的一种或多种非暂时性计算机存储介质,其中确定在所述一个或多个云集群上启动所述数据处理作业包括确定所述用户的企业的一个或多个本地集群执行所述数据处理作业的能力。
24.根据权利要求17所述的一种或多种非暂时性计算机存储介质,其中所述操作还包括:
接收与第二用户的第二用户帐户相关联的第二数据处理作业;
确定在所述用户的企业的一个或多个本地集群上启动所述数据处理作业;以及
使用与所述第二帐户相关联的凭证来在所述一个或多个本地集群上执行所述数据处理作业。
CN202080038414.7A 2019-04-09 2020-04-09 在经管理的多租户服务中管理用户身份 Pending CN114641767A (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201962831659P 2019-04-09 2019-04-09
US62/831,659 2019-04-09
PCT/US2020/027558 WO2020210554A1 (en) 2019-04-09 2020-04-09 Managing user identities in a managed multi-tenant service

Publications (1)

Publication Number Publication Date
CN114641767A true CN114641767A (zh) 2022-06-17

Family

ID=70482841

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202080038414.7A Pending CN114641767A (zh) 2019-04-09 2020-04-09 在经管理的多租户服务中管理用户身份

Country Status (8)

Country Link
US (2) US11349846B2 (zh)
EP (1) EP3953841A1 (zh)
JP (1) JP2022526019A (zh)
KR (1) KR20220047211A (zh)
CN (1) CN114641767A (zh)
BR (1) BR112021019899A2 (zh)
DE (2) DE202020005751U1 (zh)
WO (1) WO2020210554A1 (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2020210554A1 (en) * 2019-04-09 2020-10-15 Twitter, Inc. Managing user identities in a managed multi-tenant service
CN113553492A (zh) * 2021-07-30 2021-10-26 平安普惠企业管理有限公司 账号的处理方法、装置、设备及存储介质

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8010810B1 (en) * 2007-12-27 2011-08-30 Emc Corporation Techniques for protecting data using an electronic encryption endpoint device
US8984589B2 (en) * 2010-04-27 2015-03-17 Accenture Global Services Limited Cloud-based billing, credential, and data sharing management system
US9467395B2 (en) 2013-03-13 2016-10-11 Vmware, Inc. Cloud computing nodes for aggregating cloud computing resources from multiple sources
US9736159B2 (en) * 2013-11-11 2017-08-15 Amazon Technologies, Inc. Identity pool bridging for managed directory services
US10594684B2 (en) 2016-09-14 2020-03-17 Oracle International Corporation Generating derived credentials for a multi-tenant identity cloud service
JP7025684B2 (ja) * 2017-08-23 2022-02-25 コニカミノルタ株式会社 代理認証システム、代理認証方法、プログラム
US10762234B2 (en) * 2018-03-08 2020-09-01 International Business Machines Corporation Data processing in a hybrid cluster environment
WO2020210554A1 (en) * 2019-04-09 2020-10-15 Twitter, Inc. Managing user identities in a managed multi-tenant service

Also Published As

Publication number Publication date
DE202020005751U1 (de) 2022-04-22
US20220394040A1 (en) 2022-12-08
WO2020210554A1 (en) 2020-10-15
JP2022526019A (ja) 2022-05-20
US20200329049A1 (en) 2020-10-15
US11349846B2 (en) 2022-05-31
BR112021019899A2 (pt) 2022-01-18
KR20220047211A (ko) 2022-04-15
EP3953841A1 (en) 2022-02-16
DE202020005753U1 (de) 2022-05-03

Similar Documents

Publication Publication Date Title
US11736469B2 (en) Single sign-on enabled OAuth token
JP6707127B2 (ja) エンドユーザによって起動されるアクセスサーバ真正性チェック
US10122707B2 (en) User impersonation/delegation in a token-based authentication system
US9646019B2 (en) Secure isolation of tenant resources in a multi-tenant storage system using a security gateway
US10581826B2 (en) Run-time trust management system for access impersonation
US10171455B2 (en) Protection of application passwords using a secure proxy
US9124569B2 (en) User authentication in a cloud environment
US11102196B2 (en) Authenticating API service invocations
US20140331337A1 (en) Secure isolation of tenant resources in a multi-tenant storage system using a gatekeeper
US20140330936A1 (en) Secure isolation of tenant resources in a multi-tenant storage systemwith inter-server communication
US10511584B1 (en) Multi-tenant secure bastion
US20220394040A1 (en) Managing user identities in a managed multi-tenant service
US10826886B2 (en) Techniques for authentication using push notifications
CN110447033B (zh) 基于客户访问限制的认证
US10257263B1 (en) Secure remote execution of infrastructure management
US10411892B2 (en) Providing encrypted personal data to applications based on established policies for release of the personal data
JP2023552457A (ja) フェデレーテッド認証のための第二要素ベースのレルム選択
US20240236063A1 (en) Computing systems and methods for protecting application programming interfaces with two-factor authentication
US20240236081A1 (en) Computing systems and methods for protecting application programming interfaces with two-factor authentication
US20240235835A1 (en) Computing systems and methods for protecting application programming interfaces with two-factor authentication
WO2024151654A1 (en) Computing systems and methods for protecting application programming interfaces with two-factor authentication

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination