活动目录在构建核心过程中的八个关键点

原创
系统 Windows
活动目录是一个面向Windows Server级别的目录服务。李洋老师在之前的文章中为我们介绍了活动目录设计中需要遵循的七个原则,今天在这里李洋老师再次为我们讲解有关《活动目录构建核心关键点》。

编者按:活动目录(Active Directory),是一个面向Windows Server级别的目录服务。在活动目录中存储了有关网络对象的信息,并且让管理员和用户能够轻松地查找和使用这些信息。活动目录使用了一种结构化的数据存储方式,并以此作为基础对目录信息进行合乎逻辑的分层组织。李洋老师在之前的文章中为我们介绍了活动目录设计中需要遵循的七个原则,今天在这里李洋老师再次为我们讲解有关《活动目录构建核心关键点》。关于李洋老师更多对活动目录的内容请参考:51CTO特别专题听专家讲述Windows活动目录

1. 活动目录的由来 

与活动目录概念最相关的就是DOS下的“目录”、“路径”和Windows9X/ME系列操作系统下的“文件夹”,那个时候的“目录”或“文件夹”仅代表一个文件存在磁盘上的位置和层次关系,一个文件生成之后相对来说这个文件的所在目录也就固定了(当然可以删除、转移等,现在不考虑这些),也就是说它的属性也就相对固定了,是静态的。这个目录所能代表的仅是这个目录下所有文件的存放位置和所有文件总的大小,并不能得出其它有关信息,这样就影响到了整体使用目录的效率,也就是影响了系统的整体效率,使系统的整个管理变得复杂。

因为没有相互关联,所以在不同应用程序中同一对象要进行多次配置,管理起来相当繁锁,影响了系统资源的使用效率。为了改变这种效率低下的关系和加强与Internet上有关协议的关联,Microsoft公司决定从WIN2K开始全面改革(Windows 2003、Windows 2008中也使用了该机制),也就是引入活动目录的概念。理解活动目录的关键就在于“活动”两个字,正因为这个目录是活动的,所以它是动态的,它是一种包含服务功能的目录,它可以做到“由此及彼”的联想、映射,如找到了一个用户名,就可联想到它的账号、出生信息、E-mail、电话等所有基本信息,虽然组成这些信息的文件可能不在一块。同时不同应用程序之间还可以对这些信息进行共享,减少了系统开发资源的浪费,提高了系统资源的利用效率。

2. 活动目录的主要概念

活动目录包括两个方面:目录和与目录相关的服务。目录是存储各种对象的一个物理上的容器,从静态的角度来理解这活动目录与以前熟知的“目录”和“文件夹”没有本质区别,仅仅是一个对象,是一实体;而目录服务是使目录中所有信息和资源发挥作用的服务,活动目录是一个分布式的目录服务,信息可以分散在多台不同的计算机上,保证用户能够快速访问,因为多台机上有相同的信息,所以在信息容氏方面具有很强的控制能力,正因如此,不管用户从何处访问或信息处在何处,都对用户提供统一的视图。

理解活动目录,需要了解其有关名词,如下:

1) 名字空间:

从本质上讲,活动目录就是一个名字空间,可以把名字空间理解为任何给定名字的解析边界,这个边界就是指这个名字所能提供或关联、映射的所有信息范围。通俗地说就是在服务器上通过查找一个对象可以查到的所有关联信息总和,如一个用户,如果在服务器已给这个用户定义了讲如:用户名、用户密码、工作单位、联系电话、家庭住址等,那上面所说的总和广义上理解就是“用户”这个名字的名字空间,因为只输入一个用户名即可找到上面所列的一切信息。名字解析是把一个名字翻译成该名字所代表的对象或者信息的处理过程。举例来说,在一个电话目录形成一个名字空间中,可以从每一个电话户头的名字可以被解析到相应的电话号码,而不是象现在一样名字是名字,号码归号码,根本不能横向联系。Windows 操作系统的文件系统也形成了一个名字空间,每一个文件名都可以被解析到文件本身(包含它应有的所有信息)。

2) 对象:

对象是活动目录中的信息实体,也即通常所见的“属性”,但它是一组属性的集合,往往代表了有形的实体,比如用户账户、文件名等。对象通过属性描述它的基本特征,比如,一个用户账号的属性中可能包括用户姓名、电话号码、电子邮件地址和家庭住址等。

