Active Directory

Active Directory（简称AD。中国大陆译名为“活动目录”，台湾为维持英文不译）是微软Windows Server中，负责架构中大型网络环境的集中式目录管理服务（Directory Services），在Windows 2000 Server开始内置于Windows Server产品中，它处理在组织中的网络对象，对象可以是用户，组群，计算机，网域控制站，邮件，配置文件，组织单元，树系等等，只要是在活动目录结构定义档（schema）中定义的对象，就可以存储在活动目录数据档中，并利用活动目录Service Interface来访问，实际上，许多活动目录的管理工具都是利用这个接口来调用并使用活动目录的数据。
活动目录也被做为微软部分服务器软件与网域构连的数据结构，例如Microsoft Exchange Server 2003-2007，均使用AD来存储其个人信箱数据（透过创建新的活动目录Schema），并将AD列为建置Exchange Server的必要条件。
活动目录最早在1996年出现，并在Windows 2000中首次问世，研发代号为Cascade，并历经Windows 2000、Windows Server 2003的演化，目前AD已成为成熟的目录服务组件，在Windows Server 2008中，AD更扩展其角色至五种服务（包含证书、联合、权限控管与轻量级服务等）。

目录结构

活动目录(AD)以树状的数据结构来组成网络服务的信息，在简单的网络环境中（例如小公司），通常网域都只有一个，在中型或大型的网络中，网域可能会有很多个，或是和其他公司或组织的AD相互链接（此链接称为信任关系，于后面帮助）。

森林

在多个网域的环境下，可能在不同的网域之间会需要交换与共享数据，像是配置设置、用户账户与组策略设置等，在这个时候需要有一个角色来做为不同网域间的信息交换角色，同时又必须要匹配AD树状结构的规范，因此微软在多网域之间创建了一个中介用的角色，称为森林（Forest），一个组织中最多只能有一个Forest，在Forest下则是各自的网域树系，而在Forest下的网域或网域树系间，可以共享信息。

实体结构

活动目录背后，则是一个植基于Windows Server网络基础结构（infrastructure）的网络服务与通信方式所组成，这些网络服务和通信方式让活动目录具有高度的扩展性与向后兼容性等，网络管理人员必须要妥适的设置与监控这些网络服务与通信方式，以让活动目录能够正常且顺利的运作。
在以往的Windows NT网域环境中，网域的实体结构分为三种角色，即主要网域控制站（Primary Domain Controller, PDC）、备份网域控制站（Backup Domain Controller, BDC）以及成员服务器（Member Server）三种，网域的数据都存储在PDC和BDC中，并且在PDC和BDC间交换数据，但PDC和BDC的部署方式并不方便（一个网域只能有一个PDC），在不同的地理环境中也不能设置PDC，而且所有网域的查询都会被导向PDC，如此很容易造成网域登录和访问的塞车情况，这个问题在活动目录中已获得改善，即不再有BDC（只有DC和Member Server两种角色），在网域中的任何一台网域控制站都可以负责处理来自客户端的网域查询，如此在分散部署上会具有相当的弹性。

Global Catalog

在AD的实体结构中，最重要的角色非Global Catalog（全域目录，简称GC）莫属，它存储了最完整的活动目录的结构数据，也是以目录为主（directory-enabled）的应用程序对AD的查询的主要标的，而通常在不同的地理位置（例如在中国大陆、台湾、美国和英国各有分公司，且各有网域）时，GC扮演了重要的缓存结构角色，若台湾的员工出差到英国分公司，并试图登录网域时，Windows会先搜索最近的Global Catalog Server（由DNS设置提供），若找不到时，才会链接到其他地区的GC，但若分公司的网络很慢时，这种跨地理位置的AD数据访问会直接影响到登录的时间，因此谨慎的GC的布署对AD的推行是很重要的。

Site

活动目录站台（site），是指一个实体的网络位置，在一个站台中可能会有很多个网域控制站，AD网域数据的复制，就是以站台为主，实际处理复制作业的工具称为KCC（Knowledge Consistency Checker，知识一致性检查器），它会在特定时间对站台设置中的网域进行数据的同步化，复制活动则分为对内复制（intra-site replication）与对外复制（或站间复制，inter-site replication），对内复制是同一个网域间的控制站交换信息，对外复制则是在网络管理人员的设置下，透过指定的通信方法（IP或SMTP）以及拓朴进行复制。
默认情况下，站台的通信方式是使用IP（即RPC over IP）来通信，这个方式是最快的，且可以利用TCP/IP来运行远程调用以及处理，但若是非网域数据（架构、设置和通用类别目录更新，亦即没有AD对象）的复制，则可以利用SMTP通信方法，但这个方法需要另外创建企业级的证书服务才可以使用，目的是确保SMTP的数据可以被确认与保全。
在中大型的网络环境中，适当的分散网络流量以及设计网络拓朴是很重要的事，KCC会利用设置好的网络通信成本（cost）来选择要用哪一条网络来进行复制，例如可能公司和办公室间有一条T1和ISDN 64Kbps的线路，而T1的成本设为500（因为会有很大流量），而ISDN只有100时，KCC会选择ISDN做复制，这样代表网络管理员可以自己决定要使用哪一条网络来进行复制，KCC的复制算法会判断哪一个网络最适合复制AD的数据。除了成本以外，AD也支持了桥接站台（site bridge）的结构，站台桥接能力让复制的成本得以分散，并可让同一台GC的复制流量分散，也适合在不同地理区域之间的AD信息复制与散发工作。。

