首页> 中国专利> 基于云存储的Hadoop集群的多租户认证系统及方法

基于云存储的Hadoop集群的多租户认证系统及方法

摘要

本申请提供一种基于云存储的Hadoop集群的多租户认证系统及方法。云存储系统基于统一认证方式对云存储租户进行认证,只有对云存储租户认证通过,第一设备才可以将服务密钥配置到云存储系统中。密钥分发中心向Hadoop租户对应的名称节点分配服务凭据。目标Hadoop租户对应的第二设备向云存储系统发送服务凭据。云存储系统根据服务密钥解析服务凭据,以获取目标Hadoop租户的信息,并根据目标Hadoop租户的信息对目标Hadoop租户进行认证。这种多租户认证系统结合统一认证和Kerberos认证方式,从而可以适用于Hadoop集群的多租户认证。

著录项

  • 公开/公告号CN112311830A

    专利类型发明专利

  • 公开/公告日2021-02-02

    原文格式PDF

  • 申请/专利权人 华为技术有限公司;

    申请/专利号CN201910699629.2

  • 发明设计人 李明强;伍华涛;

    申请日2019-07-31

  • 分类号H04L29/08(20060101);H04L29/06(20060101);

  • 代理机构11205 北京同立钧成知识产权代理有限公司;

  • 代理人徐静;刘芳

  • 地址 518129 广东省深圳市龙岗区坂田华为总部办公楼

  • 入库时间 2023-06-19 09:44:49

说明书

技术领域

本申请涉及云存储技术领域,尤其涉及一种基于云存储的Hadoop集群的多租户认证系统及方法。

背景技术

随着云存储的广泛应用,越来越多的数据被存储到云存储系统上,人们对存储在云存储系统上的数据进行大数据分析的需求也越来越强烈。而Hadoop作为一种既定的业界大数据技术标准,被广泛应用于云存储的大数据分析中。

对于企业级云存储客户,基于Hadoop技术,可以建立由多租户构成的Hadoop集群,在基于云存储的Hadoop集群中,多租户管理特性尤为重要,而多租户认证功能更是多租户管理特性的必要前提。图1为Hadoop分布式文件系统(Hadoop Distributed File System,HDFS)以及S3A系统架构、ABFS系统架构的示意图,当S3A系统架构所涉及的云存储租户需要访问云存储系统1(即AWS S3云存储系统)时,云存储系统1需要对云存储租户进行认证,认证过程包括:云存储租户通过Hadoop应用(Applications,APP)访问Hadoop文件系统,将该Hadoop文件系统映射至文件系统1(即S3A文件系统),并调用S3接口,通过该S3接口(即Amazon S3)向云存储系统1发送超文本传输协议(Hyper Text Transfer Protocol,HTTP)请求消息,以请求云存储系统1对云存储租户进行认证。类似的,当ABFS系统架构所涉及的云存储租户需要访问云存储系统2(即Azure Blob云存储系统)时,云存储系统2需要对云存储租户进行认证,认证过程包括:云存储租户通过Hadoop应用(Applications,APP)访问Hadoop文件系统,将该Hadoop文件系统映射至文件系统2(即Azure Blob文件系统),并调用ABFS接口,通过该ABFS接口向云存储系统2发送HTTP请求消息,以请求云存储系统2对云存储租户进行认证。对于HDFS系统而言,Hadoop租户可以通过Hadoop应用、HDFS工具、分布式文件系统(Distributed File System,DFS)管理命令以及网络(web)HDFS等组件访问Hadoop文件系统,将该Hadoop文件系统映射至DFS上,并调用HDFS客户端访问名称节点(Name Node)以及数据节点(Data Node),其中Hadoop租户向名称节点发送远程过程调用(Remote Procedure Call,RPC)消息,以访问名称节点,向数据节点发送RPC消息以及TCP流来访问数据节点。针对网络HDFS组件,Hadoop租户可以直接向名称节点(Name Node,NN)和数据节点(Data Node,DN)发送HTTP消息,以访问名称节点和数据节点。如图1所示,在S3A和ABFS系统架构中,云存储租户都是向云存储系统发送HTTP请求消息来访问云存储系统,即S3A和ABFS系统架构中的HTTP请求消息均绕过原生HDFS客户端,而云存储系统对云存储租户采用的是统一认证方式,这种统一认证方式并不适用于Hadoop集群的多租户认证。

发明内容

本申请提供一种基于云存储的Hadoop集群的多租户认证系统及方法。这种多租户认证系统结合统一认证和Kerberos认证方式,从而可以适用于Hadoop集群的多租户认证。

