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認證分為如下四個階段:
客戶端請求TGT:當客戶端用戶(Principal)訪問已開啟Kerberos認證的數據源時,會先向KDC請求頒發一個認證憑證TGT,作為客戶端向KDC請求特定服務的身份證明。
KDC發放TGT:KDC收到請求后,先對客戶端進行身份認證,認證通過后,KDC會以加密形式為客戶端發放一個有使用期限的認證憑證TGT。
客戶端請求訪問服務器:客戶端獲取TGT后,會根據需要訪問的服務名稱向服務器請求訪問特定服務資源。
服務器認證客戶端:服務器收到請求后,先對客戶端進行身份認證,認證通過后,才會允許客戶端正常訪問服務資源。
Kerberos認證過程中需要使用keytab認證文件和krb5.conf配置文件完成認證行為,其中krb5.conf文件主要用于存儲KDC服務器的相關配置,keytab文件用于存儲資源主體的身份驗證憑據,包含prinncipals和加密princiall key。使用Kerberos認證前,需要先將這兩個文件上傳到認證文件管理頁面,并在數據源配置頁面完成認證文件引用和配置,即可使用Kerberos認證。上傳認證文件和不同數據源類型的Kerberos配置參考請參見第三方認證文件管理和支持Kerberos認證的數據源。
支持Kerberos認證的數據源
Kerberos支持的數據源類型及配置指引如下所示:
數據源類型 | 配置指引 |
HBase | |
HDFS | |
Hive |