Active_Directory

**Active Directory**（簡稱 **AD**。中國大陸譯名為「**活動目錄**」，台灣維持英文不譯）是微軟 Windows Server 中，負責架構中大型網路環境的集中式目錄管理服務（Directory Services），在 Windows 2000 Server 開始內建於 Windows Server 產品中，它處理在組織中的網路物件，物件可以是使用者、群組、電腦、網域控制站、郵件、設定檔、組織單元、樹系等等，只要是在 Active Directory 結構定義檔（schema）中定義的物件，就可以儲存在 Active Directory 資料檔中，並利用 Active Directory Service Interface 來存取，實際上，許多 Active Directory 的管理工具都是利用這個介面來呼叫並使用 Active Directory 的資料。

Active Directory 也被做為微軟部份伺服器軟體與網域構連的資料結構，例如 Microsoft Exchange Server 2003-2007，均使用 AD 來儲存其個人信箱資料（透過建立新的 Active Directory Schema），並將 AD 列為建置 Exchange Server 的必要條件。

Active Directory 最早在 1996 年出現，並在 Windows 2000 中首次問世，研發代號為 **Cascade**，並歷經 Windows 2000、Windows Server 2003 的演化，目前 AD 已成為成熟的目錄服務元件，在 Windows Server 2008 中，AD 更擴充其角色至五種服務（包含憑證、聯合、權限控管與輕量級服務等）。

## 目錄結構

Active Directory (AD) 以樹狀的資料結構來組成網路服務的資訊，在簡單的網路環境中（例如小公司），通常網域都只有一個，在中型或大型的網路中，網域可能會有很多個，或是和其他公司或組織的 AD 相互連結（此連結稱為信任關係，於後面說明）。

### 物件

Active Directory 的最小儲存單元為物件（object），每個物件均有自己的 schema 屬性，可以儲存不同的資料，像是使用者、群組、電腦、信箱或其他的基本物件等。

一個 AD 網域底下的基本物件，有以下幾種

* Domain Controllers，儲存網域所屬的網域控制站（簡稱 DC、域控）。
* Computers，儲存加入網域的電腦物件。
* Builtin，儲存內建的帳戶群組。
* Users，儲存 AD 中的使用者物件。

若公司需要以不同的組織結構來管理公司的帳戶，則可以在 AD 中建立一個或多個組織單元（Organization Unit，簡稱 OU），組織單元是一個具有收納能力的 Active Directory 物件（其在 ADSI 中是 IADsContainer 介面），可以在 OU 之中存放 AD 的物件，包括使用者，群組，電腦等，讓組織結構在 AD 中可以被真實的反映出來，而且也方便 AD 中的另一個功能 —— 群組原則（Group Policy）的套用與集中管理。

### 樹系與多網域

若組織的網路環境相當龐大與複雜時，網域可能會有許多個，在 AD 之中，網域可以有一個或多個，而一個大型公司可能會利用分公司或是辦公室的方式來組織網域物件，如此一來，在 AD 中會有數個網域，若需要在網域中共享資料或是做委派管理與組態設定時，便需要建立彼此間的組織關係，微軟將 AD 中多網域相互的關係階層化，稱為網域樹（domain tree），網域樹結構以 DNS 識別方式來區分，例如一間公司可能有業務部門，工程部門與管理部門，那麼若要以部門來建立網域時，則可以如此建立（如右圖）：

* acme.com.tw：根網域。
* sales.acme.com.tw：業務部門。
* engineering.acme.com.tw：工程部門。
* admin.acme.com.tw：管理部門。

如此便可在 AD 中反映出組織的結構，同樣的，網域內還是可以再建立不同的網域，例如在工程部門中若需要分為軟體部門與硬體部門時，還可以在工程部門的網域中建立：

* software.engineering.acme.com.tw：軟體部門的網域。
* hardware.engineering.acme.com.tw：硬體部門的網域。

而軟體部門和硬體部門的設定，會自動的繼承工程部門網域中的群組原則設定，而在軟體部門的組態，則不會影響到硬體部門（可經過設定來套用）。

### 森林

在多個網域的環境下，可能在不同的網域之間會需要交換與共享資料，像是組態設定、使用者帳戶與群組原則設定等，在這個時候需要有一個角色來做為不同網域間的資訊交換角色，同時又必須要符合 AD 樹狀結構的規範，因此微軟在多網域之間建立了一個中介用的角色，稱為森林（Forest），一個組織中最多只能有一個 Forest，在 Forest 下則是各自的網域樹系，而在 Forest 下的網域或網域樹系間，可以共享資訊。