第一方面,本申请提供一种基于云存储的Hadoop集群的多租户认证系统,包括:云存储租户对应的第一设备、Hadoop集群对应的第二设备、统一认证中心、密钥分发中心KDC和云存储系统;Hadoop集群包括:Hadoop租户,Hadoop租户与第二设备具有对应关系;云存储系统包括:名称节点,云存储租户和Hadoop租户与名称节点具有对应关系。第一设备用于向名称节点分配服务密钥。统一认证中心用于向云存储租户分配访问密钥/秘密密钥AK/SK。第一设备还用于向云存储系统发送AK/SK和云存储租户的信息,云存储租户的信息包括:服务密钥。云存储系统用于通过AK/SK对云存储租户进行认证,若认证成功,则存储云存储租户的信息。密钥分发中心用于向Hadoop租户对应的名称节点分配服务凭据,服务凭据为通过服务密钥加密的Hadoop租户的信息。第二设备用于向云存储系统发送服务凭据。云存储系统还用于根据服务密钥解析服务凭据,以获取Hadoop租户的信息,并根据Hadoop租户的信息对Hadoop租户进行认证。即通过密钥分发中心授权的Hadoop租户才可以访问对应的名称节点。这种多租户认证系统结合统一认证和Kerberos认证方式,从而可以适用于Hadoop集群的多租户认证。

可选的,云存储租户的信息还包括:云存储租户的标识。可选的,AK/SK和云存储租户的信息可以携带第一设备向云存储系统发送的HTTP请求消息中。

可选的,第一设备具体用于通过密钥分发中心的kinit命令为云存储租户对应的名称节点分配服务密钥。

可选的,第二设备还用于向云存储系统发送策略标识,策略标识为云存储租户所使用的虚拟私有云端点机制的策略标识,其中,策略标识与云存储租户所使用的虚拟私有云VPC之间具有第一对应关系,以及,VPC与云存储租户之间具有第二对应关系,云存储租户和服务密钥具有第三对应关系。相应的,云存储系统还用于根据策略标识和第一对应关系确定VPC,根据第二对应关系和VPC确定云存储租户,并根据第三对应关系和云存储租户确定服务密钥。通过该机制,使得云存储系统可以识别云存储租户,并确定该云存储租户对应的服务密钥。

可选的,第一设备还用于建立第一对应关系、第二对应关系和第三对应关系中的至少一项。

可选的,第二设备还用于向云存储系统发送Hadoop租户的文件对应的统一资源标识符URI,URI与文件对应的命名空间具有第四对应关系,命名空间与文件对应的文件桶名具有第五对应关系、文件桶名与Hadoop租户具有第六对应关系,Hadoop租户与服务密钥具有第七对应关系。云存储系统还用于根据URI和第四对应关系确定命名空间,根据命名空间和第五对应关系确定文件桶名,并根据文件桶名和第六对应关系确定Hadoop租户,根据Hadoop租户和第七对应关系确定服务密钥。通过该机制,使得云存储系统可以识别云存储租户,并确定该云存储租户对应的服务密钥。

可选的,第一设备还用于建立第四对应关系、第五对应关系、第六对应关系和第七对应关系中的至少一项。

可选的,云存储系统还用于:通过服务密钥对服务凭据进行校验。

本申请还提供了基于云存储的Hadoop集群的多租户认证方法、存储介质及计算机程序产品,其效果可参考上述多租户认证系统对应的效果。

第二方面,本申请提供一种基于云存储的Hadoop集群的多租户认证方法,方法应用于多租户认证系统,系统包括:云存储租户对应的第一设备、Hadoop集群对应的第二设备、统一认证中心、密钥分发中心KDC和云存储系统;Hadoop集群包括:Hadoop租户,Hadoop租户与第二设备具有对应关系,云存储系统包括:名称节点,云存储租户和Hadoop租户与名称节点具有对应关系。方法包括:第一设备向名称节点分配服务密钥。统一认证中心向云存储租户分配访问密钥/秘密密钥AK/SK。第一设备向云存储系统发送AK/SK和云存储租户的信息,云存储租户的信息包括:服务密钥。云存储系统通过AK/SK对云存储租户进行认证,若认证成功,则存储云存储租户的信息。密钥分发中心向Hadoop租户对应的名称节点分配服务凭据,服务凭据为通过服务密钥加密的Hadoop租户的信息。第二设备向云存储系统发送服务凭据。云存储系统根据服务密钥解析服务凭据,以获取Hadoop租户的信息,并根据Hadoop租户的信息对Hadoop租户进行认证。

第三方面,本申请提供一种计算机存储介质,该存储介质包括计算机指令,计算机指令用于实现上述第三方面的多租户认证方法。

第四方面,本申请提供一种计算机程序产品,该计算机程序产品包括计算机指令,计算机指令用于实现上述第三方面的多租户认证方法。

