活动目录(Active Directory)是面向Windows Standard Server、Windows Enterprise Server以及 Windows Datacenter Server的目录服务。活动目录服务是Windows 2000操作系统平台的中心组件之一。理解活动目录对于理解Windows 2000的整体价值是非常重要的。

    Active Directory简介

    活动目录(Active Directory)是面向Windows Standard Server、Windows Enterprise Server以及 Windows Datacenter Server的目录服务。(Active Directory不能运行在Windows Web Server上,但是可以通过它对运行Windows Web Server的计算机进行管理。)Active Directory存储了有关网络对象的信息,并且让管理员和用户能够轻松地查找和使用这些信息。Active Directory使用了一种结构化的数据存储方式,并以此作为基础对目录信息进行合乎逻辑的分层组织。

    Microsoft Active Directory 服务是Windows 平台的核心组件,它为用户管理网络环境各个组成要素的标识和关系提供了一种有力的手段。

    目录形式的数据存储

    人们经常将数据存储作为目录的代名词。目录包含了有关各种对象 [例如用户、用户组、计算机、域、组织单位(OU)以及安全策略] 的信息。这些信息可以被发布出来,以供用户和管理员的使用。

    目录存储在被称为域控制器的服务器上,并且可以被网络应用程序或者服务所访问。一个域可能拥有一台以上的域控制器。每一台域控制器都拥有它所在域的目录的一个可写副本。对目录的任何修改都可以从源域控制器复制到域、域树或者森林中的其它域控制器上。由于目录可以被复制,而且所有的域控制器都拥有目录的一个可写副本,所以用户和管理员便可以在域的任何位置方便地获得所需的目录信息。

    目录数据存储在域控制器上的Ntds.dit文件中。我们建议将该文件存储在一个NTFS分区上。有些数据保存在目录数据库文件中,而有些数据则保存在一个被复制的文件系统上,例如登录脚本和组策略。

    有三种类型的目录数据会在各台域控制器之间进行复制:

    •域数据。域数据包含了与域中的对象有关的信息。一般来说,这些信息可以是诸如电子邮件联系人、用户和计算机帐户属性以及已发布资源这样的目录信息,管理员和用户可能都会对这些信息感兴趣。

    例如,在向网络中添加了一个用户帐户的时候,用户帐户对象以及属性数据便被保存在域数据中。如果您修改了组织的目录对象,例如创建、删除对象或者修改了某个对象的属性,相关的数据都会被保存在域数据中。

    •配置数据。 配置数据描述了目录的拓扑结构。配置数据包括一个包含了所有域、域树和森林的列表,并且指出了域控制器和全局编录所处的位置。

    •架构数据。架构是对目录中存储的所有对象和属性数据的正式定义。Windows Server 2003提供了一个默认架构,该架构定义了众多的对象类型,例如用户和计算机帐户、组、域、组织单位以及安全策略。管理员和程序开发人员可以通过定义新的对象类型和属性,或者为现有对象添加新的属性,从而对该架构进行扩展。架构对象受访问控制列表(ACL)的保护,这确保了只有经过授权的用户才能够改变架构。

    活动目录功能

    活动目录(Active Directory)主要提供以下功能:

  1. 基础网络服务:包括DNS、WINS、DHCP、证书服务等。
  2. 服务器及客户端计算机管理:管理服务器及客户端计算机账户,所有服务器及客户端计算机加入域管理并实施组策略。
  3. 用户服务:管理用户域账户、用户信息、企业通讯录(与电子邮件系统集成)、用户组管理、用户身份认证、用户授权管理等,按省实施组管理策略。
  4. 资源管理:管理打印机、文件共享服务等网络资源。
  5. 桌面配置:系统管理员可以集中的配置各种桌面配置策略,如:界面功能的限制、应用程序执行特征限制、网络连接限制、安全配置限制等。
  6. 应用系统支撑:支持财务、人事、电子邮件、企业信息门户、办公自动化、补丁管理、防病毒系统等各种应用系统。

    Active Directory和安全性

    安全性通过登录身份验证以及目录对象的访问控制集成在Active Directory之中。通过单点网络登录,管理员可以管理分散在网络各处的目录数据和组织单位,经过授权的网络用户可以访问网络任意位置的资源。基于策略的管理则简化了网络的管理,即便是那些最复杂的网络也是如此。

    Active Directory通过对象访问控制列表以及用户凭据保护其存储的用户帐户和组信息。因为Active Directory不但可以保存用户凭据,而且可以保存访问控制信息,所以登录到网络上的用户既能够获得身份验证,也可以获得访问系统资源所需的权限。例如,在用户登录到网络上的时候,安全系统首先利用存储在Active Directory中的信息验证用户的身份。然后,在用户试图访问网络服务的时候,系统会检查在服务的自由访问控制列表(DCAL)中所定义的属性。

    因为Active Directory允许管理员创建组帐户,管理员得以更加有效地管理系统的安全性。例如,通过调整文件的属性,管理员能够允许某个组中的所有用户读取该文件。通过这种办法,系统将根据用户的组成员身份控制其对Active Directory中对象的访问操作。

 

    Active Directory 的架构

    简述

    Active Directory的架构(Schema)是一组定义,它对能够存储在Active Directory中的各种对象——以及有关这些对象的各种信息——进行了定义。因为这些定义本身也作为对象进行存储,Active Directory可以像管理目录中的其它对象一样对架构对象加以管理。架构中包括了两种类型的定义:属性和分类。属性和分类还可以被称作架构对象或元数据。

    分类

    分类,又称对象分类,描述了管理员所能够创建的目录对象。每一个分类都是一组对象的集合。在您创建某个对象时,属性便存储了用来描述对象的信息。例如,“用户”分类便由多个属性组成,其中包括网络地址、主目录等等。Active Directory中的所有对象都是某个对象分类的一个实例。

    架构的扩展

    有经验的开发人员和网络管理员可以通过为现有分类定义新的属性或者定义新的分类来动态地扩展架构。

    架构的内容由充当架构操作主控角色的域控制器进行控制。架构的副本被复制到森林中的所有域控制器上。这种共用架构的使用方式确保了森林范围内的数据完整性和一致性。

    此外,您还可以使用“Active Directory架构”管理单元对架构加以扩展。为了修改架构,您必须满足以下三个要求:

    • 成为“Schema Administrators”(架构管理员)组的成员

    • 在充当架构操作主控角色的计算机上安装“Active Directory架构”管理单元

    • 拥有修改主控架构所需的管理员权限

    在考虑对架构进行修改时,必须注意以下三个要点:

    • 架构扩展是全局性的。 在您对架构进行扩展的时候,您实际上扩展了整个森林的架构,因为对架构的任何修改都会被复制到森林中所有域的所有域控制器上。

    • 与系统有关的架构分类不能被修改。您不能修改Active Directory架构中的默认系统分类;但是,用来修改架构的应用程序可能会添加可选的系统分类,您可以对这些分类进行修改。

    • 对架构的扩展不可撤销。某些属性或者分类的属性可以在创建后修改。在新的分类或者属性被添加到架构中之后,您可以将它置于非激活状态,但是不能删除它。但是,您可以废除相关定义并且重新使用对象标识符(OID)或者显示名称,您可以通过这种方式撤销一个架构定义。

    有关架构修改的更多信息,请通过参阅 Microsoft Windows 资源工具包 。

    Active Directory不支持架构对象的删除;但是,对象可以被标记为“非激活”,以便实现与删除同等的诸多益处。

    属性

    属性和分类单独进行定义。每一个属性仅仅定义一次,但是可以在多个分类中使用。例如,“Description”(描述)属性可以使用在多个分类中,但是只需在架构中定义一次即可,以保持数据的一致性。

    属性用来描述对象。每一个属性都拥有它自己的定义,定义则描述了特定于该属性的信息类型。架构中的每一个属性都可以在“Attribute-Schema”分类中指定,该分类决定了每一个属性定义所必须包含的信息。

    能够应用到某个特殊对象上的属性列表由分类(对象是该分类的一个实例)以及对象分类的任何超类所决定。属性仅仅定义一次,但是可以多次使用。这确保了共享同一个属性的所有分类能够保持一致性。

    多值属性

    属性可以是单值的也可以是多值的。属性的架构定义指定了属性的实例是否必须是多值的。单值属性的实例可以为空,也可以包含一个单值。多值属性的实例可以为空,也可以包含一个单值或多值。多值属性的每一个值都必须是唯一的。

    索引属性

    索引应用于属性,而不是分类。对属性进行索引有助于更快地查询到拥有该属性的对象。当您将一个属性标记为“已索引”之后,该属性的所有实例都会被添加到该索引,而不是仅仅将作为某个特定分类成员的实例添加到索引。

    添加经过索引的属性会影响Active Directory的复制时间、可用内存以及数据库大小。因为数据库变得更大了,所以需要花费更多的时间进行复制。

    多值属性也可以被索引。同单值属性的索引相比,多值属性的索引进一步增加了Active Directory的大小,并且需要更多的时间来创建对象。在选择需要进行索引的属性时,请确信所选择的共用属性,而且能够在开销和性能之间取得平衡。

    一个经过索引的架构属性还可以被用来存储属性的容器所搜索,从而避免了对整个Active Directory数据库进行搜索。这样不仅缩短了搜索所需花费的时间,而且减少了在搜索期间需要使用的资源数量。

    全局编录的角色

    全局编录是一台存储了森林中所有Active Directory对象的一个副本的域控制器。此外,全局编录还存储了每个对象最常用的一些可搜索的属性。全局编录存储了它所在域的所有目录对象的完整副本,以及森林中其它域中所有目录对象的部分副本,所以您不必咨询域控制器即可实施有效的搜索操作。

    全局编录在森林中最初的一台域控制器上自动创建。您可以为任何一台域控制器添加全局编录功能,或者将全局编录的默认位置修改到另一台域控制器上。

    全局编录担当了以下目录角色

    • 查找对象 全局编录允许用户搜索森林所有域的目录信息,而不管数据存储在何处。森林内部的搜索可以利用最快的速度和最小的网络流量得以执行。

    在您从“开始”菜单搜索人员或打印机,或者在某个查询的内部选择了“整个目录”选项的时候,您就是在对全局编录进行搜索。在您输入搜索请求之后,请求便会被路由到默认的全局编录端口3268,以便发送到一个全局编录进行解析。

    • 提供了根据用户主名的身份验证。在进行身份验证的域控制器不知道某个账户是否合法时,全局编录便可以对用户的主名进行解析。例如,如果用户的账户位于example1.域,而用户决定利用这个用户主名从位于example2的一台计算机上进行登录,那么example2.的域控制器将无法找到该用户的账户,然后,域控制器将于全局编录服务器联系,以完成整个登录过程。

    • 在多域环境下提供通用组的成员身份信息。和存储在每个域的全局组成员身份不同,通用组成员身份仅仅保存在全局编录之中。例如,在属于一个通用组的用户登录到一个被设置为Windows 2000本机域功能级别或者更高功能级别的域的时候,全局组将为用户账户提供通用组的成员身份信息。

    如果在用户登录到运行在Windows 2000本机或者更高级别中的域的时候,某个全局编录不可用并且用户先前曾经登录到该域,计算机将使用缓存下来的凭据让用户登录。如果用户以前没有在该域登录过,用户将仅仅能够登录到本地计算机。

    说明:即便全局编录不可用,“Domain Administrators”(域管理员)组的成员也可以登录到网络中。

    查找目录信息

    正如前面所介绍的,Active Directory的设计目的在于为来自用户或应用程序的查询提供有关目录对象的信息。管理员和用户可以使用“开始”菜单中的“搜索”命令轻松对目录进行搜索和查找。客户端程序也可以使用Active Directory服务接口(ADSI)访问Active Directory中的信息。

    Active Directory的主要益处就在于它能够存储有关网络对象的丰富信息。在Active Directory中发布的有关的用户、计算机、文件和打印机的信息可以被网络用户所使用。这种可用性能够通过查看信息所需的安全权限加以控制。

    网络上的日常工作涉及用户彼此之间的通信,以及对已发布资源的连接和访问。这些工作需要查找名称和地址,以便发送邮件或者连接到共享资源。在这方面,Active Directory就像是一个在企业中共享的地址簿 。例如,您可以按照姓、名、电子邮件地址、办公室位置或者其它用户账户属性查找用户。如前所述,信息的查找过程由于使用了全局编录而得到了优化。

    高效的搜索工具

    管理员可以使用“Active Directory用户和计算机”管理单元中的高级“查找”对话框高效率地执行管理工作,并且轻松定制和筛选从目录取得的数据。此外,管理员还可以向组中快速添加对象,并且通过无需浏览的查询帮助查找可能的成员,从而将对网络的影响降低到最小限度。

 

    Active Directory的复制

    复制为目录信息提供了可用性、容错能力、负载平衡以及性能优势。Active Directory 使用多主控复制,您可以在任何一台域控制器上更新目录,而不是只能在一台特定的主域控制器上进行更新。多主控模式具有更出色的容错能力,因为使用了多台域控制器,即使在某一台域控制器停止工作的情况下,复制依然能够继续。

    域控制器可以存储和复制:

    • 架构信息。架构信息定义了可以在目录中创建的对象,以及每隔对象所能够拥有的属性。这些信息是森林中所有域的共用信息。架构数据被复制到森林中的所有域控制器上。

    • 配置信息。配置信息描述了您的部署的逻辑结构,其中包括诸如域结构或者复制拓扑这样的信息。这些信息是森林中所有域的共用信息。配置数据被复制到森林中的所有域控制器上。

    • 域信息。域信息描述了域中所有的对象。数据特定于具体的域,而且不会被分发到其它的任何域中。为了在整个域树或者森林中查找信息,所有域中的所有对象的属性的一个子集被保存在全局编录中。域数据将被复制到域中的所有域控制器上。

    • 应用程序信息。存储在应用程序目录分区中的信息旨在满足用户对这些信息的复制需要,但是这些信息并不是在任何情况下都需要。应用程序数据可以被明确地重新路由到森林中特定于管理用途的域控制器上,以防止产生不必要的复制流量。或者,您可以进行设置,将这些信息复制到域中的所有域控制器上。

    站点在复制过程中的角色

    站点提高了目录信息的复制效率。目录架构和配置信息在整个森林范围内进行复制,而域数据则在域的所有域控制器之间进行复制,并且会被部分地复制到全局编录上。通过有策略地减少复制流量,网络的通信压力也会得到相应的减轻。

    域控制器使用站点和复制变化控制从以下方面对复制实施优化:

    • 通过对所使用的连接不时进行重新评估,Active Directory可以始终使用最有效的网络连接。

    • Active Directory使用多条路由复制发生变化的目录数据,从而提供了容错能力。

    • 由于仅仅需要复制发生了变化的信息,复制开销降到了最小。

    如果某个部署没有按照站点加以组织,域控制器以及客户机之间的信息交换将是混乱和无序的。站点可以改善网络的利用效率。

    Active Directory在站点内部复制目录信息的频度比在站点间的复制频度要更高。这样,拥有最佳连接条件的域控制器——它们很可能需要特殊的目录信息——可以首先得到复制。其它站点中的域控制器则可以获得所有发生了变化的目录信息,但是它们进行复制的频率要低一些,以便节省网络带宽。另外,由于数据在站点间进行复制时经过了压缩处理,所以复制操作所占用的带宽进一步得到了降低。为了实现高效复制,只有在添加或修改了目录信息之后才进行目录的更新。

    如果目录更新始终被分发到域中的所有其它域控制器上,它们将占用大量的网络资源。虽然您可以手动添加或配置连接,或者强迫通过某条特定的连接进行复制,复制仍然可以根据您在“Active Directory Sites and Services”管理工具中提供的信息,通过Active Directory知识一致性检查程序(Knowledge Consistency Checker,KCC)得到自动优化。KCC负责构建和维护Active Directory的复制拓扑。特别地,KCC可以决定何时进行复制,以及每台服务器必须同哪些服务器开展复制。