DNS

活动目录极度依赖DNS，因为DNS可以让AD表现出层次结构化的树状结构，同时也可以和开放的目录标准接轨，因此在建置网域时，DNS服务（或另有架设DNS Server）一定要存在于网络或该网域控制站中，AD以SRV记录（SRV Record）来识别网域控制站，以提供网域处理的服务，而和Windows NT网域不同的是，Windows NT使用的是NetBIOS通信协议，但AD使用的则是TCP/IP，但AD仍然提供可以在Windows NT账户格式（DOMAIN\User）和AD账户格式（user@domain）的格式互转。

只读网域控制站

在Windows Server 2008中，加入了一个新的网域控制站角色，称为只读型网域控制站（Read-Only Domain Controller，简称RODC），RODC可以作为组织的分部、分公司、办公室或是临时单位等，将网域控制站放在该处时会有安全性疑虑或风险时使用，顾名思义，RODC不会写入任何数据到活动目录，与其他网域的复写也是有限度的，并且只会以系统管理员定义的Password Replication Policy（密码复制原则）控制下的账户才会缓存密码等功能。
若要在AD中加入只读网域控制站，则网域的功能层级必须要在Windows Server 2003以上。

安全性

活动目录的安全性可分为对象的安全性识别、层次结构的安全性以及森林之间的信任关系等。

安全性识别

AD以Kerberos V5作为其安全验证的主要架构，并且每个AD对象都拥有一个独一无二的安全性识别码（Security Identifier，SID），其格式示例为S-1-5-21-7623811015-3361044348-030300820-1013，每组代码均有其意义，这组识别码存储在AD的objectSid属性中。

层次结构的安全性

在AD中，不同层次结构的OU可以定义不同的安全性信息，以及不同的用户权限，而不同的网域层次结构之间也可以定义不同的用户权限，管理员也可以利用安全性管理模板（Secutiy Template）来定义不同的安全性信息，或者使用组策略（Group Policy）来定义，在大型网络之中，使用组策略会比安全性模板要来的方便，将两者合并使用更可达到事半功倍之效（例如和Microsoft Base Security Analyzer的集成）。
在父层次结构定义的安全性，可以被继承至子层次结构ㄇ。

名称系统

活动目录的命名默认是以LDAP（轻量级目录访问协议）版本的X.500协议为主（由ADSI LDAP Directory Service Provider），对于AD这种如此规模的目录服务而言，LDAP这种具有层次结构识别能力的协议，非常适合作为目录服务的访问协议，但AD亦可以支持NT时代的UNC格式（由ADSI Windows NT Directory Service Provider提供），在UNC与LDAP名称间的转换则由ADSI的IADsNameTranslate接口来提供。

一般名称

每个AD中的对象都会有一个一般的名称，又称为别名（Canonical Name），在Schema中的属性为cn（Common Name），但组织单元（OU）基本上是例外，它自己有一个代字ou作为识别符。

关系识别名称

为了要在容器与对象间作识别，在Schema中设置了一个Relative Distinguished name（简称RDN），存储在rDnAttId属性中，可在搜索AD时可以快速的对应容器内的对象。

GUID

每一个对象都有一个唯一的GUID对象识别码，存储在objectGUID属性中，其编码方式与GUID相同。

对象结构