综上,本申请提供一种基于云存储的Hadoop集群的多租户认证系统及方法。其中,在云存储系统基于统一认证中心认证的情况下,本申请提供的多租户认证系统支持Hadoop集群基于Kerberos的多租户认证,包括:云存储系统基于统一认证方式对云存储租户进行认证,只有对云存储租户认证通过,第一设备才可以将服务密钥配置到云存储系统中,其中,云存储系统可以通过策略标识来识别云存储租户,进而获取分配给云存储租户对应的名称节点的服务密钥。密钥分发中心向Hadoop租户对应的名称节点分配服务凭据。Hadoop租户对应的第二设备向云存储系统发送服务凭据。云存储系统根据服务密钥解析服务凭据,以获取Hadoop租户的信息,并根据Hadoop租户的信息对Hadoop租户进行认证。即通过密钥分发中心授权的Hadoop租户才可以访问对应的名称节点。这种多租户认证系统结合统一认证和Kerberos认证方式,从而可以适用于Hadoop集群的多租户认证。

附图说明

图1为HDFS以及S3A系统架构、ABFS系统架构的示意图;

图2为本申请一实施例提供的本申请应用场景示意图;

图3为本申请一实施例提供的基于云存储的Hadoop集群的多租户认证系统的示意图;

图4为本申请另一实施例提供的基于云存储的Hadoop集群的多租户认证系统的示意图;

图5为本申请一实施例提供的一种基于云存储的Hadoop集群的多租户认证方法的流程图;

图6为本申请另一实施例提供的一种基于云存储的Hadoop集群的多租户认证方法的流程图;

图7为本申请再一实施例提供的一种基于云存储的Hadoop集群的多租户认证方法的流程图。

具体实施方式

如上,在现有技术中,例如:在S3A和ABFS系统架构中,云存储租户都是向云存储系统发送HTTP请求消息来访问云存储系统,即S3A和ABFS系统架构中的HTTP请求消息均绕过原生HDFS接口,而云存储系统对云存储租户采用的是统一认证方式,这种统一认证方式并不适用于Hadoop集群的多租户认证。

在介绍本申请技术方案之前,下面先对本申请涉及的专业术语进行如下说明:

HDFS:是一个传统的分级文件系统。针对该分级文件系统可以进行创建、删除、移动或重命名文件等操作。如图1所示,HDFS的架构是基于一组特定的节点构建的。这些节点包括名称节点和数据节点,该名称节点在HDFS架构内部提供元数据服务;数据节点为HDFS架构提供存储块。存储在HDFS中的文件被分成块,可以将这些块复制到多个名称节点(例如可以是计算机)中。名称节点可以控制对所有文件的操作。HDFS内部的所有通信都基于标准的传输控制协议/互联网协议(Transmission Control Protocol/Internet Protocol,TCP/IP)协议。

名称节点:其可以控制对所有文件的操作。它决定是否将文件映射到数据节点上的复制块上。实际的输入/输出(Input/Output,I/O)事务并没有经过名称节点,只有表示数据节点和块的文件映射的元数据经过名称节点。

Kerberos认证:Hadoop集群多租户认证是基于Kerberos认证实现的。Kerberos密钥分发中心(Key Distribution Center,KDC)是Hadoop集群的认证中心,在本申请中,将该Kerberos KDC简称为KDC,首先KDC为每个服务(即名称节点或者数据节点)创建服务密钥(Service Key),并将该服务密钥配置到每个服务对应节点的密钥表(Keytab)文件中,同时Hadoop租户从KDC申请一个含时间戳的票据授予票据(Ticket Granting Ticket,TGT),再通过该TGT从KDC申请某个目标服务(如某个名称节点)的服务凭据(Ticket),该服务凭据为通过服务密钥加密的Hadoop租户的信息,该Hadoop租户的信息可以包括Hadoop租户的身份信息等,之后将该服务凭据发送给该目标服务对应的节点,最后目标服务对应的节点用自己本地保存的服务密钥,对收到的服务凭据进行解密,并校验服务凭据内容的有效性。

示例性地,图2为本申请一实施例提供的本申请应用场景示意图,一个具有管理权限的云存储租户可以在云存储系统上创建一个或者多个文件桶,然后通过接口往文件桶写入数据,可选的,该接口为S3接口、可移植操作系统接口(Portable Operating SystemInterface of UNIX,POSIX)接口或者HDFS客户端等,如图2所示,该云存储租户(图2中以包括两个云存储租户为例,它们分别为云存储租户1和云存储租户2)还可以申请多个虚拟机(Virtual Machine,VM),其中,云存储租户1申请了VM11、VM12和VM13,云存储租户2申请了VM21、VM22和VM23,每个VM上安装有Hadoop APP和HDFS客户端,每个云存储租户可以建立一个Hadoop集群,如云存储租户1建立了Hadoop集群1,云存储租户2建立了Hadoop集群2,每个Hadoop集群包括该至少一个Hadoop租户,这些云存储租户和Hadoop租户对应的网元(其中,该网元可以是租户对应的VM或者是租户所登录的物理设备)可以通过HDFS客户端从云存储系统中的文件桶中读取数据,并通过Hadoop APP对读取到的数据进行计算和分析等。Hadoop集群内部的多租户权限管理和文件访问权限控制仍然通过Hadoop原有机制来实现。其中,在云存储租户和Hadoop租户对应的网元从云存储系统中的文件桶中读取数据之前,需要对云存储租户和Hadoop租户认证。