3) 容器:

容器是活动目录名字空间的一部分,与目录对象一样,它也有属性,但与目录对象不同的是,它不代表有形的实体,而是代表存放对象的空间,因为它仅代表存放一个对象的空间,所以它比名字空间小。比如一个用户,它是一个对象,但这个对象的容器就仅限于从这个对象本身所能提供的信息空间,如它仅能提供用户名、用户密码。其它的如:工作单位、联系电话、家庭住址等就不属于这个对象的容器范围了。

4) 目录树:

在任何一个名字空间中,目录树是指由容器和对象构成的层次结构。树的叶子、节点往往是对象,树的非叶子节点是容器。目录树表达了对象的连接方式,也显示了从一个对象到另一个对象的路径。在活动目录中,目录树是基本的结构,从每一个容器作为起点,层层深入, 都可以构成一棵子树。一个简单的目录可以构成一棵树,一个计算机网络或者一个域也可以构成一棵树。

5) 域:

域是网络系统的安全性边界。在独立的计算机上,域即指计算机本身,一个域可以分布在多个物理位置上,同时一个物理位置又可以划分不同网段为不同的域,每个域都有自己的安全策略以及它与其他域的信任关系。当多个域通过信任关系连接起来之后,活动目录可以被多个信任域域共享。

6) 组织单元:

包含在域中特别有用的目录对象类型就是组织单元。组织单元是可将用户、组、计算机和其他单元放入活动目录的容器中,组织单元不能包括来自其他域的对象。组织单元是可以指派组策略设置或委派管理权限的最小作用单位。使用组织单元,您可在组织单元中代表逻辑层次结构的域中创建容器,这样您就可以根据您的组织模型管理帐户、资源的配置和使用,可使用组织单元创建可缩放到任意规模的管理模型。可授予用户对域中所有组织单元或对单个组织单元的管理权限,组织单元的管理员不需要具有域中任何其他组织单元的管理权,组织单元有点象NT时代的工作组。

7) 域树:

域树由多个域组成,这些域共享同一表结构和配置,形成一个连续的名字空间。树中的域通过信任关系连接起来,活动目录包含一个或多个域树。域树中的域层次越深级别越低,一个“.”代表一个层次,如域child.Microsoft.com 就比 Microsoft.com这个域级别低,因为它有两个层次关系,而Microsoft.com只有一个层次。域树中的域是通过双向可传递信任关系连接在一起。由于这些信任关系是双向的而且是可传递的,因此在域树或树林中新创建的域可以立即与域树或树林中每个其他的域建立信任关系。这些信任关系允许单一登录过程,在域树或树林中的所有域上对用户进行身份验证,但这不一定意味着经过身份验证的用户在域树的所有域中都拥有相同的权利和权限。因为域是安全界限,所以必须在每个域的基础上为用户指派相应的权利和权限。

8) 域林:

域林是指由一个或多个没有形成连续名字空间的域树组成,它与上面所讲的域树最明显的区别就在于这些域树之间没有形成连续的名字空间,而域树则是由一些具有连续名字空间的域组成。但域林中的所有域树仍共享同一个表结构、配置和全局目录。域林中的所有域树通过Kerberos 信任关系建立起来,所以每个域树都知道Kerberos信任关系,不同域树可以交叉引用其他域树中的对象。域林都有根域,域林的根域是域林中创建的***个域,域林中所有域树的根域与域林的根域建立可传递的信任关系。

9) 站点:

站点是指包括活动目录域服务器的一个网络位置,通常是一个或多个通过TCP/IP连接起来的子网。站点内部的子网通过可靠、快速的网络连接起来。站点的划分使得管理员可以很方便地配置活动目录的复杂结构,更好地利用物理网络特性,使网络通信处于***状态。当用户登录到网络时,活动目录客户机在同一个站点内找到活动目录域服务器,由于同一个站点内的网络通信是可靠、快速和高效的,所以对于用户来说,他可以在最快的时间内登录到网络系统中。因为站点是以子网为边界的,所以活动目录在登录时很容易找到用户所在的站点,进而找到活动目录域服务器完成登录工作。

10) 域控制器:

域控制器是使用活动目录安装向导配置的Windows Server(Windows 2000,Windows Server 2003或者Windows Server 2008) 的计算机。活动目录安装向导安装和配置为网络用户和计算机提供活动目录服务的组件供用户选择使用。域控制器存储着目录数据并管理用户域的交互关系,其中包括用户登录过程、身份验证和目录搜索,一个域可有一个或多个域控制器。为了获得高可用性和容错能力,使用单个局域网 (LAN) 的小单位可能只需要一个具有两个域控制器的域。具有多个网络位置的大公司在每个位置都需要一个或多个域控制器以提供高可用性和容错能力。#p#

3. 活动目录的逻辑结构

活动目录的逻辑结构非常灵活,有目录树、域、域树、域林等,这些名字都不是实实在在的一种实体,只是代表了一种关系,一种范围,如目录树就是由同一名字空间上的目录组成,而域又是由不同的目录树组成,同理域树是由不同的域组成,域林是由多个域树组成。它们是一种完全的树状、层次结构视图,这种关系可以看成是一种动态关系。

3.1 域、域树、域林

域既是以活动目录为基础的网络系统的逻辑组织单元,是对象(如计算机、用户等)的容器,这些对象有相同的安全需求、复制过程和管理,这一点对于网管人员应是相当容易理解的。域是安全边界,域管理员只能管理域的内部,除非其他的域显式地赋予他管理权限,他才能够访问或管理其他的域。每个域都有自己的安全策略,以及它与其他域的安全信任关系。在这里就涉及到了不同域之间的信任关系及传递关系。

下图给出了域、域树和域林的示意:

域与域之间具有一定的信任关系,域信任关系使得一个域中的用户可由另一域中的域控制器进行验证,才能使一个域中的用户访问另一个域中的资源。所有域信任关系中只有两种域:信任关系域和被信任关系域。信任关系就是域A信任域B,则域B中的用户可以通过域A中的域控制器进行身份验证后访问域A中的资源,则域A与域B之间的关系就是信任关系。被信任关系就是被一个域信任的关系,在上面的例子中域B就是被域A信任,域B与域A的关系就是被信任关系。信任与被信任关系可以是单向的,也可以是双向的,即域A与域B之间可以单方面的信任关系,也可以是双方面的信任关系。

而在域中传递信任关系不受关系中两个域的约束,是经父域向上传递给域目录树中的下一个域,也就是说如果域A信任域B,则域A也就信任域B下面的子域B1、子域B2……,传递信任关系总是双向的:关系中的两个域互相信任(是指父域与子域之间)。默认情况下,域目录树或目录林(目录林可以看做是同一域中的多个目录树组成)中的所有信任关系都是传递的。通过大大减少需管理的委托关系数量,这将在很大程度上简化域的管理。

3.2 组织单元(OU)

组织单元(OU)是一个容器对象,它也是活动目录的逻辑结构的一部分,可以把域中的对象组织成逻辑组,它可以帮助管理员简化管理工作。OU可以包含各种对象,比如用户账户、用户组、计算机、打印机等,甚至可以包括其他的OU,所以可以利用OU把域中的对象形成一个完全逻辑上的层次结构。对于企业来讲,可以按部门把所有的用户和设备组成一个OU层次结构,也可以按地理位置形成层次结构,还可以按功能和权限分成多个OU层次结构。很明显,通过组织单元的包容,组织单元具有很清楚的层次结构,这种包容结构可以使管理者把组织单元切入到域中以反应出企业的组织结构并且可以委派任务与授权。建立包容结构的组织模型能够帮助用户解决许多问题,同时仍然可以使用大型的域、域树中每个对象都可以显示在全局目录,从而用户就可以利用一个服务功能轻易地找到某个对象而不管它在域树结构中的位置。

下图给出了AD中,域、容器、目录树、OU等逻辑概念的示意:

由于OU层次结构局限于域的内部,所以一个域中的OU层次结构与另一个域中的OU层次结构没有任何关系。组织中的不同部门可以成为不同的域,或者一个组织单元,从而采用层次化的命名方法来反映组织结构和进行管理授权。顺着组织结构进行颗粒化的管理授权可以解决很多管理上的头疼问题,在加强中央管理的同时,又不失机动灵活性。#p#

