计算机应用研究
APPLICATION RESEARCH OF COMPUTERS
2000　Vol.17　No.5　P.96-100



Windows 2000活动目录技术
梁晋　施仁　梁峰　彭波　刘洋
摘  要  介绍了Windows 2000的活动目录技术。活动目录是Windows 2000的目录服务，是Windows 2000分布网络的基础，它存储网络对象的信息，使用户可以方便地访问这些信息。活动目录采用一个结构化的数据存储，集成了登录验证、访问控制的安全性。只需要一次登录用户就可访问基于策略授予的所有网络资源访问权限。
关键词  活动目录  目录服务
1  前言
　　随着网络技术的发展，网络管理的目录服务逐渐深入人心。与传统的大型主机的模式相比，客户机/服务器的模式更加优越，因为在这一模式下，网络管理员和用户具有了更大的灵活性，更好的扩展性和更加广泛的应用软件选择性。但是客户机/服务器模式的灵活性也有一定的弊病，比如用户经常性地在网络中迷失自己，找不到诸如打印机之类的网络资源；网络管理员也没有一个统一的网络资源管理方法，往往充当救火员的角色，宏观的疏导和配置能力不够。
　　微软在Windows NT Server 4.0中就已经贯彻了目录服务的思想，NT的“域(Domain)”的概念是目录服务的一个基本单元。“一次登录(Single London)”在Windows NT Server的环境下有了具体的应用，比如Internet Information Server、Exchange Server、SQL Server等都可以与Windows NT Server的帐号验证集成起来，用户一次登录就可以获得Web、E_mail和数据库等多种多样的网络服务。
　　Windows 2000 Server在Windows NT Server 4.0的基础上，进一步发展了“活动目录(Active Directory)”。Microsoft Windows 2000把现在的Windows NT 目录发展为一个完全可扩展，可伸缩的目录服务，既能满足商业ISP的需要，又能满足企业内互联网的需要。
2  活动目录介绍
　　目录是一个存储网络对象信息的分层结构。诸如活动目录的目录服务则提供存储目录数据及网络用户和管理员使用这些数据的方法。例如，活动目录存储诸如姓名、口令和电话号码等有关用户帐户的信息。并使同一网络中的其他授权用户可以访问这些信息。
　　活动目录是Windows 2000 Server可扩展和调整的目录服务。它存储有关网络对象的信息并使管理员和用户可以方便地查找和使用该信息。活动目录的目录服务将结构化数据存储作为目录信息逻辑和分层组织的基础。安全性通过登录验证以及对目录中对象的访问控制与活动目录相集成。使用单个网络登录，活动目录管理员可以通过自身的网络管理目录数据和组织，并且授权网络用户可以访问网络中各处的资源。基于策略的管理可以使即便是最复杂的网络管理变得轻而易举。活动目录的设计思想和目标，是将一个企业的所有计算机设备和人员管理，按照类型、功能分层(树或林)管理，简化日常管理操作。
　　要查看和管理活动目录主要需使用系统提供的三个管理工具：
　　(1)Active Directory用户和计算机；
　　(2)Active Directory域和信任关系；
　　(3)Active Directory站点和服务。
　　另外，系统的Active Directory Schema和ADSI工具主要用于活动目录的开发使用。由于“Active Directory域和信任关系”和“Active Directory站点和服务”工具用于管理多个服务器或多个域之间的关系和设置，我们暂时不管。“Active Directory用户和计算机”工具是用户对活动目录进行配置时使用最频繁的工具。使用“网络邻居”可查看网络发布的活动目录信息。
2.1  活动目录特点
　　活动目录是在Windows NT 4.0域的基础上发展起来的，是Windows 2000的核心。使用活动目录具有以下优点：
　　(1)信息安全性
　　安全性与活动目录完全集成在一起。不仅可以针对目录中的每个对象定义访问控制，还可对其每个属性进行操作。可以指定哪些组、用户具有查看或使用对象的权限，可针对对象进行何种操作。例如，某个人可能具有更改对象属性的权限，另一个人则可以查看属性，而第三个人则可能根本没有查找对象的权限。
　　可以授予对对象每种单个属性选择性访问的权限。例如，可以授予所有用户查看网络中用户姓名和电话号码的权限，而与此同时却限制对用户对象所有其它属性的访问。默认情况下，权限是可继承的。指定给某特定对象的权限会自动应用于该对象的所有子对象，也可以封锁权限的继承性。
　　活动目录为安全策略提供应用程序的存储和范围。安全策略可以包括帐户信息，诸如域宽口令限制或对某特定域资源的权利。安全策略通过组策略执行。
　　管理员可将某些特殊管理权利分派到其他个人和组。这种权限分派允许明确谁具有管理部分网络的权限。可以将特殊部分的管理分派给单个管理员，而不必拥有对大部分网络具有广泛权限的管理员授权。
　　Windows 2000 Server支持多种网络安全协议，这些协议提供了更强大、更有效的安全性，以及对Internet安全协议的支持和与早期Windows协议的兼容性。
　　Windows 2000支持的安全协议包括：
　　①Kerberos v5；
　　②SSL (Secure Sockets Layer―安全套接字层)；
　　③DPA(Distributed Password Authentication―分布式口令验证)；
　　④Windows NT NTLM。
　　Kerberos v5协议是Windows 2000中网络验证的默认协议。Kerberos协议是一个已经成熟的安全标准，适用于客户机和服务器的相互验证，以及与非Windows平台的可操作性。
　　Windows 2000支持基于公用密钥的协议，提供Internet之上的保密性和可靠性。这包括对SSL 3.0的支持，以及Internet浏览器和网络服务器间连接的标准。Windows 2000还支持DPA技术。可以利用ISP管理自己企业的用户帐户信息。支持Windows NT version 4.0和早期版本使用的NTLM协议，是为确保Windows 2000 Server与运行Windows NT和Windows NT网络的客户机软件的计算机做到完全内部可操作。
　　(2)基于策略的管理
　　活动目录的目录服务包括数据存储和逻辑、分层结构。作为逻辑结构，为策略应用提供上下文关联的分层结构。组策略用于确定：对目录对象和域资源的访问，用户可使用哪些域资源(诸如应用程序)，这些域资源是如何配置的。
　　例如，组策略可确定用户登录后在计算机上可看到哪些应用程序，当Microsoft SQL Server在服务器上启动时，有多少用户可与其连接，以及当文档或服务移至不同部门或组时，用户可访问哪些内容。组策略使管理员只需管理少数策略，而不是管理大量的用户和计算机。
　　(3)扩展性
　　活动目录是可扩展的，这意味着管理员可以将对象的新类添加到架构(Schema)中，而且还可以将新属性添加到现有的对象类中。例如，可以将“购买权限”属性添加到用户对象类型中，而后将每个用户的购买权限作为用户帐户进行存储。可以使用活动目录架构(Active Directory Schema)控制台，或通过创建基于ADSI、LDIFDE、CSVDE的命令行程序的脚本，将对象和属性添加到目录中。
　　(4)可调整性
　　活动目录可包括一个或多个域，每个域又可带有一个或多个域控制器，允许调整目录以满足任何网络的要求。多域可组合成域目录树或林。目录将架构和配置信息分配给目录中的所有域控制器。该信息存储在初始域控制器中，而且可复制到目录中任何其它域控制器中。
将目录配置成域目录树或林，可以针对不同策略对目录的名称空间进行分区，并调整目录使其容纳大量资源和对象。
　　(5)信息复制
　　活动目录使用多主复制，目录存储在初始域控制器中并可复制到域、域目录树或林的每个域中，对目录数据所作的更改将复制到所有域控制器中，每个域控制器存储和保留一个目录的完整副本。
　　复制技术保证信息的有效性、容错性，提供网络的负载平衡。在一个域中的多个域控制器，可提供容错和网络负载平衡。如果域中的某个域控制器减慢、停止或失败，同一域中的其它域控制器可提供必要的目录访问，因为它们包含着相同的目录数据。域中的多个站点可提高目录的性能，在广域网中(WAN)，目录访问由每个网络客户机最近的域控制器执行。
　　(6)与DNS集成
　　活动目录使用DNS(Domain Name System-域名解析系统)。DNS是一个Internet的标准服务，它可以很容易地将翻译主机名称，如computer.microsoft.com翻译成数字的TCP/IP地址。DNS域和计算机名称使用分层结构的“友好”名称，例如，名称maincampus.microsoft.com既是DNS也是Windows 2000域名。
　　(7)与其它目录服务的内部操作
　　由于活动目录是基于工业标准的目录访问协议，如Lightweight Directory Access Protocol (LDAP) version 3和Name Service Provider Interface(NSPI)，可以与使用这些协议的其它目录服务实现内部操作。LDAP是用于查询和检索活动目录信息的目录访问协议。由于它是基于工业标准的目录服务协议，使用LDAP的程序可以与其它目录服务共享活动目录信息，这些目录服务同样支持LDAP。NSPI协议用于Microsoft Exchange 4.0和5.x客户机，活动目录对其进行支持以便为交换目录提供兼容性。
　　(8)灵活的查询
　　用户和管理员可使用搜索菜单或“网络邻居”来快速查找网络上的对象。可通过使用活动目录生成的全局编录优化查找信息。
2.2  活动目录的理解
　　图1描述了活动目录的对象，活动目录的架构(Schema)定义了活动目录的各个对象的类。