## 實體結構

Active Directory 背後，則是一個植基於 Windows Server 網路基礎結構（infrastructure）的網路服務與通訊方式所組成，這些網路服務和通訊方式讓 Active Directory 具有高度的擴充性與向後相容性等，網路管理人員必須要妥適的設定與監控這些網路服務與通訊方式，以讓 Active Directory 能夠正常且順利的運作。

在以往的 Windows NT 網域環境中，網域的實體結構分為三種角色，即主要網域控制站（Primary Domain Controller, PDC）、備份網域控制站（Backup Domain Controller, BDC）以及成員伺服器（Member Server）三種，網域的資料都儲存在 PDC 和 BDC 中，並且在 PDC 和 BDC 間交換資料，但 PDC 和 BDC 的部署方式並不方便（一個網域只能有一個 PDC），在不同的地理環境中也不能設定 PDC，而且所有網域的查詢都會被導向 PDC，如此很容易造成網域登入和存取的塞車情況，這個問題在 Active Directory 中已獲得改善，即不再有 BDC（只有 DC 和 Member Server 兩種角色），在網域中的任何一台網域控制站都可以負責處理來自使用者端的網域查詢，如此在分散部署上會具有相當的彈性。

### Global Catalog

在 AD 的實體結構中，最重要的角色非 Global Catalog（全域目錄，簡稱 GC）莫屬，它儲存了最完整的 Active Directory 的結構資料，也是以目錄為主（directory-enabled）的應用程式對 AD 的查詢的主要標的，而通常在不同的地理位置（例如在中國大陸、台灣、美國和英國各有分公司，且各有網域）時，GC 扮演了重要的快取結構角色，若台灣的員工出差到英國分公司，並試圖登入網域時，Windows 會先搜尋最近的 Global Catalog Server（由 DNS 設定提供），若找不到時，才會連結到其他地區的 GC，但若分公司的網路很慢時，這種跨地理位置的 AD 資料存取會直接影響到登入的時間，因此謹慎的 GC 的佈署對 AD 的推行是很重要的。

### Operation Masters

營運主機（Operation Masters，又稱為 Flexible Single Master Operation，即 FSMO）是被設定為擔任提供特定角色資訊的網域控制站，在每一個 Active Directory 網域中，至少會存在三種營運主機的角色。

* Primary Domain Controller Emulator Master：設定作為這個角色的網域控制站，可以被目前仍存在網域中的 Windows NT Backup Domain Controller（備份網域控制站）當做 Primary Domain Controller （主要網域控制站）來呼叫使用，同時它也是樹系中提供 Windows Time Service 時間同步的主機。
* RID Master：在網域控制站中會儲存 AD 物件的 relative ID（關聯識別碼），可分散以 RID 為主的查詢的流量。
* Infrastructure Master：負責處理對目前網域的物件參考，以及對應其他網域的物件參考，並可負責處理針對 AD 物件的變更（例如刪除與更名）。

另外還有兩種角色，是具有額外功能，但不強制部署在網域的：

* Schema Master：負責處理網域中所有針對物件結構的變更。
* Domain Naming Master：負責處理網域中的目錄分割以及應用目錄分割的工作。

### Site

Active Directory 站台（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

Active Directory 極度依賴 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）的格式互轉。

### 實體儲存

Active Directory 使用強化過的 Microsoft Jet Database Engine（基於 Microsoft Jet Blue 計畫），即 Extensible Storage Engine（ESE98），可儲存 16TB 的資料量，理論上可容納十億個網域物件，檔案名稱為 NTDS.dit，它儲存在 % system\_root%\NTDS 目錄中（這個目錄所在的磁碟也必須要是 NTFS 格式），內含了物件資料表以及連結資料表，在 Windows Server 2003 中加入了一個描述安全資訊的新資料表。

而在 AD 更新資料時的記錄，都被儲存在 edb\*.log，預設的名稱為 edb.log，其他的檔案使用 "edb" + 數字 + ".log" 來記錄，另搭配了 edb.chk 作為檢查點記錄檔，以及 Res1.log 和 Res2.log 作為系統的保留檔案。

AD 實體儲存的元件有：