此外,该云存储租户作为对应Hadoop集群的管理用户可以添加一个或多个Hadoop租户,这些Hadoop租户由Hadoop集群的KDC来管理和维护,并基于Kerberos认证技术进行认证。

当该云存储租户创建多个文件桶时,云存储租户可以将每个文件桶映射到一个HDFS的命名空间(NameSpace)上,以支持以多个命名空间的方式来管理这些文件桶数据。

可选的,各个Hadoop租户对HDFS各个的文件的访问权限,由对应的云存储租户通过HDFS内部的访问控制列表(Access Control List,ACL)来设置和控制,不需要由云存储系统的ACL来控制。

本申请的主旨思想是:在云存储系统基于统一认证中心认证的情况下,支持Hadoop集群基于Kerberos的多租户认证。

示例性地,图3为本申请一实施例提供的基于云存储的Hadoop集群的多租户认证系统的示意图,如图3所示,该系统包括:云存储租户对应的第一设备30、Hadoop集群对应的至少一个第二设备31、统一认证中心32、密钥分发中心33和云存储系统34,Hadoop集群包括:至少一个Hadoop租户,云存储系统包括:至少一个名称节点35,云存储租户30与至少一个名称节点35具有对应关系,至少一个第二设备与至少一个Hadoop租户具有对应关系,Hadoop集群中的各个租户分别与至少一个名称节点具有对应关系。

可选的,一个云存储租户与一个名称节点对应,或者,一个云存储租户与多个名称节点对应,或者,多个云存储租户与一个名称节点对应,本申请对云存储租户与名称节点之间的对应关系不做限制。

可选的,一个Hadoop租户与一个名称节点对应,或者,一个Hadoop租户与多个名称节点对应,或者,多个Hadoop租户与一个名称节点对应,本申请对Hadoop租户与名称节点之间的对应关系不做限制。

可选的,第一设备30可以是云存储租户所登录的VM或者物理设备,任一个Hadoop租户对应的第二设备31可以是该Hadoop租户所登录的VM或者物理设备。物理设备可以为服务器。至少一个第二设备31与至少一个Hadoop租户之间具有一一对应关系,或者,多个Hadoop租户对应一个第二设备31,或者,一个Hadoop租户对应多个第二设备31,本申请对Hadoop租户与第二设备31之间的对应关系不做限制。

统一认证中心32可以被理解为具有统一认证功能的一个独立设备或者集成系统,比如该统一认证中心32可以是一台具有统一认证功能的服务器,或者可以是由多台服务器构成的集成系统,该集成系统具有云存储系统34的统一认证功能。

密钥分发中心33可以被理解为具有Kerberos认证功能的一个独立设备、集成系统或者是至少一个VM,比如该密钥分发中心33可以是一台具有Kerberos认证功能的服务器,或者可以是由多台服务器构成的集成系统,该集成系统具有Kerberos认证功能。

云存储系统34可以是由一台云服务器或者多台云服务器构成的云存储系统34。

其中,第一设备30用于向该云存储租户对应的名称节点分配服务密钥。可选的,第一设备30具体用于通过密钥分发中心33的kinit命令为云存储租户对应的名称节点分配服务密钥,该服务密钥可以包含在该名称节点的密钥表(Keytab)文件中。其中,可以通过函数,如REST API setNameNodeServiceKey()实现向云存储租户对应的名称节点分配服务密钥。

统一认证中心32用于向云存储租户分配访问密钥/秘密密钥(Access Key/SecretAccess Key,AK/SK)。第一设备30还用于向云存储系统34发送AK/SK和云存储租户的信息,云存储租户的信息包括:服务密钥。该云存储租户的信息还可以包括:云存储系统34的标识。可选的,AK/SK和云存储租户的信息可以携带第一设备30向云存储系统34发送的HTTP请求消息中。

云存储系统34用于通过AK/SK对云存储租户进行认证,若认证成功,则存储云存储租户的信息,其中,AK/SK中包括统一认证中心32的密码信息,云存储系统34通过AK/SK对云存储租户进行认证,包括:云存储系统34将AK/SK发送给统一认证中心32,统一认证中心32解析该AK/SK,以获取密码信息,统一认证中心32对本身记录的AK/SK的密码信息与解析得到的密码信息进行比对,若比对成功,则表示对云存储租户认证成功,否则,表示对云存储租户认证失败。

可选的,云存储系统34还包括:元数据存储子系统36,相应的,云存储系统34具体用于将云存储租户的信息存储至元数据存储子系统36中。可选的,该元数据存储子系统36可以是云存储系统34中的一台云服务器或者多台服务器,又或者是一台云服务器或者多台云服务器上的一个存储系统。