图1活动目录的对象
　　每个类由各种属性构成。活动目录有默认的架构，用户也可以使用Active Directory Schema工具来修改对象的类和属性。在活动目录中，根据架构定义，创建各个对象的实例。但是并不一定分配存储空间，只有在输入内容时才占用一定的存储空间。
　　为了使得管理更简单灵活，Windows 2000目录使用了一个结构化数据库。这一数据库基于Microsoft Exchange目录存储库作为其数据存储库。可扩展存储引擎(ESE)的使用，使得目录可以从一个单一数据存储而攀升到1千万个对象。这就克服了Windows NT 4.0中基于注册表的安全帐目管理器(SAM)数据库的限制。
　　目录的结构定义了该目录中可以被创建的对象和属性。在活动目录中，结构由三张表组成，每张表对应下面的一项：对象、属性、语法对象。
　　例如，在一个用户的定义中，活动目录定义了一个用户对象，它包含了一些属性的链接，这些属性能够被设置给用户，如名属性、姓属性和密码属性。
　　活动目录允许你扩充结构，创建新的属性和对象。开发者可以利用这一可扩展性在应用软件目录下创建他们自己的数据结构，从而把目录作为一个数据存储来使用。例如，一个人力资源应用软件已经在目录中找到了关于一个职员的大量信息，这些信息包括这个职员的姓名、电话号码、办公室号和家庭住址。在活动目录下，这个应用软件可以通过扩展结构来增加一些必要的属性，例如这个职员的薪水属性。
　　此外，活动目录的扩展安全模型允许你非常精细地定义安全度。在刚才提到的人力资源应用软件的例子中，主管人力资源的职员能够访问用户对象，因为这对他们的工作非常重要，而管理人员尽管可以创建或删除用户，却不能够访问对象的薪水属性。
　　活动目录为访问控制许可提供了丰富的模式，这些模式在许多方面类似于文件和目录的许可管理。
　　你可以通过随意设定访问控制列表来设定对任何组织单位中的对象的管理。例如，你可以授权一个电脑管理员重新设置密码，但不把增加或删除帐号的权力授给他。如图2所示，访问控制列表(Access Control Lists，简称ACLs)保存了活动目录各种对象的访问控制权限，用于控制用户对活动目录对象的访问。可以通过访问控制入口(Access Control Entries，简称ACEs)来指定对象的属性。ACEs提供了更颗粒化的控制功能。

