DataWorks的数据同步功能目前仅支持Kerberos认证,配置kerberos认证后,可以仅对受信任的应用和服务提供认证,使得只有经过认证的应用和服务才能访问数据资源。本文为您介绍Kerberos的认证机制。

背景信息

Kerberos协议主要用于计算机网络的身份鉴别(Authentication),其特点是用户只需输入一次身份验证信息就可以凭借此验证获得的票据(Ticket-Granting Ticket,网络授权凭证)访问多个服务,即SSO(Single Sign On,单点登录)。使用Kerberos协议时,会在每个Client和Service之间建立共享密钥,服务之间使用密钥进行通信,避免不受信任的服务或应用访问数据资源,因此该协议具有较高的安全性。

使用限制

  • Kerberos认证功能仅支持CDH集群6.X版本,其他版本或者自建集群未经过Kerberos认证测试,可能会导致认证失败。
  • Kerberos认证功能仅支持HBase、HDFS和Hive数据源(后续会逐步支持其他数据源类型,敬请期待)。
  • Kerberos认证功能仅支持在独享数据集成资源组上使用。

Kerberos认证原理

Kerberos是一种基于对称密钥的第三方认证协议,客户端和服务器均是依赖KDC(Kerberos的服务端程序,即密钥分发中心)来进行身份认证。有关Kerberos的详细介绍请参见概述原理图

如上图所示,在DataWorks上进行Kerberos认证分为如下四个阶段:

  1. 客户端请求TGT:当客户端用户(Principle)访问已开启Kerberos认证的数据源时,会先向KDC请求颁发一个认证凭证TGT,作为客户端向KDC请求特定服务的身份证明。
  2. KDC发放TGT:KDC收到请求后,先对客户端进行身份认证,认证通过后,KDC会已加密形式为客户端发放一个有使用期限的认证凭证TGT。
  3. 客户端请求访问服务器:客户端获取TGT后,会根据需要访问的服务名称向服务器请求访问特定服务资源。
  4. 服务器认证客户端:服务器收到请求后,先对客户端进行身份认证,认证通过后,才会允许客户端正常访问服务资源。

Kerberos认证过程中需要使用keytab认证文件和krb5.conf配置文件完成认证行为,其中krb5.conf文件主要用于存储KDC服务器的相关配置,keytab文件用于存储资源主体的身份验证凭据,包含pricipals和加密pricipal key。使用Kerberos认证前,需要先将这两个文件上传到认证文件管理页面,并在数据源配置页面完成认证文件引用和配置,即可使用Kerberos认证。上传认证文件和不同数据源类型的Kerberos配置参考请参见上传和引用认证文件支持Kerberos认证的数据源

支持Kerberos认证的数据源

Kerberos支持的数据源类型及配置指引如下所示:
数据源类型 配置指引
HBase 配置HBase数据源
HDFS 配置HDFS数据源
Hive 配置Hive数据源