密钥分发中心33从第一设备30获取服务密钥,并用于向目标Hadoop租户(即任一个Hadoop租户)对应的名称节点分配服务凭据,服务凭据为通过服务密钥加密的目标Hadoop租户的信息。目标Hadoop租户对应的第二设备31用于向云存储系统34发送服务凭据。云存储系统34还用于根据服务密钥解析服务凭据,以获取目标Hadoop租户的信息,并根据目标Hadoop租户的信息对目标Hadoop租户进行认证。

示例性地,在VPC EndPoint机制中,每个VPC有一个全局唯一的64位标识(Identity,ID),每个VPC可以定义多个策略(Policy),每个策略也有一个全局唯一的32位标识。在VPC EndPoint创建时,云存储租户对应的第一设备30调用云存储系统34的一个接口,并通过该接口建立策略标识与VPC的第一对应关系,一个VPC可以对应一个或者多个策略标识,VPC与云存储租户的第二对应关系,一个云存储租户可以属于一个或者多个VPC,云存储租户和服务密钥具有第三对应关系,云存储租户可以将该第一对应关系、第二对应关系和第三对应关系中的至少一项携带在云存储租户的信息中,并发送给云存储系统34;或者,云存储租户可以将策略标识、云存储租户所使用的VPC的标识、云存储租户的标识、服务密钥携带在云存储租户的信息中,并发送给云存储系统34。策略标识为云存储租户对应的第一设备30所使用的VPC EndPoint机制的策略标识。相应的,目标Hadoop租户对应的第二设备31还用于向云存储系统34发送策略标识,云存储系统34还用于根据策略标识和第一对应关系确定VPC,根据第二对应关系和VPC确定云存储租户,并根据第三对应关系和云存储租户确定服务密钥。

云存储系统34可以通过策略标识来识别云存储租户,进而获取分配给云存储租户对应的名称节点的服务密钥。Hadoop租户在向其对应的名称节点发送TCP请求消息时,在网际协议版本4(Internet Protocol version 4,IPv4)网络中,Hadoop租户通过TCP头的选择(Option)字段携带策略标识,并且将TCP头的源地址改成统一的198.19.128.0/20,Hadoop租户对应的名称节点基于该源地址就可以获知该TCP请求消息是基于VPC EndPoint机制的消息,然后通过一个内核模块从TCP头提取策略标识,并将策略标识可以提取出来,存储在云存储系统34中的套接字(Socket)属性里面,云存储系统34通过请求处理函数再从套接字属性里获取策略标识,并将策略标识存储在云存储系统34中,以根据该策略标识确定服务密钥。在网际协议版本6(Internet Protocol version 6,IPv6)网络中,服务密钥通过IPv6的源地址的某个字段携带策略标识,云存储系统34通过请求处理函数可以直接从套接字的源地址属性中获取策略标识,并将策略标识存储在云存储系统34中,以根据该策略标识确定服务密钥(即实现查询服务密钥的过程)。TCP请求消息中还携带服务凭据,基于此,云存储系统34可以根据服务密钥解析服务凭据,云存储系统34还用于通过服务密钥对服务凭据进行校验。可选的,云存储系统34将服务凭据发送给密钥分发中心33,密钥分发中心33通过服务密钥对服务凭据进行解密,以得到Hadoop租户的信息,若解密得到的Hadoop租户的信息与密钥分发中心33记录的Hadoop租户的信息相同,则表示对服务凭据校验成功,否则,则表示对服务凭据校验失败。

可选的,目标Hadoop租户从密钥分发中心33申请一个含时间戳的TGT,再通过该TGT从密钥分发中心33申请目标Hadoop租户对应的名称节点的服务凭据。

可选的,在目标Hadoop租户通过Kerberos认证之后,该目标Hadoop租户对应的名称节点可以生成Delegation Token和Block Access Token,该Delegation Token是该名称节点通过其内部的密钥对目标Hadoop租户的身份信息进行加密得到的,以供目标Hadoop租户通过该Delegation Token访问该名称节点,当目标Hadoop租户后续再要访问其对应的名称节点时,可以携带该Delegation Token,该名称节点在获取到Delegation Token之后,通过其内部的密钥对Delegation Token进行解密,以得到目标Hadoop租户的身份信息,若解密得到的目标Hadoop租户的身份信息与该名称节点记录的目标Hadoop租户的身份信息相同,则表示对目标Hadoop租户认证成功,否则,则表示对目标Hadoop租户认证失败。该BlockAccess Token是该名称节点通过其内部的密钥对目标Hadoop租户的身份信息进行加密得到的,以供目标Hadoop租户通过该Block Access Token访问数据节点,当目标Hadoop租户后续再要访问其对应的数据节点时,可以先将该Block Access Token发送给名称节点,该名称节点在获取到Block Access Token之后,通过其内部的密钥对Block Access Token进行解密,以得到目标Hadoop租户的身份信息,若解密得到的目标Hadoop租户的身份信息与该名称节点记录的目标Hadoop租户的身份信息相同,则表示对目标Hadoop租户认证成功,否则,则表示对目标Hadoop租户认证失败。

