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域可以根据用户角色控制文件系统中文件和文件夹的访问权限,保证资源池安全。