4. 活动目录的物理结构

活动目录中,物理结构与逻辑结构有很大的不同,它们是彼此独立的两个概念。逻辑结构侧重于网络资源的管理,而物理结构则侧重于网络的配置和优化。活动目录的物理结构主要着眼于活动目录信息的复制和用户登录网络时的性能优化。物理结构的两个重要概念是站点和域控制器。

4.1 站点

站点是由一个或多个IP子网组成,这些子网通过高速网络设备连接在一起。站点往往由企业的物理位置分布情况决定,可以依据站点结构配置活动目录的访问和复制拓扑关系,这样能使得网络更有效地连接,并且可使复制策略更合理,用户登录更快速, 活动目录中的站点与域是两个完全独立的概念,一个站点中可以有多个域,多个站点也可以位于同一域中。

4.2 域控制器

域控制器是指运行Windows服务器版本(Windows 2000、Windows Server 2003、Windows Server 2008)的服务器,它保存了活动目录信息的副本。域控制器管理目录信息的变化,并把这些变化复制到同一个域中的其他域控制器上,使各域控制器上的目录信息处于同步。域控制器也负责用户的登录过程以及其他与域有关的操作,比如身份认证、目录信息查找等。一个域可以有多个域控制器。规模较小的域可以只需要两个域控制器,一个实际使用,另一个用于容错性检查。规模较大的域可以使用多个域控制器。

5. LDAP协议简介

LDAP的英文全称是Lightweight Directory Access Protocol,简称为LDAP。它是基于X.500标准的,但是又比它简单许多,并且可以根据需要定制的一种目录服务协议。与X.500不同,LDAP支持TCP/IP,这对访问Internet是必须的。LDAP的核心规范在RFC中都有定义,所有与LDAP相关的RFC都可以在LDAPman RFC网页中找到。

目录服务的工作模型是客户机/服务器模型。1988年,CCITT组织首先创建了X.500标准全面描述了这一模型,包括目录服务器的目录结构、命名方法、搜索机制以及用于客户机与服务器通信的协议DAP(Directory Access Protocol)。此标准很快被ISO组织引用,编号为ISO 9594。但是,在实际应用的过程中,X.500存在着不少障碍。由于DAP这种应用层的协议是严格遵照复杂的ISO七层协议模型制定的,对相关层协议环境要求过多,在许多小系统上无法使用,TCP/IP协议体系的普及更使这种协议越来越不适应需要。在这种情况下,DAP的简化版棗LDAP应运而生。早期设计的LDAP服务器不是独立的目录服务器,主要扮演LDAP客户机与X.500服务器间网关的角色,既是LDAP的服务器又是X.500的客户机。

如今的LDAP服务器可取代X.500服务器而独立提供服务。LDAP服务器的目录组织以“条目”为基本单位,结构类似树形,每一个条目即是树上的一个分枝节点或叶子。一个条目由多个“属性”组成,每个属性又由一个“类型”和一到多个“值”组成。LDAP协议直接基于面向连接的TCP协议实现,定义了LDAP客户机和LDAP服务器间的通信过程和信息格式。LDAP服务器在服务端口(缺省端口号为389)监听,收到客户机的请求后,建立连接,开始会话。活动目录与DNS协议的结合的意义在于使内部网与外部网命名方式保持一致,这样便于整个网络的管理。

LDAP协议是用于查询和检索活动目录信息的目录访问协议。由于它是基于工业标准的目录服务协议,使用 LDAP 的程序可以发展成与其他目录服务共享活动目录信息,这些目录服务同样支持LDAP。活动目录使用LDAP 目录访问协议作为它与其他应用或者目录服务交换信息的手段。LDAP已经成为 目录服务的标准,它比X.500 DAP 协议更为简单实用一些。Microsoft 已经在Exchange Server 系统中提供了LDAP v2 和LDAP v3 的支持, 在Windows Server的活动目录服务中将提供更为全面的支持。#p#

6. AD服务与DNS的关系

DNS(Domain Name Server, 域名服务器)是活动目录的基础。总结来说,AD用于组织资源,DNS用于寻找资源。在活动目录中命名策略基本按照Internet标准来实现,遵照DNS和LDAP3.0两种标准,活动目录中的域和DNS系统中的域采用完全相同的命名方式,即活动目录中的域名就是DNS域名。那么在活动目录中依赖于DNS作为定位服务,实现将名字解析为IP地址。

