AD域功能是微軟Windows服務器的活動目錄所構建的一種網絡管理架構,它提供了一種標準化方法創建、組織和管理計算機網絡中的用戶、計算機、服務等資源,為企業提供集中管理用戶身份驗證、授權和訪問控制的能力。AD域中的管理節點叫做域控制器DC,域控制器實現對AD域中資源的具體管理。
天翼云支持用戶對VPC內的域控制器進行用戶和文件系統訪問權限管理。通過將文件系統加入Windows的AD域服務,天翼云彈性文件服務可以實現基于AD域的用戶身份認證及文件系統級別的權限訪問控制,文件系統可以設置通過AD域用戶身份或者匿名用戶身份(nobody)掛載訪問,進而實現文件或文件夾的權限控制。
基本概念
Kerberos協議
Kerberos是一種計算機網絡認證協議,使用對稱加密技術為客戶端/服務器應用程序提供強身份驗證。目前主流的Kerberos實現版本有兩個,一種是麻省理工版的mit-krb5,主要支持DES加密算法;一種是開源社區的heimdal-krb5,主要支持AES、Triple DES和RC4等加密算法;Heimdal Krb5還提供了跨平臺的支持,包括Windows、Linux、MacOS X等。Kerberos中有三種核心角色:
- 服務端(Server):域內提供具體服務的應用程序或服務器,如Samba Server。每個服務端都有一個唯一的服務主體名稱(SPN),用于在網絡中標識自己。
- 客戶端(Client):需要使用kerbores服務的客戶端,如AD域中的另一臺Windows節點或者用戶。
- 密鑰分發中心(KDC):作為客戶端和服務端都信任的第三方,主要提供許可證和會話秘鑰。KDC上運行著認證服務器(Athentication Service,AS)和許可證服務器(Tickt Granting Service,TGS)。AS 專門用來認證客戶端的身份并發放客戶用于訪問 TGS 的許可證認購權證(TGT);TGS 用來發放客戶端訪問服務端時所需的許可證(Service Ticket)。
keytab
keytab 是一種用于在Kerberos 認證系統中存儲主體(principal)的密鑰信息的文件,包含principals和加密principal key,用于在不需要用戶輸入密碼的情況下進行身份驗證。每個密鑰條目在keytab 文件中通常由以下部分組成:
- 主體名稱:明確標識該密鑰所屬的主體,例如“service/host.example.com@exp.com”。
- 加密類型:指示用于加密密鑰的算法,常見的有 AES、DES 等。
- 密鑰值:實際的加密密鑰數據。
keytab文件對于每個host是唯一的,因為key中包含hostname。由于服務器上可以訪問Keytab文件即可以用principal的身份通過Kerberos的認證,所以keytab文件應該被妥善保存,確保只有少數必要用戶可以訪問。
服務實例
在AD域中,服務實例指的是一個特定的服務運行在特定計算機或服務器上的單個實例。服務實例通常與特定的服務賬號相關聯,用于管理服務的權限和身份驗證。服務實例在AD中是通過服務主體名稱(Service Principal Name,SPN)來標識的。
服務主體SPN
在AD域中,服務主體(Service Principal Name,SPN)用于標志一個服務實例。SPN的作用在于Kerberos身份驗證過程中,將服務實例與服務登錄帳戶相關聯。當客戶端需要訪問某個服務時,它會使用SPN來查詢和驗證服務的身份。在AD域中,服務可以運行在不同的主機上,而一個主機上也可以運行多個服務。SPN的格式包括服務類型和主機名或域名,客戶端通過SPN訪問某個服務實例。
工作原理
天翼云提供基于Kerberos協議的認證鑒權方式,將用戶加入到AD域中,域控制器通過秘鑰表(keytab)授權成員訪問彈性文件服務。用戶認證及訪問鑒權流程如下:
- 管理員在域控制器上生成keytab文件,詳見
- 在天翼云控制臺為目標文件系統開啟AD域功能,并將keytab文件上傳,具體操作見加入AD域。
- 文件服務器保存用戶通過控制臺上傳的keytab文件,用于后續AD域內客戶端認證和鑒權。
- 用戶通過AD域內云主機發起訪問CIFS文件系統請求。
- 文件服務器通過查詢向云主機返回是否支持Kerberos協議鑒權。
- 云主機向AD域控制器發起用戶認證,Kerberos對用戶信息進行加密。
- 域控制器向云主機返回加密后的用戶信息。
- 云主機將用戶加密信息發送給文件服務器。
- 文件服務器根據用戶上傳的Keytab文件解密用戶信息。
- 認證通過后,文件服務器根據解密所得的用戶權限信息提供訪問服務。
關鍵特性
AD域作為Windows的一項企業級能力,有以下2個關鍵特性,適用于廣泛的應用場景。
- 用戶賬戶管理
企業可以通過 AD 域集中管理員工的用戶賬戶,包括創建、修改、刪除用戶賬號,重置密碼等操作。適用于一些大型組織和機構,或進行分支機構管理。
- 資源訪問控制
文件系統中存儲企業內部各種資源,AD域可以根據用戶角色控制文件系統中文件和文件夾的訪問權限,保證資源池安全。