图2访问控制列表控制活动目录各种对象的访问控制权限
3  活动目录的概念
3.1  Windows 2000域的含义
　　域在活动目录中定义安全边界。活动目录由一个或多个域组成，每个域均拥有与其它域相关的安全策略和安全关系。域提供以下特点：
　　(1)两个不同域的安全策略和设置(如管理权限和访问控制列表)不能相互交叉。
　　(2)指派管理权限，不需要许多拥有广泛管理权限的管理员。
　　(3)将对象分成不同的组放入域中，有助于在网络中反映公司的组织结构。
　　(4)每个域只存储该域中对象的信息，活动目录可通过拆分目录信息的存储扩展至数量庞大的对象。
　　由于Windows 2000兼容支持Windows NT的域，所以按照域中是否有无Windows NT域服务器，将域分为单纯由Windows 2000域服务器组成的本机模式(native mode)，以及由Windows NT和Windows 2000域服务器组成的混合模式(mixed mode)。由于Windows 2000的域服务器包含Windows NT域服务器功能，并有重大改进和提高，所以由混合模式(mixed mode)组成的域的功能受到限制，本机模式(native mode)的功能最完善，因此建议用户尽快将企业的Windows NT域服务器迁移到Windows 2000的域服务器。
3.2  组织单位
　　目录服务代理(DSA)运行于平铺数据库之上，实现了一个分层次的名字空间。有了这样的分层次名字空间，活动目录从现有的域模型向前发展为一种新的“树的树”模型。通过把名字空间进化为层次结构，再也不需要在一个平铺列表上观察上万个用户了。在一个Windows 2000域中可以创建组织单位，它们是活动目录中装对象的容器。组织单位(OU)中包含用户、组、打印机等对象，这些对象能够被组织成一种逻辑结构，这种逻辑结构与用户运转和组织业务的方式相适应。另外，你可以利用组织单位来设定管理权。
　　通过给一个管理人员仅在一个容器中创建或修改对象的权力，就可把他限制在那个容器中。这种许可的颗粒化管理允许你提供对管理职责和边界的很精细的控制。目录层次中组织单位的使用减少了域的数量，同时能够达到需要的管理层次。
3.3  活动目录的名字空间
　　为了确保Windows 2000能够支持多个操作系统和目录下的目录同步和互操作性，活动目录使用轻量目录访问协议(LDAP)作为客户访问协议。在活动目录中实施了用于客户访问的LDAP版本2和版本3。因为复制的标准化进程还没有最后定稿，活动目录在第一个版本中实施了一个独有的复制协议。一旦有了可以使用标准复制协议，后面的版本将马上使用用于目录复制的LDAP。
　　在一个LDAP目录中，名字空间可以被组织成相连的或者不相连的名字空间。
　　在一个相连的名字空间中，子域的名字总是包含父域的名字，父域的名字是子域名字的一部分。例如，如果一个LDAP名字为DC=Sales，DC=Microsoft，DC=com的活动目录域。它是名字为DC=Microsoft，DC=com的域的子域，那么名字空间是相连的。在相连的名字空间中，总是可以通过移掉子域名字的第一部分来得到父域的名字。
　　在一个不相连的名字空间中，父域与子域的名字之间没有直接的关系。例如，活动目录域DC=MSN，DC=com可能是一个名字为DC=Microsoft，DC=com的域的子域。在这种情况下，子域不把父域的名字作为它的名字的一部分。
　　使用相连名字空间或者不相连名字空间会影响LDAP查找操作。在一个相连名字空间中，域控制器总是创建对子域的提名。然而，在不相连的名字空间中进行LDAP查找操作，从来不会创建对子域的提名，查找操作将被终止。
　　如果在同一棵树中既使用相连的名字空间又使用不相连的名字空间，是会令人迷惑的：在这棵树中查找操作到底是怎样进行的？因为这个原因，活动目录对树模型进行了精炼，引入了树和森林的概念。
3.4  组的概念
　　组(Groups)是活动目录或本地计算机对象，它包含用户、联系、计算机和其它组。组用于以下几个方面：
　　(1)管理用户和计算机对共享资源的访问，如活动目录对象及其属性、网络共享、文件、目录、打印机队列等。
　　(2)筛选组策略(Filter Group Policy)。
　　(3)创建E_mail分配列表。
　　当为资源(文件共享、打印机等等)指定权限时，管理员应将权限指定给组而不是单个用户。权限应一次性指定给组，而不是分几次指定给单个用户。添加到组的每个帐户接收为该组的权利和权限。操作组而不是单个用户，有助于简化网络维护和管理。
　　使用组筛选组策略，授予用户权利或分配E_mail，在域中创建对象管理集合，要使用组织单位(Organizational Units)，组和组织单位因其使用的域边界不同而不同。组可以包含用户、计算机、本地服务器上的共享资源、单个域、域目录树或目录林；组织单位则只表示单个域中的对象集合(可包括组对象)。
　　一个组可以是安全组(Security Group)或分布组(Distribution Group)。安全组(Security Group)显示在访问控制列表(ACL)中，定义对资源和对象的权限。安全组可以作为电子邮件的实体，当向一个组发送一个电子邮件消息时，将给该组的所有成员发送电子邮件消息。分布组没有安全性，不显示在访问控制列表(ACL)中，只能通过电子邮件应用程序(如Exchange)向用户自己收集的用户发送电子邮件。
3.5  活动目录用户和计算机帐户的概念
　　活动目录用户和计算机的帐户是为用户或计算机提供安全的凭据，以便用户和计算机能够登录到网络并访问域资源，用于验证用户或计算机的身份，授权对域资源的访问，对用户或计算机帐户的操作进行审核。
　　(1)活动目录用户帐户
　　Windows 2000提供一些预定义用户帐户，可用于登录到Windows 2000的计算机。这些预定义帐户是：管理员帐户(Administrator account)、来宾帐户(Guest account)。预定义帐户是默认的用户帐户，它用于使用户登录到本地计算机和访问其上的资源。这些主要是为初始登录和本地计算机配置而设计的。每个预定义帐户都有不同的权利和权限组合。管理员帐户具有最广泛的权利和权限，而来宾帐户则只有有限的权利和权限。
　　(2)计算机帐户
　　每个加入域的Windows 2000和Windows NT计算机都具有计算机帐户。与用户帐户类似，计算机帐户提供验证和审核计算机登录到网络，以及访问域资源过程的方法。
　　Windows 98和Windows 95计算机不具备Windows 2000计算机所具有的高级安全特性，无法在Windows 2000域中为其指定计算机帐户，但可以登录到网络并在活动目录域中使用Windows 98和Windows 95计算机。
4  Windows 2000活动目录域模型
　　可以从两个着眼点观察域树：一个着眼点是为域树进行的名字空间的划分(这是目录的物理结构)；另一个着眼点是域或树之间的信任关系(这是目录的逻辑结构)。
4.1  活动目录的物理结构
　　在Windows 2000活动目录中，一个域是名字空间中的一个分隔。同一个域中所有的域控制器都包含了域的整个目录，它们的数据库是相同的。复制对象通常发生在域层次上。域控制器从来不复制域对象给其它域中的域控制器。这使得一个域既是名字空间中的一个名字上下文关联，又是名字空间中的一个分隔。
4.2  活动目录的逻辑结构
　　一棵活动目录树由域的层次组成，这些域相互之间有信任关系。一个域能够在自己内部实现一棵组织单位树，这些组织单位在树中创建了两个层次：域的层次与域内组织单位(OU)的层次。一个域内的组织单位层次独立于其它域的结构，每个域都能实现它自己的组织单位层次。
因为域树具有双重层次结构，所以对域树的管理具有极大的灵活性。例如，一棵完整的域树能够被一个中心IT组拥有和管理。这个中心组可以在所有的域中创建同样的组织单位，比如一个注有当地IT用户帐户的IT组织单位，或者一个用于支持职员的技术支持组织单位，可以建立另外的组织单位以适应用户在特殊领域的需要。
　　在总部域中，可以创建一个人力资源组织单位和一个财政组织单位。在一个地方办事处域中，可以创建一个组织单位用于办事处销售组。可以把对这些特殊组织单位的管理权授给特殊的用户或组，这样，这些用户可以在不影响IT的情况下管理他们自己的领域。而且，因为这些用户仅仅在他们自己的组织单位上有管理权，所以，他们决不可能干涉IT的全局权力和责任。
因为逻辑结构非常灵活，所以企业可以创建出与它的组织相适应的环境。活动目录既支持集中化或分散化的业务模型，又支持集中化与分散化相混合的业务模型。例如。你可以先用域结构来提供一个集中化的框架，然后，再在域内使用组织单位(OU)结构来支持分散化的业务。
将多域组合到一起的结构，称为域目录树和目录林。
　　(1)域目录树
　　目录树中的第一个域称为目录树的根域。同一目录树中的其它域则称为子域。恰位于某域之上的另一个域被认为是子域的父类。
　　单个域目录树中的所有域共享一个等级命名结构。一个子域的域名就是将该子域的名称添加到父域的名称中。例如，headquarters.mycompany.com是mycompany.com域的子域。共享公用根域的域被认为共享邻近的名称空间。
　　目录树中的域通过双向、传递的委托关系连接在一起。由于这些委托关系是双向和传递的，因此加入目录树的域会立即与目录树中的每个域建立委托关系。这些委托关系允许单个用户登录以验证用户并授权验证用户访问整个网络。这使得目录树中所有其它域中具有适当凭据的用户和计算机可以使用目录树所有域中的所有对象。
　　域目录树中管理权的传递特性并非固有的。可以通过限制域管理权的范围添加额外的安全层。
　　(2)目录林
　　目录林包含一个或多个目录树，目录林中的目录树不共享公用根域。例如，headquarters.com和sales.com，com是它们公共的根域，但是它们之间无明显的关系。不共享公用根域的目录树被认为是脱开的。
　　目录林所有目录树中的所有域必须共享以下特性：
　　①域间的传递委托关系。
　　②域目录树间的传递委托关系。
　　③公用规划。
　　④公用全局编录。
　　域目录树和目录林的组合可为邻近和脱开的命名约定提供相当的灵活性。这一点在某些情况下会非常有用，例如，公司中各独立部门必须保持各自的DNS名称。
　　要使域或域目录树中的资源得到广泛应用，只需将域加入目录树中或创建额外的与目录林相关联的域目录树。当域加入目录树后，将在加入域和父域间创建信任关系。当在目录林中创建新目录树时，将在每个目录树的根域间创建信任关系。基本信任关系是透明的。对其无需进一步地管理。
　　由于链接于目录林中的域目录树是通过传递、双向Kerberos信任关系链接的，故用户可以访问整个目录林任何域中的资源。使用活动目录安装向导将新的域加入目录树中，新域将与该树其它域相联组成目录林，并创建双向、可传递的Kerberos信任关系。
5  结论
　　活动目录是Windows 2000的基础，活动目录统一管理网络上各对象的信息，提供了安全性保证，即简化了网络管理，又加强了网络安全性，是目前网络发展的趋势，是Windows 2000各种服务、功能的核心。通过对活动目录的了解，可以更好地理解Windows 2000的设计思想和应用。
梁晋(西安交通大学  西安 710049)
梁晋(陕西省邮电学校  西安 710000)
施仁(西安交通大学  西安 710049)
施仁(陕西省邮电学校  西安 710000)
梁峰(西安交通大学  西安 710049)
梁峰(陕西省邮电学校  西安 710000)
彭波(西安交通大学  西安 710049)
彭波(陕西省邮电学校  西安 710000)
刘洋(西安交通大学  西安 710049)
刘洋(陕西省邮电学校  西安 710000)
参考文献
1，梁  晋. 中文版Windows 2000 Server(服务器版)实用大全. 西安: 西安电子科技出版社, 1999.12
2，梁  晋. 中文版Windows 2000 Professional(专业版)实用大全. 西安: 西安电子科技出版社, 1999.11
3，梁  晋. 中文版Windows 2000 Server(服务器版)简明教材. 西安: 西安电子科技出版社, 2000.2
4，梁  晋. 中文版Windows 2000 Professional(专业版)简明教材. 西安: 西安电子科技出版社, 2000.2
5，www.microsoft.com/windows/server
收稿日期：1999-11-19