* 上層介面（interface）：作為目錄服務使用者端或目錄服務中的其他伺服器的連接介面，像是 LDAP、REPL、MAPI 與 SAM 等。
* 目錄服務代理人（Directory Service Agent）：實作於 NTDSA.DLL，負責接收與處理來自使用者端的要求或其他伺服器的要求（例如 KCC 的要求）。
* 資料庫存取層：內含於 ntdsa.dll 中，負責直接存取資料庫。
* 延伸儲存引擎（Extensible Storage Engine）：負責處理資料庫與其名稱（DN）的記錄對應。
* 資料庫檔案：即 NTDS.dit，以及負責處理未認可交易的記錄檔。

網域控制站會定時（預設為 12 小時）對 NTDS.dit 做重組（defragment），並清除資料檔中的垃圾，在重組前會檢查磁碟空間是否有大於資料庫檔案 1.5 倍的空間可用。若資料庫所在的目錄沒有足夠的可用空間，就要把資料庫移往其他地方去。然而，由於 Windows 2000 與 Windows Server 2003 在磁碟區陰影複製服務（VSS）的機制有所不同，使這移動過程有可能失敗。對於 Windows 2000，log files 與資料庫可以分別存放在不同的磁碟上，但 Windows Server 2003 則必須放在同一個磁碟上。要移動資料庫，必須重新啟動伺服器，並進入 Active Directory Restore Mode 裡，利用 ntdsutil 工具進行移動。

### 唯讀網域控制站

在 Windows Server 2008 中，加入了一個新的網域控制站角色，稱為唯讀型網域控制站（Read-Only Domain Controller，簡稱 RODC），RODC 可以作為組織的分部、分公司、辦公室或是臨時單位等，將網域控制站放在該處時會有安全性疑慮或風險時使用，顧名思義，RODC 不會寫入任何資料到 Active Directory，與其他網域的複寫也是有限度的，並且只會以系統管理員定義的 Password Replication Policy（密碼複製原則）控制下的帳戶才會快取密碼等功能。

若要在 AD 中加入唯讀網域控制站，則網域的功能層級必須要在 Windows Server 2003 以上。

## 安全性

Active Directory 的安全性可分為物件的安全性識別、階層的安全性以及森林之間的信任關係等。

### 安全性識別

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 的整合）。

在父階層定義的安全性，可以被繼承至子階層。

### 信任關係

在大型的網路環境中，可能組織間有夥伴關係，或者是專案間的合作，而需要在兩個 Forest 間共享或授權存取時，可以利用信任關係（trust relationship）來建立 Forest 間的信任，以授權在彼此樹系間的存取權，在 Windows Server 2003 以後版本的 AD 環境可支援四種信任關係：

* **捷徑式信任（shortcut trust）** ，此為加速驗證流程所設計的信任法，在多層次的網域中，使用者只要連接到最近的網域即可登入，無需要將訊息轉到授權的根服器。
* **外部式信任（external trust）** ，此為跨森林的授權方法。
* **領域式信任（realm trust）** ，作為與非 Kerberos 驗證的 LDAP 目錄服務與 Windows 網域的信任模式。
* **森林式信任（forest trust）** ，此為強化型的外部式信任法，可以經由一個中介的森林信任來取得信任關係，例如 acme.com.tw 信任 aspvendor.com，而 contoso.com.tw 也信任 aspvendor.com，則 acme.com.tw 可以取得和 contoso.com.tw 的信任關係。

信任關係的設定可以分為單向（one-way）和雙向（two-way）兩種，單向信任表示被信任的一方可以存取信任的一方的資源，而雙向信任則是可以存取各自的資源。

信任關係的傳遞可分為可遞移（transitive）與不可遞移（non-transitive）兩種，可遞移表示建立信任關係的網域在同一樹系內的其他網域也可以使用在建立信任關係網域中的信任資訊，不可遞移則表示只有建立信任關係的網域（不論是否有階層）才可以使用信任資訊。

## 名稱系統

Active Directory 的命名預設是以 LDAP（輕量級目錄存取協定）版本的 X.500 協定為主（由 ADSI LDAP Directory Service Provider），對於 AD 這種如此規模的目錄服務而言，LDAP 這種具有階層識別能力的協定，非常適合作為目錄服務的存取協定，但 AD 亦可以支援 NT 時代的 UNC 格式（由 ADSI Windows NT Directory Service Provider 提供），在 UNC 與 LDAP 名稱間的轉換則由 ADSI 的 `IADsNameTranslate` 介面來提供。

### 識別名

每個 AD 物件均有一個以 LDAP 組成的名稱，稱為識別名（Distinguished name，簡稱 DN），這個識別名是作為使用 LDAP 查詢 AD 目錄中識別物件的名稱，其格式類似下列：

在 LDAP 字串中經常使用的代字有：