综上,本申请实施例提供一种基于云存储的Hadoop集群的多租户认证系统,其中,在云存储系统基于统一认证中心认证的情况下,本申请提供的多租户认证系统支持Hadoop集群基于Kerberos的多租户认证,包括:云存储系统基于统一认证方式对云存储租户进行认证,只有对云存储租户认证通过,第一设备才可以将服务密钥配置到云存储系统中,其中,云存储系统可以通过策略标识来识别云存储租户,进而获取分配给云存储租户对应的名称节点的服务密钥。密钥分发中心向Hadoop租户对应的名称节点分配服务凭据。目标Hadoop租户对应的第二设备向云存储系统发送服务凭据。云存储系统根据服务密钥解析服务凭据,以获取目标Hadoop租户的信息,并根据目标Hadoop租户的信息对目标Hadoop租户进行认证。即通过密钥分发中心授权的Hadoop租户才可以访问对应的名称节点。这种多租户认证系统结合统一认证和Kerberos认证方式,从而可以适用于Hadoop集群的多租户认证。

本申请还存在如下情况:某些Hadoop租户部署在VPC之外的公网上,基于此,密钥分发中心33可以配置一个外部互联网协议地址(Internet Protocol Address,IP),以供这些Hadoop租户访问密钥分发中心33。具体地,图4为本申请另一实施例提供的基于云存储的Hadoop集群的多租户认证系统的示意图,如图4所示,可选的,密钥分发中心33可以向目标Hadoop租户发送目标Hadoop租户对应的名称节点分配服务凭据,目标Hadoop租户向其对应的名称节点发送HTTP消息,该HTTP消息携带该服务凭据,可选的,该HTTP消息还携带密钥分发中心33对应文件的统一资源标识符(Uniform Resource Identifier,URI),其中,该URI与该文件的命名空间具有第四对应关系,命名空间与该文件对应的文件桶名具有第五对应关系、文件桶名与Hadoop租户具有第六对应关系,Hadoop租户与服务密钥具有第七对应关系;其中,多个或者一个URI对应一个命名空间,一个命名空间对应一个文件桶名,一个或多个文件桶名可以对应一个Hadoop租户,一个Hadoop租户对应一个服务密钥。

相应的,云存储系统34还用于根据URI和第四对应关系确定命名空间,根据命名空间和第五对应关系确定文件桶名,并根据文件桶名和第六对应关系确定Hadoop租户,根据Hadoop租户和第七对应关系确定服务密钥。

需要说明的是,本实施例所提供的基于云存储的Hadoop集群的多租户认证系统与上一实施例提供的基于云存储的Hadoop集群的多租户认证系统区别在于,本实施例中,某些Hadoop租户部署在VPC之外的公网上,基于此,密钥分发中心33可以配置一个IP,以供这些Hadoop租户访问密钥分发中心33,除此之外,本实施例与上一实施例的内容相同,对于重复内容,在此不再赘述。

综上,本申请提供一种基于云存储的Hadoop集群的多租户认证系统,其中,在云存储系统基于统一认证中心认证的情况下,本申请提供的多租户认证系统支持Hadoop集群基于Kerberos的多租户认证,包括:云存储系统基于统一认证方式对云存储租户进行认证,只有对云存储租户认证通过,第一设备才可以将服务密钥配置到云存储系统中。其中,云存储系统可以通过URI和第四对应关系确定命名空间,根据命名空间和第五对应关系确定文件桶名,并根据文件桶名和第六对应关系确定Hadoop租户,根据Hadoop租户和第七对应关系确定服务密钥。密钥分发中心向Hadoop租户对应的名称节点分配服务凭据。Hadoop租户对应第二设备向云存储系统发送服务凭据。云存储系统根据确定的服务密钥解析服务凭据,以获取Hadoop租户的信息,并根据Hadoop租户的信息对Hadoop租户进行认证。即通过密钥分发中心授权的Hadoop租户才可以访问对应的名称节点。这种多租户认证系统结合统一认证和Kerberos认证方式,从而可以适用于Hadoop集群的多租户认证。

图5为本申请一实施例提供的一种基于云存储的Hadoop集群的多租户认证方法的流程图,如图5所示,方法应用于上述实施例接收的多租户认证系统,如上述实施例提供的,该多租户认证系统包括:云存储租户对应的第一设备、Hadoop集群对应的第二设备、统一认证中心、密钥分发中心KDC和云存储系统,Hadoop集群包括:Hadoop租户,Hadoop租户与第二设备具有对应关系,云存储系统包括:名称节点,云存储租户和Hadoop租户与名称节点具有对应关系。相应的,多租户认证方法包括如下步骤:

步骤S501:第一设备向名称节点分配服务密钥。

步骤S502:统一认证中心向云存储租户分配AK/SK。

步骤S503:第一设备向云存储系统发送AK/SK和云存储租户的信息。

云存储租户的信息包括:服务密钥。

步骤S504:云存储系统通过AK/SK对云存储租户进行认证,若认证成功,则存储云存储租户的信息。

步骤S505:密钥分发中心向Hadoop租户对应的名称节点分配服务凭据,服务凭据为通过服务密钥加密的Hadoop租户的信息。

步骤S506:第二设备向云存储系统发送服务凭据。

步骤S507:云存储系统根据服务密钥解析服务凭据,以获取Hadoop租户的信息,并根据标Hadoop租户的信息对Hadoop租户进行认证。

可选的,一个云存储租户与一个名称节点对应,或者,一个云存储租户与多个名称节点对应,或者,多个云存储租户与一个名称节点对应,本申请对云存储租户与名称节点之间的对应关系不做限制。

可选的,一个Hadoop租户与一个名称节点对应,或者,一个Hadoop租户与多个名称节点对应,或者,多个Hadoop租户与一个名称节点对应,本申请对Hadoop租户与名称节点之间的对应关系不做限制。

可选的,第一设备可以是云存储租户所登录的VM或者物理设备,任一个Hadoop租户对应的第二设备可以是该Hadoop租户所登录的VM或者物理设备。物理设备可以为服务器。至少一个第二设备与至少一个Hadoop租户之间具有一一对应关系,或者,多个Hadoop租户对应一个第二设备,或者,一个Hadoop租户对应多个第二设备,本申请对Hadoop租户与第二设备之间的对应关系不做限制。

统一认证中心可以被理解为具有统一认证功能的一个独立设备或者集成系统,比如该统一认证中心可以是一台具有统一认证功能的服务器,或者可以是由多台服务器构成的集成系统,该集成系统具有云存储系统的统一认证功能。

密钥分发中心可以被理解为具有Kerberos认证功能的一个独立设备、集成系统或者是至少一个VM,比如该密钥分发中心可以是一台具有Kerberos认证功能的服务器,或者可以是由多台服务器构成的集成系统,该集成系统具有Kerberos认证功能。

云存储系统可以是由一台云服务器或者多台云服务器构成的云存储系统。

可选的,第一设备通过密钥分发中心的kinit命令为云存储租户对应的名称节点分配服务密钥。该服务密钥可以包含在该名称节点的密钥表(Keytab)文件中。其中,可以通过函数,如REST API setNameNodeServiceKey()实现向云存储租户对应的名称节点分配服务密钥。

可选的,云存储租户的信息还包括:云存储租户的标识。AK/SK和云存储租户的信息可以携带第一设备30向云存储系统34发送的HTTP请求消息中。

可选的,云存储系统通过服务密钥对服务凭据进行校验。

综上,本申请提供的多租户认证方法,应用于多租户认证系统,其内容可参考方法实施例部分,该多租户认证方法具有如下效果:云存储系统基于统一认证方式对云存储租户进行认证,只有对云存储租户认证通过,第一设备才可以将服务密钥配置到云存储系统中,其中,云存储系统可以通过策略标识来识别云存储租户,进而获取分配给云存储租户对应的名称节点的服务密钥。密钥分发中心向Hadoop租户对应的名称节点分配服务凭据。目标Hadoop租户对应的第二设备向云存储系统发送服务凭据。云存储系统根据服务密钥解析服务凭据,以获取目标Hadoop租户的信息,并根据目标Hadoop租户的信息对目标Hadoop租户进行认证。即通过密钥分发中心授权的Hadoop租户才可以访问对应的名称节点。这种多租户认证系统结合统一认证和Kerberos认证方式,从而可以适用于Hadoop集群的多租户认证。

在上一实施例的基础上,云存储系统还可以确定服务密钥。具体地,图6为本申请另一实施例提供的一种基于云存储的Hadoop集群的多租户认证方法的流程图,如图6所示,方法应用于上述实施例接收的多租户认证系统,如上述实施例提供的,该多租户认证系统包括:云存储租户对应的第一设备、Hadoop集群对应的第二设备、统一认证中心、密钥分发中心KDC和云存储系统,Hadoop集群包括:Hadoop租户,Hadoop租户与第二设备具有对应关系,云存储系统包括:名称节点,云存储租户和Hadoop租户与名称节点具有对应关系。相应的,多租户认证方法包括如下步骤:

步骤S601:第一设备向名称节点分配服务密钥。

步骤S602:统一认证中心向云存储租户分配AK/SK。

步骤S603:第一设备向云存储系统发送AK/SK和云存储租户的信息,云存储租户的信息包括:服务密钥。

步骤S604:云存储系统通过AK/SK对云存储租户进行认证,若认证成功,则存储云存储租户的信息。