由于微软在设计活动目录是使用开放型的目录服务为方针，且目录服务的最基本特性之一就是要能“广纳百川”，除了基本的网络服务数据外，还需要能够和其他异质型服务连接与集成，因此微软在AD之中实现了一个对象的存储单位，称为“对象结构”（schema），对象结构可以视为AD对象的元数据（metadata）。每一个对象（不论是单元或是容器对象）都有各自的schema，用以存储识别该对象的不同数据，schema是由class和attribute所组成，attribute是最小的存储单元，class则是包含attribute的集合体。
存储在attribute中的数据有很多种格式，微软将这些格式定义成27种Schema数据类型，像是指示账户过期日的Account-Expires属性，其值是interval数据类型（代表时间周期，为一个64位整数值），又如指示账户SAM名称的sAMAccountName属性，其值是String（Unicode）值（支持Unicode的字符串值），又如存储用户的照片的Picture属性，其值是Object(Repl-Link，代表是字节数据，且可以复制到其他网域控制站）。
微软也开放了可扩展schema的方法，开发人员可以利用这一套方法来延伸活动目录Schema中的数据，但一旦写入AD后，即不可删除（因为对象识别码不可更动），但是可以停用，延伸AD Schema最好的例子就是Microsoft Exchange Server。

服务

活动目录本身除基本的网络目录服务外，微软也应用这个基础架构设计了不同的服务，并且在Windows Server 2003不同的版次中加入，以提升活动目录的应用范围。

轻量级服务

轻量级服务（Lightweight Directory Service）在Windows Server 2003中被称为活动目录Application Mode（ADAM），它是一个不需要与AD基础架构集成就可以独立运作的目录服务，适合用来表现企业的层次结构化概念与对象的管理，而且开发人员只要把使用ADSI的经验搬过来即可使用，不必另外学习ADAM的操作方法，它也可以做为ADFS的外部验证提供者。轻量级目录可以在同一台计算机中安装多个运行个体，因此也很适合用ADAM来实现Directory-Enabled的应用程序，尤其是与组织结构相关的（例如人事或人力资源系统），ADAM本身也可以延伸schema，开发人员可以将ADAM视为另一种型式的数据库，也可以由AD中复制数据到ADAM，不过ADAM不会对AD进行站台复制，开发人员需要自行撰写程序来复制数据。
轻量级服务在Windows Server 2008中改名为活动目录Lightweight Directory Service（简称AD LDS），并提升为AD的应用角色之一。

证书服务

证书服务（Certificate Service）是在Windows Server 2008中首次纳入活动目录体系的服务，它原本是在Windows 2000与Windows Server 2003的证书服务器（Certificate Server），用来创建企业中的公开密钥基础建设，在Windows Server 2008中，证书和AD对象有了更强更紧密的集成，所以有了活动目录Certificate Service（AD CS）的角色，这个角色还可以和权限管理的Right Management Service（RMS）集成在一起，提供对文件或应用程序层次的权利管理。

权利管理服务

权利管理服务（Right Management Service）也是在Windows Server 2008中首次纳入活动目录体系的服务，最早的时候，它是在Microsoft Office 2003开始提出的信息权利管理（Information Right Management）功能，可利用它来控制Office文件散布时的权限，例如打印以及存储文件等，接着微软发表了Right Management Server以及RMS SDK，供Windows Server 2003平台使用，而在Windows Server 2008中即将它集成到活动目录中，变成AD服务的一部分。

集成Unix到活动目录中

活动目录互通的多样性层次得以透过匹配标准的LDAP客户端在大多数的类Unix操作系统记录，但这些系统通常缺乏与Windows组件像是组策略与单向信任关系的许多属性的自动直译，目前也有许多第三方软件厂商提供了将Unix平台（包含UNIX、Linux、Mac OS X与数个Java与Unix-based应用程序）集成活动目录方法，这些供应商的一部分，包含Thursby Software System（ADmitMac）, Quest Software（Vintela Authentication Services）, Centrify（DirectControl），与Likewise Software（Likewise Open and Likewise Enterprise）。Microsoft也在这个市场中拥有为UNIX产品所设计的免费Microsoft Windows服务（即Windows Service for Unix）。
这些额外的对象结构在Windows Server 2003 R2版本中被发布，包含完全对应到RFC 2307的一般用途的属性。这些RFC 2307、nss_ldap与pam_ldap的参考实现均提供自PADL.com，包含直接使用这属性以及填充信息的支持。默认组群成员（group membership）的活动目录Schema与被提议的RFC 2307bis延伸功能一起编译。RFC 2307bis使用LDAP成员属性存储Unix的组群成员数据，与基础RFC 2307，以存储组群成员为以逗号分隔的用户识别码菜单有所不同。Windows Server 2003 R2包含了一个MMC snap-in以创建与编辑这些属性。
一个替代选项是使用其他的目录服务，像是Fedora Directory Server（之前的Netscape Directory Server）或是Sun的Java System Directory Server，它可以运行与活动目录双向同步化，进而在需要使用FDS验证的Unix与Linux平台与需要使用Windows验证的Windows客户端之间，提供一个与活动目录之间转向（deflected）的集成。另一个选项是使用OpenLDAP以及它的透通覆盖（translucent overlay）功能得以延伸项目于使用额外属性存储在本地数据库的任何远程LDAP服务器上。在本地数据库中指示的客户端将会看到包含在远程和地的属性，当远程数据库仍保持完整不变的情况下。
Samba 4，在2012年12月11日发布的Samba 4中包含了一个活动目录兼容服务器。