所以构建活动目录时,必须同时安装配置相应的DNS,无论用户实现IP地址解析还是登录验证,都利用DNS在活动目录中定位服务器。活动目录与DNS系统的这种紧密集成,意味着活动目录同时非常适合于Internet和Intranet环境,这也是微软创建适用于Internet的网络操作系统的思想的一种体现。企业可以把活动目录直接连接到Internet以简化与客户和合作伙伴之间的信息通讯。

另外,DNS服务允许客户使用DNS动态更新协议(RFC 2136)来动态更新资源记录,通过缩短手工管理这些相同记录的时间,提高DNS管理的性能。运行Windows Server的计算机能动态地注册他们的DNS名称和IP地址。

下图给出了AD与DNS的关系,以及对于域中一台具体的计算机,AD命名与DNS命名的对应关系:

 

7. AD中组策略简介

组策略是Active Directory中非常重要的一项技术。组策略是一个允许执行针对用户或计算机进行配置的基础架构。通俗地说,组策略和注册表类似,是一项可以修改用户或计算机设置的技术。组策略和注册表的区别主要在于:注册表只能针对一个用户或一台计算机进行设置,但组策略却可以针对多个用户和多台计算机进行设置。举个例子,在一个拥有1000用户的企业中,如果用注册表来进行配置,可能需要在1000台计算机上分别修改注册表。但如果改用组策略,那只要创建好组策略,然后通过一个合适的级别部署到1000台计算机上就可以了。

组策略和Active Directory结合使用,可以部署在OU,站点和域的级别上,当然也可以部署在本地计算机上,但部署在本地计算机并不能使用组策略中的全部功能,只有和Active Directory配合,组策略才可以发挥出全部潜力。组策略部署在不同级别的优先级是不同的,本地计算机<站点<域<OU。管理员可以根据管理任务,为组策略选择合适的部署级别。

组策略对象存储在两个位置,链接GPO(Group Policy Object)的Active Directory容器和域控制器上的Sysvol文件夹。GPO是组策略设置的集合,是存储在Active Directory中的一个虚拟对象。GPO由组策略容器和组策略模板组成,组策略容器包含GPO的属性信息,存储在域中每台域控制器活动目录中;组策略模板包含GPO的数据,存储在系统盘的/Policies子目录下。

组策略管理可以通过组策略编辑器和组策略管理控制台,组策略编辑器是Windows操作系统中自带的组策略管理工具,可以修改GPO中的设置。组策略管理控制台则是功能更强大的组策略编辑工具,组策略管理控制台可以创建,管理,部署GPO,***的GPMC可以从微软网站下载。#p#

8. 基于AD的认证过程

8.1 NTLM认证

NTLM是用于Windows NT和 Windows 2000/2003/2008 Server 工作组环境的身份验证协议。下图给出了NTLM认证的过程,其基本流程如下:

1) 用户请求访问。用户尝试通过提供用户凭据登录到客户端。登录前,客户端计算机缓存密码的哈希值。客户端向服务器发送一个请求,该请求包括用户名以及纯文本格式的请求。

2) 服务器发送质询消息。服务器生成一个称为质询的 16 字节随机数(即 NONCE),并将它发送到客户端。

3) 客户端发送应答消息。客户端使用由用户的密码生成的一个密码哈希值来加密服务器发送的质询。它以应答的形式将这个加密的质询发回到服务器。

4) 服务器将质询和应答发送到域控制器。服务器将用户名、原始质询以及应答从客户端计算机发送到域控制器。

5) 域控制器比较质询和应答以对用户进行身份验证。域控制器获取该用户的密码哈希值,然后使用该哈希值对原始质询进行加密。接下来,域控制器将加密的质询与客户端计算机的应答进行比较。如果匹配,域控制器则发送该用户已经过身份验证的服务器确认。

6) 服务器向客户端发送应答。假定凭据有效,服务器授予对所请求的服务或资源的客户端访问权。

8.2 Kerberos认证

当客户端对网络服务进行身份验证之后,kerberos v5 协议遵循以下步骤:

1) 客户端从 KDC 请求TGT.

用户试图通过提供用户凭据登录到客户端。客户端计算机上的 Kerberos 服务向密钥发行中心(KDC) 发送一个 Kerberos 身份验证服务请求。该请求包含用户名、请求票证授予票证(ticket-granting ticket,TGT)所获取的服务信息,以及使用用户的长期密钥(即密码)加密的时间戳。(在Windows 2000 Server/Windows Server 2003/ Windows Server 2008操作系统上,域控制器充当 KDC,而 Active Directory 宿主安全帐户数据库)

2) 身份验证服务发送加密的

TGT 和会话密钥。KDC 为来自 Active Directory 的用户获取长期密钥(即密码),然后解密随请求一起传送的时间戳。如果该时间戳有效,则用户是真正的用户。KDC 身份验证服务创建一个登录会话密钥,并使用用户的长期密钥对该副本进行加密。然后,该身份验证服务创建一个 TGT,它包括用户信息和登录会话密钥。***,该身份验证服务使用自己的密钥加密 TGT,并将加密的会话密钥和加密的 TGT 传递给客户端。

3) 客户端从 TGT 请求服务器访问。

客户端使用其长期密钥(即密码)解密登录会话密钥,并在本地缓存它。此外,客户端还将加密的 TGT 存储在它的缓存中。访问网络服务时,客户端向 KDC 票证授予服务(ticket-granting service,TGS)发送一个包含信息的请求,这些信息包括用户名、使用用户登录会话密钥加密的验证者消息、TGT,以及用户想访问的服务(和服务器)名称。

4) TGS 发送加密的会话密钥和票证。

KDC 上的 TGS 使用自己的密钥解密 KDC 并提取登录会话密钥。它使用该登录会话密钥解密验证者消息(通常是时间戳)。如果验证者消息成功解密,TGS 从 TGT 提取用户信息,并使用用户信息创建一个用于访问该服务的服务会话密钥。它使用该用户的登录会话密钥对该服务会话密钥的一个副本进行加密,创建一个具有服务会话密钥和用户信息的服务票证,然后使用该服务的长期密钥(密码)对该服务票证进行加密。然后,TGS 将加密的服务会话密钥和服务票证添加到客户端。

5) 客户端发送服务票证。客户端访问服务时,向服务器发送一个请求。该请求包含验证者消息(时间戳),该消息使用服务会话密钥和服务票证进行加密。

6) 服务器发送加密的时间戳以进行客户端验证。

服务器解密服务票证并提取服务会话密钥。通过使用服务会话密钥,服务器解密验证者消息(时间戳)并计算它。如果验证者通过测试,则服务器使用服务会话密钥对验证者(时间戳)进行加密,然后将验证者传回到客户端。客户端解密时间戳,如果该时间戳与原始时间戳相同,则该服务是真正的,客户端继续连接。

【编辑推荐】

  1. 活动目录设计中需要遵循的七个原则
  2. 如何在多域林中恢复活动目录根域
  3. 小心双刃剑 Ntdsutil对活动目录的管理
  4. 提高活动目录性能与安全的LSASS进程
  5. 替代活动目录管理的PowerShell命令
责任编辑:张浩 来源: 51CTO.com
相关推荐

2011-07-19 09:22:20

活动目录

2022-08-01 07:42:17

线程安全场景

2010-04-25 23:21:57

2010-08-30 15:57:25

2024-09-30 09:56:36

CSV文件Python

2022-05-17 08:56:32

ITCIO领导者

2024-01-10 12:26:16

2022-12-07 12:33:22

云计算

2011-06-27 09:42:46

2023-02-15 14:09:57

云托管云退出策略

2024-09-30 05:43:44

2011-10-27 08:28:41

活动目录

2015-07-27 08:58:29

NAS云存储非结构化数据存储

2021-06-16 09:00:00

区块链加密货币比特币

2022-02-22 14:31:40

人工智能商业智能技术

2022-12-08 08:29:58

特征云计算操作系统

2023-03-24 15:59:20

2010-11-25 16:11:00

活动目录Server 2008

2023-12-31 19:11:26

2024-10-24 16:54:59

数据预处理机器学习
点赞
收藏

51CTO技术栈公众号