步骤S605:密钥分发中心向Hadoop租户对应的名称节点分配服务凭据,服务凭据为通过服务密钥加密的Hadoop租户的信息。

步骤S606:第二设备向云存储系统发送服务凭据。

步骤S607:第二设备向云存储系统发送策略标识,策略标识为云存储租户所使用的虚拟私有云端点机制的策略标识,其中,策略标识与云存储租户所使用的虚拟私有云VPC之间具有第一对应关系,以及,VPC与云存储租户之间具有第二对应关系,云存储租户和服务密钥具有第三对应关系。

步骤S608:云存储系统根据策略标识和第一对应关系确定VPC,根据第二对应关系和VPC确定云存储租户,并根据第三对应关系和云存储租户确定服务密钥。

步骤S609:云存储系统根据服务密钥解析服务凭据,以获取Hadoop租户的信息,并根据标Hadoop租户的信息对Hadoop租户进行认证。

可选的,方法还包括:第一设备建立第一对应关系、第二对应关系和第三对应关系中的至少一项。

其中,步骤S601至步骤S606与步骤S501至步骤S506相同,步骤S609与步骤S507相同,其内容和效果可参考上述系统实施例部分,本实施例与上一实施例的区别在于,在步骤S609之前,还包括:云存储系统确定服务密钥的方法,其内容和效果也可参考上述系统实施例部分。

在图5对应实施例的基础上,云存储系统还可以确定服务密钥。本实施例与上一实施例所提供的方案为并列方案,具体地,图7为本申请再一实施例提供的一种基于云存储的Hadoop集群的多租户认证方法的流程图,如图7所示,方法应用于上述实施例接收的多租户认证系统,如上述实施例提供的,该多租户认证系统包括:云存储租户对应的第一设备、Hadoop集群对应的第二设备、统一认证中心、密钥分发中心KDC和云存储系统,Hadoop集群包括:Hadoop租户,Hadoop租户与第二设备具有对应关系,云存储系统包括:名称节点,云存储租户和Hadoop租户与名称节点具有对应关系。相应的,多租户认证方法包括如下步骤:

步骤S701:第一设备向名称节点分配服务密钥。

步骤S702:统一认证中心向云存储租户分配AK/SK。

步骤S703:第一设备向云存储系统发送AK/SK和云存储租户的信息。

云存储租户的信息包括:服务密钥。

步骤S704:云存储系统通过AK/SK对云存储租户进行认证,若认证成功,则存储云存储租户的信息。

步骤S705:密钥分发中心向Hadoop租户对应的名称节点分配服务凭据,服务凭据为通过服务密钥加密的Hadoop租户的信息。

步骤S706:第二设备向云存储系统发送服务凭据。

步骤S707:第二设备向云存储系统发送Hadoop租户的文件对应的统一资源标识符URI,URI与文件对应的命名空间具有第四对应关系,命名空间与文件对应的文件桶名具有第五对应关系、文件桶名与Hadoop租户具有第六对应关系,Hadoop租户与服务密钥具有第七对应关系。

步骤S708:云存储系统根据URI和第四对应关系确定命名空间,根据命名空间和第五对应关系确定文件桶名,并根据文件桶名和第六对应关系确定Hadoop租户,根据Hadoop租户和第七对应关系确定服务密钥。

步骤S709:云存储系统根据服务密钥解析服务凭据,以获取Hadoop租户的信息,并根据标Hadoop租户的信息对Hadoop租户进行认证。

可选的,方法还包括:第一设备建立第四对应关系、第五对应关系、第六对应关系和第七对应关系中的至少一项。

其中,步骤S701至步骤S706与步骤S501至步骤S506相同,步骤S709与步骤S507相同,其内容和效果可参考上述系统实施例部分,本实施例与上一实施例的区别在于,在步骤S709之前,还包括:云存储系统确定服务密钥的方法,其内容和效果也可参考上述系统实施例部分。

本申请还提供一种云存储系统,该云存储系统可以是由一台云服务器或者多台云服务器构成的云存储系统。该云存储系统的功能可参考上述实施例,本申请对此不再赘述。

本申请还提供一种多租户认证方法,该方法包括:云存储系统通过AK/SK对云存储租户进行认证,若认证成功,则存储云存储租户的信息;云存储系统根据服务密钥解析服务凭据,以获取Hadoop租户的信息,并根据目标Hadoop租户的信息对Hadoop租户进行认证。其内容和效果参考上述实施例,本申请对此不再赘述。

本申请还提供一种计算机存储介质,存储介质包括计算机指令,当指令被计算机执行时,使得计算机实现上述的多租户认证方法,其内容和效果可参考方法实施例。

本申请还提供一种计算机程序产品,该程序产品包括计算机指令,当指令被计算机执行时,使得计算机实现上述的多租户认证方法,其内容和效果可参考方法实施例。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号