* **DC**：domainComponent
* **CN**：commonName
* **OU**：organizationalUnitName
* **O**：organizationName
* **STREET**：streetAddress
* **L**：localityName
* **ST**：stateOrProvinceName
* **C**：countryName
* **UID**：userid

當使用者端在下達 LDAP 查詢字串時，若無法符合 AD 物件的 LDAP DN，則會找不到資料，LDAP 代字亦可使用於搜尋（IADsDSObject 與 ADsDSObject (），參見 Active Directory Service Interface 條目）。

### 一般名稱

每個 AD 中的物件都會有一個一般的名稱，又稱為別名（Canonical Name），在 Schema 中的屬性為 cn（Common Name），但組織單元（OU）基本上是例外，它自己有一個代字 ou 作為識別符。

### 關聯識別名稱

為了要在容器與物件間作識別，在 Schema 中設定了一個 Relative Distinguished name（簡稱 RDN），儲存在 rDnAttId 屬性中，可在搜尋 AD 時可以快速的對應容器內的物件。

### GUID

每一個物件都有一個唯一的 GUID 物件識別碼，儲存在 objectGUID 屬性中，其編碼方式與 GUID 相同。

### 其他名稱

* Windows NT 使用者名稱系統：即 SAM（Security Account Manager）的名稱系統，儲存在使用者的 `sAMAccountName` 屬性中。
* 使用者主體名稱：即 User Principal Name，在 AD 中使用者是以 `user@domain` 的方式呈現，這個值儲存在 `userPrincipalName` 屬性。

## 功能層次

Active Directory 於是一個開放式的目錄服務，而且為了要能夠容納不同版本的 Windows 作業系統以及其網域，因此特別在 AD 中使用了一種版本控制的機制，稱為功能層次（functional level），功能層次定義了目前在網域環境中可以使用的最大版本層次，同時這個修改是單向無法復原的修改。若網域中有不同版本作業系統的網域控制站，則為了最大的相容性，功能層次的設定應要以最低版本為主，例如一個網域中有 Windows Server 2003 和 Windows 2000 時，則網域的功能層次應該設為 Windows 2000 混合模式（Mixed Mode），若設為 Windows Server 2003 原生模式（Native Mode）時，Windows 2000 的網域控制站會失效。但由於新版本的 AD 設定通常都會比前版的要強（尤其是安全性的改進），因此若網域中沒有前版本的作業系統，則應將功能層次設定到最新版本，以開放 AD 的所有功能。

另外，若要在網域中安裝新版本的作業系統（例如在 Windows Server 2003 網域中要安裝 Windows Server 2008）作為網域控制站時，必須要先將 Active Directory 中的 Schema 資訊做擴充以相容於較新版本的作業系統，因此微軟在安裝光碟中都會提供一個 Active Directory 準備工具 (adprep.exe），它可以讓系統管理員以簡單的方式升級 Active Directory 中的資料結構，包含樹系以及網域的資料結構（使用參數設定），以相容於新版本作業系統。

* `adprep /forestprep`：升級樹系的資料結構。
* `adprep /domainprep`：升級網域的資料結構。
* `adprep /rodcprep`：準備網域以提供 RODC（唯讀網域控制站）的功能（Windows Server 2008 以後版本才支援）。

對於 Windows NT 的 BDC，則不是透過功能層次的設定，而是用 Operation Master 的 PDC Emulator 來保持相容性。

## 物件結構

由於微軟在設計 Active Directory 是使用開放型的目錄服務為方針，且目錄服務的最基本特性之一就是要能「廣納百川」，除了基本的網路服務資料外，還需要能夠和其他異質型服務連接與整合，因此微軟在 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 的方法，開發人員可以利用這一套方法來延伸 Active Directory Schema 中的資料，但一旦寫入 AD 後，即不可刪除（因為物件識別碼不可更動），但是可以停用，延伸 AD Schema 最好的例子就是 Microsoft Exchange Server。

## 服務

Active Directory 本身除基本的網路目錄服務外，微軟也應用這個基礎架構設計了不同的服務，並且在 Windows Server 2003 不同的版次中加入，以提升 Active Directory 的應用範圍。

### 聯合服務

由於 AD 本身具有可分散式的身分驗證與授權能力，且在 2003 年時 Web 正吹起了單一簽入（single-sign on）的架構研究風，微軟也開始利用 AD 來設計一個可支援多個網站（或應用程式）的單一簽入功能，其實作品即為 Active Directory Federation Services（AD 聯合服務，簡稱 ADFS），它顯露了幾個主要成員：

* Federation Service：負責在 ADFS 的 SSO 架構中處理驗證的伺服器。
* Federation Service Proxy：在外部網路或是 WS-I 服務中，扮演 Federation Service 的代理角色，並支援 WS-Federation 規格的驗證設定。
* Claim-aware client：由 ADFS 開放的 Claim-aware（宣告感知）元件的 Web 使用者端，或是 ASP.NET 應用程式，可直接支援 ADFS 的 SSO 架構。
* Windows Token-based Agent：以 Windows 驗證為主的 Web 應用程式，ADFS 可支援 AD 權仗與 Windows NT 權仗的類比與交換。

此服務在 Windows Server 2003 R2 版本中首次出現，並在 Windows Server 2008 中升級為 Active Directory Federation Service 角色。

### 輕量級服務

輕量級服務（Lightweight Directory Service）在 Windows Server 2003 中被稱為 Active Directory Application Mode（ADAM），它是一個不需要與 AD 基礎架構整合就可以獨立運作的目錄服務，適合用來表現企業的階層化概念與物件的管理，而且開發人員只要把使用 ADSI 的經驗搬過來即可使用，不必另外學習 ADAM 的操作方法，它也可以做為 ADFS 的外部驗證提供者。輕量級目錄可以在同一台電腦中安裝多個執行個體，因此也很適合用 ADAM 來實作 Directory-Enabled 的應用程式，尤其是與組織結構相關的（例如人事或人力資源系統），ADAM 本身也可以延伸 schema，開發人員可以將 ADAM 視為另一種型式的資料庫，也可以由 AD 中複製資料到 ADAM，不過 ADAM 不會對 AD 進行站台複製，開發人員需要自行撰寫程式來複製資料。

輕量級服務在 Windows Server 2008 中改名為 Active Directory Lightweight Directory Service（簡稱 AD LDS），並提升為 AD 的應用角色之一。

### 憑證服務

憑證服務（Certificate Service）是在 Windows Server 2008 中首次納入 Active Directory 體系的服務，它原本是在 Windows 2000 與 Windows Server 2003 的憑證伺服器（Certificate Server），用來建立企業中的公開金鑰基礎建設，在 Windows Server 2008 中，憑證和 AD 物件有了更強更緊密的整合，所以有了 Active Directory Certificate Service（AD CS）的角色，這個角色還可以和權限管理的 Right Management Service（RMS）整合在一起，提供對檔案或應用程式層次的權利管理。

### 權利管理服務

權利管理服務（Right Management Service）也是在 Windows Server 2008 中首次納入 Active Directory 體系的服務，最早的時候，它是在 Microsoft Office 2003 開始提出的資訊權利管理（Information Right Management）功能，可利用它來控制 Office 檔案散布時的權限，例如列印以及儲存檔案等，接著微軟發表了 Right Management Server 以及 RMS SDK，供 Windows Server 2003 平台使用，而在 Windows Server 2008 中即將它整合到 Active Directory 中，變成 AD 服務的一部份。

## 整合 Unix 到 Active Directory 中

Active Directory 互通的多樣性層次得以透過符合標準的 LDAP 使用者端在大多數的類 Unix 作業系統記錄，但這些系統通常缺乏與 Windows 元件像是群組原則與單向信任關聯的許多屬性的自動直譯，目前也有許多第三方軟體廠商提供了將 Unix 平台（包含 UNIX、Linux、Mac OS X 與數個 Java 與 Unix-based 應用程式）整合 Active Directory 方法，這些供應商的一部份，包含 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）的 Active Directory 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，它可以執行與 Active Directory 雙向同步化，進而在需要使用 FDS 驗證的 Unix 與 Linux 平台與需要使用 Windows 驗證的 Windows 使用者端之間，提供一個與 Active Directory 之間**轉向**（deflected）的整合。另一個選項是使用 OpenLDAP 以及它的透通覆蓋（translucent overlay）功能得以延伸項目於使用額外屬性儲存在本機資料庫的任何遠端 LDAP 伺服器上。在本機資料庫中指示的使用者端將會看到包含在遠端和地的屬性，當遠端資料庫仍保持完整不變的情況下。

Samba 4，在 2012 年 12 月 11 日發布的 Samba 4 中包含了一個 Active Directory 相容伺服器。

## 參考文獻

## 參見

* Active Directory 服務介面
* Windows 開放服務架構
* 微軟目錄同步服務
* 群組原則
* AGDLP