委派如何在 Active Directory 中作用

委派如何在 Active Directory 中作用

發佈日期: 2004 年 5 月 17 日

本章將深入探討委派在 Active Directory 中如何作用。瞭解委派如何作用,可幫助您建立、實作及維護有效率與安全的委派模型,並有助於在對任何關係人委派管理授權,或是授權存取時,滿足關係人的需要。最後,對委派的作用方式有更深入的瞭解,還有助您考量到技術功能及管理授權委派所牽涉的問題,在掌握更多資訊的情況下作出設計決策。

本頁內容

概觀
Active Directory 管理作業
Active Directory 邏輯結構及資料存放
委派與存取控制

概觀

透過管理委派,管理工作的責任轉移到必須執行各自工作的系統管理員,而非其他人員。從技術的觀點來看,管理委派牽涉到較高階的系統管理員,將一組控制權限授與較低階的系統管理員,賦予較低階系統管理員執行特定管理工作的能力。換句話說,就是較高階的系統管理員「授權」受委派的較低階系統管理員執行特定的管理工作。

每項管理工作都會造成部分資料狀態的變更,而資料狀態的變更,則牽涉到對儲存資料的物件執行低階作業。如前文所言,Active Directory 有兩種主要的管理工作類別 – 資料管理工作及服務管理工作:

  • 資料管理工作一般包括建立與管理使用者和電腦帳戶、安全性群組及應用程式特定資料的工作,這些資料全都儲存在 Active Directory 中。在某些情況下,有少部分的工作子集可能牽涉到修改「群組原則」的設定值,以影響成員電腦的設定狀態。使用者帳戶的建立與群組成員資格的修改,兩者都是資料管理工作的範例。

  • 服務管理工作包括與建立及維護 Active Directory 設定資料相關的工作。例如,在子網域中新增網域控制站,為站台建立新的關聯子網路,以及延伸 Active Directory 架構;這些 Active Directory 服務管理的管理工作,全都會造成設定資料的變更。多數的 Active Directory 設定資料都直接儲存在 Active Directory 中。然而,某些 Active Directory 行為卻可以或必須在網域控制站上設定。與這些工作相關的設定資料,可能儲存在網域控制站的登錄或檔案系統中。

因此,資料與服務管理工作主要牽涉到資料的變更;這些資料可能儲存在 Active Directory,有時則儲存在網域控制站及其他加入 Active Directory 之電腦的檔案系統或登錄中。

每項系統管理工作都會造成部分資料狀態的變更,而資料狀態的變更,則牽涉到對部分的資料執行低階作業;這些資料中,有些以目錄中的物件代表,有些則以電腦或網域控制站的檔案系統或登錄中的物件代表。例如,重新設定使用者密碼的管理工作,就牽涉到對使用者物件的屬性進行低階寫入作業。同樣地,建立新的站台牽涉到建立對應的站台物件。而修改安全性事件記錄的詳細等級,則牽涉到修改網域控制站上的登錄機碼 (資料)。這些組成管理工作的低階作業,通常牽涉到資料的建立、刪除、存取、修改及驗證。

所有儲存在 Active Directory 中的資料都由目錄物件代表,每個物件都可以個別設定保護。同樣地,儲存在電腦檔案系統及電腦登錄中的所有資料,也都由可以個別設定保護的物件代表。「可以個別設定保護」是指對資料 (由物件代表) 執行的所有低階作業,都可以個別授權。換句話說,系統管理員可以針對每個資料單位指定執行者及執行作業。

既然每項 Active Directory 管理工作都將藉低階作業影響部分資料的狀態,而且所有資料都可以個別設定保護 (允許或拒絕某些人員對這些資料執行低階作業),表示控制適當的權限 (授權執行目標資料的對應低階作業),就應該可以控制執行每項管理工作的能力。

因此,系統管理員能夠藉由個別授權資料的每項低階作業,進而授權牽涉到低階作業的所有管理工作。由於所有的管理工作至少都牽涉到一項低階作業,因此,所有的管理工作應該都可以個別授權。由於委派牽涉較高階的系統管理員,授權受委派的較低階系統管理員執行特定管理工作,那麼藉由控制管理工作所牽涉之低階作業的必要執行權限,即可委派 Active Directory 中的每項管理工作。

總而言之:

  • 委派牽涉到將一組控制權限授與某人,以便其執行管理工作。

  • 每項管理工作都牽涉到對資料執行一些低階作業,

  • 這些低階作業都可以 (個別) 授權。

  • 而由於可以授權對應的低階工作,您因此可以進行工作委派。

下列範例說明委派如何在 Active Directory 中作用的重點。我們將以 Contoso Pharmaceuticals 的行銷人員 David Hamilton 的一天為例說明。

David Hamilton 最近才加入公司。在他加入公司時,公司業務部門的帳戶管理員,已經為他在業務部門 OU (組織單位) 底下,建立了一個使用者帳戶。使用者帳戶的建立,牽涉到在父物件底下建立類別為 User 的物件,在此情況下,也就是業務部門的 OU 物件。由於帳戶管理員擁有這個 OU 的「建立子物件」權限,他們因此可以建立帳戶。

帳戶一旦建立,David 就能登入 Active Directory 網域,並且著手執行獲得指派的責任。有一天,David 遺忘了他的密碼,因此無法登入。他於是尋求技術支援人員的協助。Jeff Price 是技術支援操作者群組的成員,他在收到呼叫並驗證 David 的識別身份後,重新設定了 David 的密碼。重新設定密碼的作業,牽涉到修改 David 的使用者帳戶物件的密碼相關屬性,並需要將 David 的使用者帳戶物件的「重新設定密碼」延伸權利,授與能夠重新設定 David 密碼的人員。在實作委派模型時,技術支援操作者群組 (Jeff 是成員) 便獲得網域中所有使用者的這項延伸權利。因此,Jeff 也獲得授權,可以重新設定 David 的密碼。

David 在受雇不到 6 個月時,晉升為資深行銷人員,直屬經理也換了一個人。Contoso 人力資源部門的員工 Michelle Alexander,因此需要更新儲存在 Active Directory 中,David 使用者帳戶上的 David 直屬經理資訊。修改使用者的經理資訊,需要牽涉到修改使用者帳戶物件 Manager 屬性的低階作業,而且需要擁有 Manager 屬性的寫入屬性權限才能成功。帳戶管理員已經將寫入屬性權限授與人力資源人員群組 (Michelle 是成員),允許群組成員修改所有使用者物件的 Manager 屬性。因此,Michelle 可以變更 David 的經理資訊來更新 David 的帳戶。

在公司任職一年以後,David 再度升職,在公司的研發 (RandD) 部門擔任新的工作。現在,他的使用者帳戶需要移動到 RandD 部門的 OU。移動物件牽涉到多種低階作業,包括將物件從其目前的父物件下刪除,在新的父物件下建立新的物件,以及修改物件上的「一般名稱」與相關之可辨別名稱的屬性 (請注意,從技術面解釋,物件並沒有遭到刪除,只是看起來在遭到刪除後又重新建立)。Contoso 整體帳戶管理團隊的成員 (擁有 Contoso 帳戶管理員群組的成員資格) Michael Allen 接獲指示,需要在兩個 OU 之間移動物件。Contoso 的帳戶管理員群組同時獲得來源與目標 OU 的充分權限,群組成員能夠移動物件。Michael 因此擁有必要的「刪除子物件」權限,可以對業務 OU 執行低階的刪除作業,並擁有對 RandD OU 執行低階建立作業的「建立子物件」權限;此外,還對使用者物件擁有「寫入所有屬性」權限,因此能對 David 的使用者帳戶執行移動作業。

Active Directory 管理作業

如前所言,Active Directory 管理可以分為服務與資料管理。

資料管理包括建立與管理使用者和電腦帳戶、安全性群組及應用程式特定資訊的工作,這些資料全都儲存在 Active Directory 中。在某些情況下,有少部分的工作子集可能牽涉到修改「群組原則」的設定值,以影響成員電腦的設定狀態。使用者帳戶的建立與群組成員資格的修改,兩者都是資料管理工作的範例。

資料管理工作包括但不限於管理下列 Active Directory 內容:

  • 使用者帳戶:代表使用網路人員的識別身份

  • 電腦帳戶:代表加入 Active Directory 樹系中網域的電腦

  • 安全性群組:用來彙總授權資源存取之帳戶的群組

  • Active Directory 啟用及整合應用程式的應用程式特定屬性,例如 Microsoft Exchange 及 Microsoft Office Live Communications Server 2003

服務管理工作,也就是與 Active Directory 設定資料的建立與維護相關的工作。例如,在子網域中新增網域控制站,為站台建立新的關聯子網路,以及延伸 Active Directory 架構;這些 Active Directory 服務管理的管理工作,全都會造成設定資料的變更。多數的 Active Directory 設定資料都直接儲存在 Active Directory 中。然而,某些 Active Directory 行為卻可以或必須在網域控制站上設定。與這些工作相關的設定資料,可能儲存在網域控制站的登錄或檔案系統中。

服務管理包括但不限於下列管理工作:

  • 新增和移除網域控制站

  • 管理和監視複寫

  • 確定作業主要角色的適當指派與設定

  • 執行目錄資料庫的定期備份

  • 設定全樹系的輕量型目錄存取協定 (LDAP) 設定值

  • 管理網域和網域控制站安全性原則

  • 設定目錄服務參數,例如設定樹系的功能性層級,或是將目錄置於特殊的清單物件安全性模式

如需 Active Directory 服務及資料牽涉之管理工作的完整清單,請參閱本文件隨附的<Active Directory 管理委派最佳實務:附錄>中的<附錄 A:Active Directory 管理工作>。如需管理工作類別的概觀,請參閱本文件稍後的<第 3 章:服務管理委派>及<第 4 章:資料管理委派>。

Active Directory 邏輯結構及資料存放

要有效委派 Active Directory 管理工作,您需要瞭解 Active Directory 資料的本質及資料存放的位置。由於管理委派牽涉到授權對資料執行低階作業的能力,因此,瞭解儲存這些作業的資料位置,對於授權對這筆資料執行低階作業的能力是極為重要的。本節將說明 Active Directory 的主要邏輯元件,亦含頂層網域和設定容器的說明與位置。

樹系與網域

Active Directory 樹系是一種 Active Directory。樹系是指具有共用設定與架構的網域集合,由單一的邏輯通用類別目錄代表,並且由跨樹狀目錄的可轉移信任連接。從資料的觀點來看,Active Directory 儲存整個樹系的資料。「目錄」與「樹系」可以視為同義詞。儘管只有單一目錄,資料存放卻分散到許多網域之中。裝載 Active Directory 目錄服務的伺服器又稱為「網域控制站」。

目錄磁碟分割

在 Active Directory 中,資料存放都分割到稱為「目錄磁碟分割」的邏輯區段,而且每個目錄磁碟分割都將其變更分別複寫到存放相同目錄磁碟分割複本的樹系中的網路控制站。

一個特定的目錄磁碟分割儲存全樹系的設定資訊,這些設定資訊對樹系的正常運作極為重要。另一個特定的目錄磁碟分割儲存 Active Directory 架構。其他目錄磁碟分割所儲存的資訊,則包括個別網域的特定使用者、群組及 OU。儲存網域資訊的目錄磁碟分割,只會複寫到該網域中的網域控制站。儲存設定及架構資訊的目錄磁碟分割,則會複寫到所有網域中的網域控制站。如此一來,Active Directory 即可提供在邏輯上集中化,在實體上卻分散的資料機制。

Note 注意
目錄磁碟分割與資料庫磁碟分割是不同的。Active Directory 資料庫沒有遭到分割。只有目錄樹狀結構,也就是儲存在網域控制站上資料的邏輯代表,才有遭到分割。

由於所有網域控制站都有儲存全樹系的設定及架構資訊,如果在本機沒有儲存使用者要求的資訊,網域中的網域控制站可以參照任何其他網域中的網域控制站。此外,作為通用類別目錄伺服器的網域控制站,儲存著網域目錄磁碟分割的完整複本,以及樹系中其他每個網域的部分複本。因此,作為通用類別目錄伺服器的網域控制站,就可以用來查詢並找出樹系中的任何物件。

設定目錄磁碟分割

每個樹系只有一個設定目錄磁碟分割,其中儲存著全樹系的設定資料;如果 Active Directory 要正常提供目錄服務,一定要有這些資料。例如,確定正常複寫的所有必要資訊,都儲存在設定磁碟分割中;此外,磁碟分割中也儲存著有關站台拓撲的資訊。Active Directory 用來架構目錄樹狀結構階層的資訊,也儲存在設定目錄磁碟分割之中;應用程式用來連結到樹系中服務例項的全網路、服務特定資訊亦同。每部網域控制站都有一份設定目錄磁碟分割的完整可寫入複本。

架構目錄磁碟分割

同樣地,每個樹系也只有一個架構目錄磁碟分割。架構目錄磁碟分割中有可在 Active Directory 中初始化的所有物件的定義,其中也儲存著可以作為 Active Directory 中之物件部分的所有屬性的定義。儘管架構更新只能在作為架構作業主機的網域控制站進行,每部網域控制站都有一份架構目錄磁碟分割的完整可寫入複本。

架構目錄磁碟分割的根物件中,包含可在 Active Directory 樹系中初始化的每種物件類別的子物件,並包含可作為 Active Directory 樹系中之物件部分的每個屬性的物件。

網域目錄磁碟分割

每個網域都由一個網域目錄磁碟分割代表。網域目錄磁碟分割儲存該網域的使用者、電腦、群組及其他物件。所有加入網域的網域控制站,都共用一份網域目錄磁碟分割的完整可寫入複本。此外,樹系中所有裝載通用類別目錄的網域控制站,也裝載了樹系中其他網域目錄磁碟分割的部分唯讀複本。在多數情況下,網域目錄磁碟分割都儲存著網域內容 – 也就是使用者、群組及電腦資訊。然而,一些網域特定設定資訊也儲存在網域目錄磁碟分割的 System 容器中。

Active Directory 階層

每個 Active Directory 物件,都可以藉由唯一與不模糊的名稱,又稱「辨別名稱」(DN) 來予以參照。 辨別名稱識別出可透過容器階層到達物件的完整路徑。

每個樹系都有一個設定目錄磁碟分割、一個架構目錄磁碟分割,以及至少一個代表樹系根網域的網域目錄磁碟分割。樹系中每額外加入一個網域,該樹系就會增加一個網域目錄磁碟分割。

Active Directory 三個預設磁碟分割的辨識名稱如下:

  • 樹系根網域目錄磁碟分割:DC=ForestRootDomain

  • 設定目錄磁碟分割:CN=configuration,DC=ForestRootDomain

  • 架構目錄磁碟分割:CN=schema,CN=configuration,DC=ForestRootDomain

如需所有 Active Directory 磁碟分割的預設容器階層的詳細資訊,請參閱本文件隨附的<Active Directory 管理委派最佳實務:附錄>中的<附錄 I:Active Directory 磁碟分割的預設容器階層>。

管理觀點的資料存放

從管理的觀點來看,識別設定資料在 Active Directory 的儲存位置,以及網域內容的儲存位置,皆頗有助益。這項資訊對委派管理極為重要,因為它有助於識別委派服務與資料管理工作所需指定的權限位置。

Active Directory 服務設定資料的位置

Active Directory 主要在設定目錄磁碟分割中儲存服務設定資料。從服務管理的觀點來看,架構管理也是服務管理的一部分。因此,儲存在架構目錄磁碟分割中的架構,也是設定資料的一部分。此外,某些網域特定設定值也儲存在網域目錄磁碟分割的 System 容器中,因此,這種資料也是設定資料的一部分。最後,由於某些網域控制站的特定設定資料儲存在網域控制站的登錄及檔案系統中,這種資料也是服務設定資料的一部分。

從管理的觀點來看,在下列位置可以找到設定資料:

  • 設定目錄磁碟分割

  • 架構目錄磁碟分割

  • 網域目錄磁碟分割中的 System 容器

  • 網域控制站上的檔案系統及登錄

Active Directory 內容的位置

Active Directory 內容儲存在網域目錄磁碟分割中。目錄磁碟分割中的內容,一般都儲存在以下其中一個容器:一般物件類別容器的物件,以及特殊目的物件類別的物件 (如架構中的定義,稱為 organizationalUnit)。一般類別容器的物件都是普通的容器,也會在「設定」磁碟分割之中使用。OrganizationalUnit 類別的物件,其用途在於作為網域內容 (例如使用者、電腦及群組帳戶) 的主要容器。

OU 與一般容器的不同之處在於,OU 可以套用「群組原則」。「群組原則」的發佈機制確保套用到 OU 的「群組原則」物件,可以直接套用到該 OU 中的所有使用者與電腦,並可藉由繼承,套用到以 OU 為根目錄的 Active Directory 樹狀子目錄中之 OU 中 (以及一般 Active Directory 容器中) 的所有使用者及電腦。

除了 OU 以外,某些預設 Active Directory 容器也包含網域內容。這些容器是在進行安裝時建立的,並且包含預設的系統管理群組、使用者及其他必要資料。Builtin 容器儲存內建的群組。Users 容器是新使用者帳戶 (透過不能識別 Active Directory 的舊版 API 建立) 的預設儲存區域。Computers 容器是新電腦物件 (原來是透過不能識別 Active Directory 的舊版 API 建立) 的預設儲存區域。

從管理的觀點來看,Active Directory 內容存在於下列位置:

  • 網域目錄磁碟分割中的 OU

  • 目錄網域磁碟分割中的 Builtin 容器

  • 目錄網域磁碟分割中的 Users 容器

  • 目錄網域磁碟分割中的 Computers 容器

委派與存取控制

藉由存取控制,系統管理員可以控制或委派其他使用者在 Active Directory 中操作物件的能力,並且能夠對網域控制站及檔案伺服器執行動作。瞭解 Active Directory 中的存取控制模型,對執行委派管理極為重要。本節概要說明 Active Directory 中的存取控制模型,並說明委派管理授權所需之存取控制項的所有相關問題。

存取控制項牽涉到三個元件:

  • 試圖存取資源的使用者的安全性認證

  • 保護資源防止存取的授權資料

  • 評估是否要授權要求存取的存取檢查

當使用者 (或是代表使用者的執行中處理程序) 試圖對可以設定保護的物件執行低階作業時,試圖進行的作業就必須接受存取檢查。存取檢查考慮使用者安全性認證,以及物件上要求執行低階作業的授權資料,以決定個別物件的相關使用者能力。如果存取檢查決定要求作業的使用者的安全性認證,以及目標物件的授權資料,提供執行作業的充分權限時,作業便會成功。如果使用者沒有執行受要求作業的充分權限,要求便會失敗。

委派 Active Directory 管理責任的動作,牽涉到識別對應管理工作的低階作業,以及執行低階作業的特定資料,接下來,則需適當地修改保護資料的授權設定值。

存取控制模型的特性

如同 Windows NT 4.0,Windows 2000 與 Windows Server 2003 中的存取控制模型具有下列特性:

使用者授權

提供系統識別使用者的能力,以及比對該使用者及資源存取條件的能力。任何可以由程式或處理程序操作的資源,都由可設定保護的物件代表。當使用者 (或是代表使用者的執行中處理程序) 試圖對可設定保護的物件執行作業時,試圖進行的作業就會遭受存取檢查;只在執行作業的使用者獲得對該物件執行這項作業的授權時,這項作業才會成功。

可設定保護物件的判定存取

提供指定物件存取使用者及存取條件的能力。每個可設定保護的物件都有一名擁有者。擁有者是唯一擁有繼承權利,可以允許或拒絕對物件進行存取的安全性主體。物件的第一個擁有者,通常是與建立物件的執行緒關聯的安全性主體。物件的擁有者可以藉由給予權限,將擁有權轉移到另一個安全性主體。此外,任何安全性主體如果獲得授權,取得電腦上的檔案或其他物件的擁有權,都能取得電腦上任何物件的擁有權。

權限的繼承

讓系統管理員能夠輕易指派及管理大型物件集合的權限。這項功能讓容器內的所有子物件都能繼承指定的權限,如此系統管理員即可指定權限以自動套用到容器內部包含的所有物件。

管理權限

讓電腦系統的系統管理員控制哪些使用者擁有執行不同管理功能的權利,或是採取影響全系統資源的任何動作。管理權限有兩種類型:使用者權利及權限。使用者權利控制使用者登入系統的各種方式。權限控制使用者執行特定工作的能力,這類工作通常會影響到整個電腦系統,而非僅限於特別的物件。

稽核

藉由記錄安全性記錄檔中的特定 (可指定) 類型動作,進行使用者或系統活動的追蹤。稽核資料可以用來偵測規避資源保護的嘗試,並建立電腦系統管理動作的記錄。

低階作業

如前所言,每項管理工作都牽涉到對資料執行一些低階作業。因此對於各種低階作業的瞭解,也就有助於瞭解管理工作如何作用的細節。

下列是能夠對資料執行的一些低階作業:

  • 建立物件。這項低階作業牽涉到 Active Directory 之中新物件的建立。例如,建立新使用者帳戶的管理工作,就牽涉到在 Active Directory 的一些父物件下,建立 User 類別物件的低階作業。

  • 檢視物件或是特定物件的所有子物件。這項低階作業牽涉到能夠檢視或觀看 Active Directory 之中的物件。例如,使用一或多項 Active Directory 管理工具時,檢視 OU 或網域的內容,牽涉到執行多項低階作業 (每個顯示物件一項作業),才能檢視 Active Directory 中的物件。

  • 讀取物件屬性。這項低階作業牽涉到存取與讀取 Active Directory 物件的一或多項屬性。例如,任何有關讀取使用者資訊 (例如電話號碼或姓名) 的管理作業,都牽涉到對一或多項使用者物件 (代表使用者帳戶) 的屬性執行低階讀取作業。

  • 修改物件屬性。這項低階作業牽涉到存取及修改 Active Directory 物件的一或多項屬性值。例如,任何有關修改使用者物件資訊 (例如電話號碼或辦公室位置) 的管理工作,都牽涉到低階的修改作業。變更使用者的密碼,牽涉到針對使用者帳戶的對應使用者物件的密碼屬性,執行低階的修改作業。同樣地,修改子網路對特定 Active Directory 邏輯站台的關聯,牽涉到針對代表特定子網路的物件的 siteobject 屬性,執行低階的修改作業。

  • 讀取物件的安全性描述元。每個可設定保護的物件都由安全性描述元 (是物件儲存內容的重要部分) 保護;在 Active Directory 物件中,安全性描述元是以 NTSecurity-Descriptor 屬性代表。安全性描述元中包含許多資訊,其中的存取控制項目清單,是用來指定物件的低階作業執行人員及其可執行的作業類型。任何牽涉檢視或變更權限的管理工作,都牽涉到讀取物件安全性描述元的低階作業。例如,決定群組成員資格修改人員的管理工作,就牽涉到讀取對應群組物件的安全性描述元的低階作業。

    Note 注意
    牽涉變更權限的管理工作,也會牽涉修改存取控制清單 (儲存在安全性描述元中) 的低階作業。相關說明,請參閱本文件稍後的<修改保護物件的存取控制清單>。

  • 修改保護物件的存取控制清單。安全性描述元中包含許多資訊,其中的存取控制項目清單,是用來指定物件的低階作業執行人員及其可執行的作業類型。任何牽涉檢視或變更權限的管理工作,都牽涉到讀取及修改存取控制清單 (儲存在物件的安全性描述元中) 的低階作業。例如,委派另一項管理工作,或是授權使用者存取一些物件的管理工作,都牽涉到讀取安全性描述元,以及修改儲存在對應物件安全性描述元中的存取控制清單的低階作業。

  • 修改物件的擁有者。每個可設定保護的物件都有一名擁有者。物件的擁有者具有修改物件的存取控制清單,以及轉移擁有權的繼承能力。物件擁有者的識別身份也儲存在物件的安全性描述元中。取得物件擁有權,或是轉移物件擁有權的管理工作,都牽涉到修改物件擁有者的低階作業。

  • 刪除物件或刪除整個物件樹狀子目錄。這項低階作業牽涉到從 Active Directory 刪除現有的物件。例如,刪除現有使用者帳戶的管理工作,牽涉到從 Active Directory 刪除代表使用者帳戶 User 類別物件的低階作業。

Active Directory 權限及其他存取權利

委派管理工作牽涉到對受委派的系統管理員,授與必要的適當權限,以執行該管理工作所牽涉的低階作業。因此,瞭解控制低階作業的各種權限,對於委派管理是極為重要的。

Active Directory 權限控制不同人員可以對 Active Directory 中的物件執行何種作業。這些權限可以區分為兩種廣泛的類別 –「標準權限」及「特殊權限」。標準權限控制標準作業,這類作業可以對 Active Directory 中的物件執行,例如建立及刪除子物件,或是讀取及寫入物件屬性。然而,某些 Active Directory 管理作業所需的存取控制方式,標準權限卻不支援。為協助這些作業,Active Directory 透過控制特定 Active Directory 管理工作的特殊權限,延伸標準存取的控制機制。

除了需要控制 Active Directory 資料低階作業的權限,某些管理工作牽涉到在網域控制站 (有時是成員工作站) 執行特定動作的能力。指定「使用者權利」即可允許這些動作。使用者權利與權限不同之處,在於這些權利控制使用者登入電腦的各種方式。使用者權利也控制使用者執行特定作業的能力,而這些作業通常會影響整個系統。

標準權限

權限規定哪些使用者可以特定存取物件 (Active Directory 物件、檔案系統資料夾或檔案),以及存取的方式。

Note 注意
Active Directory 套用預設的安全性設定值,其設計可以提供隨拆即用的安全性設定。這些安全性設定值,會對依預設值建立的特定安全性群組,授與特定的預先設定權限。

下列標準權限控制執行指定低階作業的能力:

  • 建立子物件。建立物件之子物件的權利。

  • 刪除子物件。刪除物件之子物件的權利。

  • 刪除。刪除物件的權利。

  • 刪除樹狀結構。不論子物件的權限為何,刪除物件所有子物件的權利。

  • 讀取權限。從物件的安全性描述元讀取資料的權利,但不包括在系統存取控制清單 (SACL) 中的資料。

  • 修改權限。修改物件安全性描述元中之判定存取控制清單 (DACL) 的權利。

  • 修改擁有者。取得物件擁有權的權利。

  • 讀取屬性。讀取物件屬性的權利。

  • 寫入屬性,對物件寫入屬性的權利。

  • 列出子物件。列出物件子物件的權利。

  • 列出物件。列出特定物件的權利。如果使用者沒有獲得此種權利的授權,而且使用者在父物件上沒有設定「列出子物件」,使用者就看不到物件。

    Note 注意
    物件的 dSHeuristics 屬性的第三個字元值如果是 0 或未設定,這項權利就會遭到忽略。如需這項權利的詳細資訊,請參閱 http://msdn.microsoft.com/library/default.asp?url=/library/en-us/ad/ad/controlling_object_visibility.asp 上的<控制物件能見度>(英文)。

  • 存取系統安全性。 取得或設定物件安全性描述元中 SACL 的權利

如需標準 Active Directory 權限的詳細說明,請參閱本文件隨附的<Active Directory 管理委派最佳實務:附錄>中的<附錄 C:Active Directory 標準權限>。

特殊權限

除了套用到 Active Directory 物件 DACL 中的標準權限組,對於標準權限不支援的特殊需求,則有其他適用的權限。這些權限有兩種類別:

  • 驗證寫入

  • 延伸權利

驗證寫入

Active Directory 的某些管理作業,在對 Active Directory 物件屬性寫入值之前,除了架構所需要的檢查以外,系統還會執行值的檢查或是驗證。驗證寫入是一種特殊的權限類型,在修改 Active Directory 物件的屬性之前,協助執行驗證。這種權限類型確定輸入的屬性值能符合所需的語意、在合法的值範圍之內,或需進行不會對簡單低階屬性寫入執行的其他特殊檢查。驗證寫入有一項相關的特殊權限,因而與 Write propertyName 權限有所不同。Write propertyName 權限允許任何值寫入屬性,而不經過值的檢查。

延伸權利

對於在 Active Directory 具有一些特殊意義,標準存取權利組卻沒有涵蓋的作業,延伸權利提供執行存取檢查的能力。例如,可以授與 User 類別 Send As 權利,讓郵件應用程式決定特定使用者是否允許其他使用者代表他 (她) 傳送郵件。為了滿足這些特殊需求,Active Directory 透過 controlAccessRight 物件類別延伸了標準的存取控制機制。這些物件稱為「延伸權利」。

controlAccessRight 類別的例項是由系統所建立的。這些物件儲存在 CN=Extended-Rights,CN=Configuration,DC=ForestRootDomain。不必經過管理設定,這些物件的屬性即可自動識別適當物件的 DACL 中的存取類型。

如需所有延伸權利的清單,請參閱本文件隨附的<Active Directory 管理委派最佳實務:附錄>中的<附錄 D:Active Directory 延伸權利>。

屬性集與延伸權利

Active Directory 也使用 controlAccessRight 物件類別來代表屬性集。屬性集就是物件屬性的子集。例如,「個人資訊」屬性集包括街道地址及電話號碼等屬性 (兩者都是使用者物件的屬性)。屬性集相當有用,可用來在單一 ACE 中指定屬性子集的存取。

與控制存取權利相關的現有文件,似意指屬性集為延伸權利,或是與延伸權利密切相關。然而,屬性集與延伸權利沒有任何關係,只是在系統中,代表它們的物件是屬於相同的類別。

使用者權利

使用者權利是對電腦系統執行作業的能力。使用者權利獨立於 Active Directory 成員資格,會套用到每部 Windows 電腦。使用者權利對於網域控制站上的服務管理極為重要。

使用者權利與權限不同之處,在於權限控制個別物件的存取,使用者權利則控制使用者登入系統的各種方式。此外,使用者權利也控制會影響整個系統的特定電腦作業。例如網域控制站上的使用者權利,除了會影響 Active Directory,也會影響整個網域。

使用者權利是在電腦的本機原則設定的。網域控制站的使用者權利,是在「網域控制站安全性原則」設定;至於網域中其他所有電腦的使用者權利,則在「網域安全性原則」設定。加入網域之電腦的使用者權利,也可以使用連結到 OU 的「群組原則」來指定。網域中所有網域控制站的使用者權利,都是在「預設網域控制站原則群組原則物件」(GPO) 中指定的,並會套用到「網域控制站 OU」。因此,網域中的所有網域控制站都共用相同的使用者權利指派組合。

Note 注意
雖然系統允許對網域中的不同網域控制站,指定不同的使用者權利值,這項設定並未受到支援。根據設計,相同網域中的所有網域控制站都應該有完全相同的使用者權利值。

使用者權利有兩種類型:

  • 權限。 指定使用者執行特定工作的權利,通常會影響整個電腦系統。

  • 登入權利。 指定使用者登入系統的方式。例如,使用者可能具有從遠端登入系統的權利,卻不能從本機登入。

系統管理員可以對安全性群組帳戶或個別使用者帳戶指派特定權利。這些權利授權使用者執行特定動作,例如互動式系統登入,或是備份檔案及目錄。

使用者權利定義本機層級的功能。雖然使用者權利可以套用到個別使用者帳戶,群組帳戶才是使用者權利的最佳管理對象。採用這種做法,可以確定以群組成員登入的使用者,將自動獲得該群組的相關權限。藉由將使用者權利指派到群組,而非個別的使用者,您可以簡化管理使用者權利指派的工作。

指派到群組的使用者權利,也會套用到群組的所有成員,並在這些成員屬於群組時一直有效。如果使用者是多個群組的成員,使用者的權利就會累積,這表示使用者擁有一組以上的權利。指派給一個群組的權利,唯一可能與指派給其他群組的權利發生衝突的情況,就是登入權利。一般而言,指派給一個群組的權利,不會與指派給其他群組的權利發生衝突。若要移除使用者的權利,系統管理員可以直接將使用者從群組中移除。

如需使用者權利的詳細資訊,請參閱《Microsoft Windows 2000 安全性設定手冊》中的<附錄 C - 使用者權利與權限>(英文),網址為 http://www.microsoft.com/technet/Security/topics/issues/w2kccscg/w2kscgcc.mspx;以及《威脅與反制措施手冊》中的<第 4 章 - 使用者權利指派>(英文),網址為http://www.microsoft.com/technet/security/topics/hardsys/tcg/tcgch04.mspx

存取檢查的元件

儲存在 Active Directory 的所有資料都由物件代表,而每個物件都可以個別或共同設定保護。「設定保護」表示使用者或代表使用者執行的處理程序,試圖對 Active Directory 物件執行作業時,安全性系統在授與要求的存取之前,會先進行檢查,以決定使用者或處理程序是否對要求的物件擁有正當存取權。

存取檢查考慮下列項目:

  • 要求作業的安全性主體認證

  • 目標資源上的授權資料,此項資料儲存在可設定保護的物件屬性中

存取檢查會由儲存要求資源的電腦上的本機安全性子系統執行。存取檢查比較使用者的安全性認證和授權資料,以決定使用者對各別物件的能力。如果存取檢查決定要求作業的使用者或處理程序的授權資料,包含執行作業的充分權限,作業便會成功。如果使用者沒有執行要求作業的充分權限,作業便會失敗。

安全性主體認證

任何系統能夠驗證的實體,都稱為「安全性主體」。因此,安全性主體可能是使用者、電腦,或是在使用者或電腦的安全性內容中執行的執行緒或處理程序。「安全性內容」就是描述電腦上特定安全性主體的識別資料及功能的資訊。在 Windows Server 2003、Windows 2000 Server 及 Windows NT 中,所有的活動都發生在安全性內容中。安全性子系統使用安全性內容,來決定處理程序及其執行緒可以對電腦上的物件執行何種動作,以及負責的安全性主體的識別資料。

安全性識別元

安全性主體以「安全性識別元」(SID) 代表,這是一個識別安全性主體的唯一值。每個安全性主體在建立時,都會獲得一個 SID。安全性群組也是安全性主體,因此可以用 SID 識別。使用者安全性主體可以是多個安全性群組的成員。因此,使用者的認證,包括使用者為其成員的所有群組的 SID。

Note 注意
這條規則有例外 - 網域 A 所建立的網域本機群組的成員資格,不會出現在加入網域 B 的電腦所產生的存取權杖中。

存取權杖

安全性主體的安全性內容以「存取權杖」代表。當安全性主體登入電腦時,電腦上的安全性子系統會對安全性主體進行驗證。在驗證完成後,安全性子系統便會建立該安全性主體的存取權杖。存取權杖是一種資料結構,其中包含安全性主體 SID、安全性主體所屬群組 (先前所提到來自不同網域的網域本機群組除外) 的 SID,以及本機電腦上之安全性主體的權限 (又稱使用者權利) 清單。每個使用電腦本機鍵盤登入,或是透過網路連線由遠端登入的安全性主體,系統都會為其建立存取權杖。

存取權杖在安全性主體登入的電腦上,提供安全性主體動作的安全性內容。請注意以下重要事項:當使用者登入工作站,並要求存取 Active Directory 中的資料時,在使用者繫結的目標網域控制站上,便會產生登入工作階段以及使用者的安全性內容。網域控制站中建立的存取權杖,代表正在存取 Active Directory 使用者的認證。因此,存取檢查會使用此存取權杖中的資訊,而非使用者登入之工作站的資訊。

如需 SID 的詳細資訊,請參閱 Windows 2000 Server Resource Kit 中,《分散式系統手冊》的<存取控制>;或是參閱 http://go.microsoft.com/fwlink/?LinkId=18852 上的<存取控制>(英文)。如需知名 SID 的詳細資訊,請參閱本文件隨附的<Active Directory 管理委派最佳實務:附錄>中的<附錄 B:預設的 Active Directory 安全性群組>。

安全性群組

安全性群組是不同的安全性主體,可以用來將使用者集合為類別及角色,以套用存取控制。安全性群組中的領域,定義了可以套用安全性群組的位置;安全性群組中的成員資格需求,則定義安全性群組可以擁有的成員,以及安全性群組可以成為成員的群組。可以使用的安全性群組類型,以及使用者的存取權杖中是否顯示安全性群組,完全依網域模式 (Windows 2000) 以及網域或樹系功能等級 (Windows Server 2003) 決定。

安全性群組在管理委派中扮演關鍵性的角色。安全性群組代表管理角色的特定例項;此外,任何系統管理員只要被指派安全性群組所代表的特定管理角色,則受委派系統管理員的使用者帳戶,就是安全性群組的成員。由於各安全性群組類型的領域、適用性及用途殊異,因此,瞭解各種類型的安全性群組,將有益於委派的實作。

安全性群組有四種類型,不同之處主要在於其套用方式、領域及成員資格條件:

  • 本機群組 (又稱「內建」群組)

  • 網域本機群組

  • 通用群組

  • 萬用群組

群組領域

要有效地使用安全性群組進行管理委派,必須策略性運用 Active Directory 中可供使用的群組領域。群組領域識別可以套用該群組的範圍 (網域或樹系):

  • 網域本機。 單一網域;也就是說,網域本機群組只有在建立群組的網域中,才能檢視並管理,因此,也只能指派該網域中的物件權限給網域本機群組。不過,網域本機群組的成員,可以是網域本機群組所在網域和其他網域的使用者和群組。因此,使用網域本機群組的最佳方式,便是將其作為資源群組,用來收集對某項資源需要相同存取等級的其他群組。與其將多個群組加入一個 ACL,不如將所有群組都加入一個網域本機群組,接下來,您只需要將該網域本機群組加入目標物件的 ACL。

    Note 注意
    指定 Active Directory 網域物件特定屬性的讀取存取,或指定 Active Directory 網域物件的列出存取時,如果複寫到通用類別目錄伺服器的部分屬性集中,包含上述一或多個屬性,請勿使用網域本機群組來設定權限。此時請使用通用群組。

  • 通用。 樹系中的所有網域;也就是說,通用群組可以在所屬網域及所有受信任網域檢視並管理,因此,可以指派樹系中所有網域的物件權限給通用群組。由於在整個樹系都能看到通用群組,因此,使用這類群組的最佳方式,便是用來將使用者或使用者群組織為不同的管理角色。

  • 萬用。 樹系中的所有網域;也就是說,萬用群組可以在所屬網域及所有受信任網域檢視並管理,因此,可以指派樹系中所有網域的物件權限給萬用群組。當多種角色需要對同一項資源進行相同的存取時,請將通用群組加入單一萬用群組,再將萬用群組加入該資源的網域本機群組。

群組領域可用性及成員資格規則

群組領域會隨網域或樹系中的功能狀態而改變。並非在所有狀態下都可以使用所有領域,而群組成員資格,則必須根據 Windows 2000 樹系中的網域模式,以及 Windows Server 2003 中的網域功能等級,由網域或樹系中的狀態來決定。網域模式或功能等級如果是「混合」,表示其所提供的功能與 Windows NT 4.0 網域控制站一致。因此在混合網域中,無法使用不相容於 Windows NT 4.0 的功能。

下列規則限制群組領域的可用性:

  • 網域本機群組永遠可供使用。

  • 通用群組永遠可供使用。

  • 在以下環境中無法使用萬用群組:

    • Windows 2000 混合模式網域。

    • 混合 Windows 2000 網域功能層級的 Windows Server 2003 網域。

下列規則限制安全性群組的成員資格:

  • 網域本機群組:

    • 永遠可以包含來自樹系中任何網域的個別使用者帳戶與通用群組。

    • 也可以包含來自樹系中任何網域的萬用群組,以及來自 Windows 2000 原始模式網域或 Windows Server 2003 網域 (具有 Windows 2000 原始或 Windows Server 2003 網域功能等級) 中相同網域的網域本機群組。

  • 通用群組:

    • 永遠可以包含來自相同網域的使用者。

    • 也可以包含來自 Windows 2000 原始模式或 Windows Server 2003 網域 (具有 Windows 2000 原始或 Windows Server 2003 網域功能等級) 中相同網域的通用群組。

  • 萬用群組 (可供使用時) 永遠可以包含來自樹系中任何網域的使用者帳戶、通用群組及其他萬用群組。

如需群組領域及成員資格規則的詳細資訊,請參閱 Windows Server 2003 的說明及支援中心。如需安裝 Active Directory 時建立的預設管理清單及其預設能力,請參閱本文件隨附的<Active Directory 管理委派最佳實務:附錄>中的<附錄 N:預設的 Active Directory 服務管理群組>。

本機安全性群組

本機群組可以用來授與對電腦上本機資源的存取。因此,每部執行任何 Windows 版本的電腦 (工作站、伺服器或網域控制站),都擁有一組預設的群組帳戶。在網域控制站上,這些安全性群組都儲存在 Builtin 容器的網域本機帳戶。網域控制站沒有本機電腦群組。在工作站及伺服器上,這些帳戶僅為所屬電腦的本機帳戶。

這些預設本機帳戶的 SID,會獨立於使用者的網域及電腦的網域,一直放置在使用者的權杖之中。當電腦 (工作站或伺服器) 加入網域時,依預設值,Domain Admins 群組便會成為電腦 Administrators 本機群組的成員。

本機群組可以包含任何安全性主體。只有一個例外,網域控制站上的「內建」帳戶無法包含網域本機群組。

如需依預設值指派給本機群組的能力的詳細資訊,請參閱您的 Windows 版本的說明及支援中心。

群組成員資格變更及複寫

委派管理可能牽涉到新增或移除大型群組的成員。變更大型群組的成員資格,可能會在具有 Windows 2000 網域控制站的 Windows 2000 及 Windows Server 2003 樹系中,造成大量的複寫。複寫增加的原因,在於群組成員資格儲存在單一、連結、多值的群組物件「成員」屬性中。而且在使用 Windows 2000 樹系及網域控制站時,這種屬性是能夠複寫的最小值。因此,變更群組的成員資格,便會造成所有群組成員的複寫,而非僅限於變更的成員值。此外,如果兩名系統管理員在不同的網域控制站上,變更相同群組的成員資格,變更可能會遺失;在相同的複寫等待時間裡,只有其中一項變更會寫入 Active Directory 資料庫。

在 Windows Server 2003 樹系中,已經改進群組複寫來消除這些複寫問題,不過,這些改進具有功能等級需求。在具有下列樹系功能等級的 Windows Server 2003 樹系中,都可以使用這些改進功能:

  • Windows Server 2003 (所有網域控制站都執行 Windows Server 2003),或是

  • Windows Server 2003 interim (所有網域控制站都執行 Windows Server 2003 或 Windows NT 4.0,不過沒有網域控制站執行 Windows 2000)。

在這些功能等級中,連結、多值屬性的離散值都會分開複寫,而不會複寫整個屬性。在 Windows Server 2003 樹系中的 Windows 2000 樹系功能等級 (預設等級,適合無法辨識一些新功能的 Windows 2000 網域控制站),或是在所有的 Windows 2000 樹系中,屬性依然是最小的複寫單位,而更新大型群組 (多於 5,000 個成員),依然會消耗過多的網路頻寬及遺失變更。因此,Windows 2000 樹系不支援擁有多於 5,000 個成員的群組。

如需 Windows Server 2003 功能等級的詳細資訊,請參閱《Microsoft® Windows® Server 2003 Deployment Kit》中<設計及部署目錄與安全性服務>內的<啟用進階 Windows Server 2003 Active Directory 功能>;或參閱 http://go.microsoft.com/fwlink/?LinkId=6937 上的<啟用進階 Windows Server 2003 Active Directory 功能>(英文)。

目錄物件上的授權資料

Active Directory 中的所有物件,都是由保護物件的授權資料來設定保護。這項資料儲存在每個物件的「安全性描述元」屬性中。

安全性描述元

安全性描述元包括擁有者與群組識別元,以及兩種類型的存取控制清單 (ACL):

  • 擁有者。 物件目前擁有者的安全性描述元 (SID)。物件擁有者通常是 (但非一定是) 該物件的建立者。

  • 群組。 擁有者的主要群組的 SID。Active Directory 存取控制項不會使用這項安全性描述元的元件,只是為了符合 UNIX 標準作業系統介面 (POSIX,Portable Operating System Interface) 的規範。

  • 判定存取控制清單 (DACL)。 指定誰對物件擁有何種存取權,含有零或多個存取控制項目 (ACE) 的清單。

  • 系統存取控制清單 (SACL)。 指定要產生何種稽核,含有零或多個存取控制項目的清單。

物件擁有者及建立者

每個可設定保護的物件都有一個擁有者。擁有者是唯一擁有繼承權利的人員,能夠控制誰能對物件擁有執行作業的權限,以及執行作業的方式。對於特定的使用者或使用者群組,物件的擁有者可以授與或拒絕不同的存取種類。擁有者可以授與其他安全性主體取得擁有權的權限,以轉移擁有權。

Note 注意
此外,任何在網域控制站上擁有物件的「取得所有權」權限,以及其他資源權限 (可在「預設網域控制站安全性原則」中指定) 的安全性主體,都可以取得該網域的網域控制站上,任何一項 Active Directory 物件及可設定保護資源的擁有權。Active Directory 或本機電腦上的內建系統管理員群組,預設指派有使用者權利,允許此群組取得電腦上所有物件的擁有權。

瞭解如何指派物件的擁有者,以及如何轉移擁有權,都是相當重要的。物件的第一個擁有者,通常是與建立物件的執行緒關聯的安全性主體。當使用者提出在 Active Directory 建立新物件的要求時,網域控制站上的安全性子系統就會用使用者存取權杖中的資訊,來建立物件的擁有權。存取權杖中的資訊是由連絡的網域控制站所產生的。除了其他資訊,存取權杖還包含下列關於使用者的資訊:

  • 使用者。 Token-user 欄位,包含登入使用者的 SID。

  • 預設物件擁有者 (Default-owner-in-token) 欄位,包含使用者或安全性群組 (使用者建立之任何物件的擁有者) 的 SID。

在建立存取權杖時,除非使用者是特定系統管理員群組的成員,使用者的 SID 都會插入 Default-owner-in-token 欄位。在此情況下,群組的 SID 也會插入此欄位,且任何系統管理員群組的成員都可以管理物件。如果使用者是一個以上此種系統管理員群組的成員,具有最高授權等級的群組,就是物件的擁有者。如果您是物件的擁有者,您無法自行將擁有者變更為其他使用者或群組;也就是說,您無法變更「擁有者」欄位值來指定擁有者。然而,您可以套用使用者權利,以允許其他使用者取得擁有權。

如需成為預設物件擁有者之系統管理員群組的清單,在 Windows 2000 及 Windows Server 2003 有何不同的詳細資訊,請參閱本文件隨附的<Active Directory 管理委派最佳實務:附錄>中的<附錄 J:預設的 Active Directory 物件擁有者>。

DACL

DACL 包含識別可以存取物件的安全性主體的 ACE。每個 ACE 都有欄位指定各別安全性主體的能力 (權限)。對於加入到存取控制清單中的每個安全性主體,您都可以定義一組權限,以指定使用者或使用者群組能夠操作物件的範圍。如果使用者沒有出現在 ACE 中 (以個人或群組成員的形式),這名使用者就沒有該物件的存取權。

SACL

SACL 與 DACL 非常相似,不過,SACL 是用來稽核物件,而非控制對物件的存取。發生稽核動作時,作業系統會將事件記錄到安全性記錄檔中。每個 SACL 之中的 ACE 都具有下列項目:指示稽核是否由成功、失敗或兩者均可觸發的標頭;指示要監視的特定使用者或安全性群組的 SID;以及列出稽核作業的存取遮罩。SACL 的內容是由本機電腦的安全性管理員所控制。安全性管理員是已經獲得「管理稽核與安全性記錄檔」權限指派的使用者。依預設值,這項權限會指派到內建的系統管理員群組。

DACL 與 ACE

在多數情況下,委派牽涉對 Active Directory 物件指定權限,以授權受委派的使用者執行管理工作。如前所言,這些管理工作牽涉到可以個別授權的多項低階作業。授權低階作業,牽涉到識別代表低階作業的目標資料的物件,以及適當修改目標物件安全性描述元的 DACL 中的權限。這項授權通常會以存取控制項目 (ACE) 的格式表達。多方面瞭解 DACL 與 ACE,對於能夠成功委派管理是極為重要的。本節說明 DACL 與 ACE 的詳細資料。

DACL 來自何處

瞭解 DACL 中的 ACE 來自何處相當重要。當您在 Active Directory 以程式建立物件時,身為物件的擁有者,您可以建立明確的安全性描述元,並透過 API 將之傳入。權限是由「安全性描述元定義語言」(SDDL) 指定。如果您建立明確的安全性描述元,在此安全性描述元 DACL 中的 ACE,將與此物件由其父物件的安全性描述元所繼承的任何可繼承 ACE 合併。如果沒有指定明確的安全性描述元,預設的安全性描述元便會套用到新的物件。架構中的每個物件類別定義,都擁有稱為 Default-Security-Descriptor 的屬性。如果沒有在建立物件時指定明確的安全性描述元,這個預設安全性描述元便會成為物件的安全性描述元。在此情況下,預設描述元 DACL 中的 ACE,將與此物件由其父物件的安全性描述元所繼承的任何可繼承 ACE 合併。

在物件存留期間中,物件會繼續繼承出現在父物件安全性描述元 DACL 中的任何可繼承 ACE。父物件中加入新的可繼承 ACE,物件也會繼承這些新的 ACE。Inherited-object type 欄位是否設定,以及其設定值為何,將決定這些繼承的 ACE 是有效或無效。同樣地,在父物件或任何父物件所繼承的物件中,移除任何的可繼承 ACE,此物件上的可繼承 ACE 也會遭到移除。

繼承讓針對 Active Directory 容器物件定義的存取控制資訊,能夠套用到任何隸屬的物件,包括其他容器及其物件。採用繼承的方式,就不需要在每次建立子物件時套用權限。

Note 注意
如有需要,您可以變更預設權限;預設權限是在架構中,某個物件類別的預設安全性描述元中指定。然而,最佳的作法,是除非需要變更樹系中所有網域內,某種類別之所有例項的預設安全性,您應該避免變更該物件類別的安全性描述元的預設權限。
此外,您也應該避免從網域根物件的 DACL 中移除任何 ACE。否則,可能會影響 Active Directory 元件特定部分的功能,或是依存 Active Directory 資料或具備 Active Directory 資料存取權 (藉由網域根物件 DACL 中的有效權限) 的應用程式功能。

服務管理員帳戶上的預設安全性描述元保護

為防止各網域中之關鍵服務管理員帳戶的安全性描述元遭到修改,並因而無法使用,主要網域控制站 (PDC) 模擬器上會執行背景處理程序,以定期檢查帳戶,並在受保護的帳戶上套用標準安全性描述元。如果有惡意使用者或其他的系統管理員,試圖修改系統管理員帳戶上的安全性描述元,這項處理程序便會以保護設定值覆寫變更。這項處理程序在系統啟動 15 分鐘後啟動,然後每半個小時執行一次。這項重新整理間隔是無法設定的。

在 Windows Server 2000 Active Directory 中,下列服務管理帳戶及其巢狀成員群組與使用者,都受到這項處理程序的保護:

  • Enterprise Admins

  • Schema Admins

  • Administrators

  • Domain Admins

  • Server Operators

  • Backup Operators

  • Print Operators

在 Windows Server 2003 Active Directory 中,Account Operators 帳戶也受到這項處理程序的保護。

這些服務管理員帳戶的主安全性描述元,都儲存為 AdminSDHolder 物件的安全性描述元;AdminSDHolder 物件位於網域目錄磁碟分割 (CN=AdminSDHolder,CN=System,DC=DomainName) 的系統容器中。

此物件上的安全性描述元具有兩種用途:

  • 控制 AdminSDHolder 物件存取。

  • 作為主安全性描述元,定期套用到服務管理員群組及其成員,確定它們持續受到保護。

如需瞭解 AdminSDHolder 物件的主安全性描述元的預設值,請參閱本文件隨附的<Active Directory 管理委派最佳實務:附錄>中的<附錄 K:AdminSDHolder 物件的主安全性描述元中的預設值>。

如果您要修改某個服務管理員群組或是其任何成員帳戶的安全性描述元,您必須修改 AdminSDHolder 物件的安全性描述元,使兩者套用的安全性描述元一致。修改時請務必小心,將套用到所有受保護管理員帳戶的預設值也會跟著變更。如需變更 AdminSDHolder 安全性描述元的詳細資訊,請參閱《保護 Active Directory 安裝最佳實務手冊:第一部分》中,<附錄:程序>內的<變更 AdminSDHolder 的安全性描述元>(英文),網址為 http://go.microsoft.com/fwlink/?LinkID=21258

DACL 中的 ACE 順序

DACL 中包含一份經過排序的 ACE 清單。DACL 中的 ACE 順序會影響到存取檢查的結果。依預設值,ACL 具有稱為「標準順序」的偏好順序。雖然 DACL 可以不按照標準順序排序,多數 UI 工具在對物件執行作業時,都會依標準順序排列 DACL。

存取檢查演算法會依序檢查 DACL 中的 ACE。對每項由使用者要求的權限,演算法都會停頓在允許或拒絕要求存取的第一個 ACE。因此,存取檢查的結果取決於 ACE 在 DACL 中的相對順序。

以下是 DACL 中的 ACE 標準順序:

  • 明確 ACE 優先於繼承 ACE

  • 在一組指定的明確或繼承 ACE 之中,「拒絕 ACE」會優先於「允許 ACE」

這項效果可以以下列標準化 DACL 摘要表示:

明確拒絕 Ace 1

...

明確拒絕 Ace n

明確允許 Ace 1

...

明確允許 Ace n

繼承拒絕 Ace 1

...

繼承拒絕 Ace n

繼承允許 Ace 1

...

繼承允許 Ace n

而且,在「拒絕繼承 ACE」與「允許繼承 ACE」的組合內,父物件上指定的可繼承 ACE,將優先於在父物件的父物件上指定的可繼承 ACE,以此類推,一直到在網域根物件指定的 ACE 為止。因此,發生權限衝突時,父物件的可繼承 ACE 集合上指定的權限,將覆寫物件階層中,更高階物件的可繼承 ACE 集合上指定的權限。

如果以程式方法傳入的安全性描述元沒有指定 DACL,而且沒有從父物件繼承 ACE,安全性描述元就可能不包含任何 DACL。安全性描述元也可以擁有不含任何 ACE 的 DACL。

Note 注意
DACL 在建立時或之後的任何時間,都可以用程式設定為 NULL (表示未傳送 DACL)。

沒有 DACL 和 DACL 沒有 ACE,兩種安全性的效果有顯著的差別:

  • 安全性描述元沒有 DACL,表示 Everyone 獲得無條件存取權。

  • 空白的 DACL,則表示沒有人獲得存取授權。

在空白 DACL 的情況下,物件的擁有者一定擁有修改 DACL 及授與權限的繼承權利。如果沒有 DACL,擁有者就能以程式建立 DACL,然後再授與權限。

如需使用 SDDL 以程式指定權限的詳細資訊,請參閱 Web 資源網頁 (英文) 的 Microsoft Platform Software Development Kit (SDK) 連結,網址為 http://go.microsoft.com/fwlink/?LinkID=291

受保護的 DACL

物件的 DACL 可以標記為受保護。將 DACL 標記為受保護,將封鎖繼承父物件的任何權限。父物件 DACL 中的任何可繼承權限,此物件都不會繼承。此外,DACL 標記為受保護的物件,其子物件也不再繼承受保護物件的父物件所指定的任何權限。然而,除非子物件也將其 DACL 標記為受保護,它們將繼續繼承在受保護物件的 DACL 中指定的可繼承權限。

ACE

ACE 包含允許、拒絕或稽核存取之特定安全性主體的授權方式。

DACL 中的每個 ACE 都具有下列結構:

(ACE Type ; ACE Flags ; Permissions ; Object Type ; Inherited Object Type ; Trustee)

以下為 ACE 不同欄位的簡短說明:

  • ACE Type – 此欄位指定 ACE 為「允許類型 ACE」或「拒絕類型 ACE」。「允許類型 ACE」允許存取,「拒絕類型」則拒絕存取。

    此欄位接受以下其中一種值 (共六種):

    • Allow - 表示 ACE 屬於標準的 ACCESS ALLOWED 類型,其中 ObjectType 與 InheritedObjectType 欄位為 NULL。

    • Deny - 表示 ACE 屬於標準的 system-audit 類型,其中 ObjectType 與 InheritedObjectType 欄位為 NULL。

    • System Audit - 表示 ACE 屬於標準 system 類型,其中 ObjectType 與 InheritedObjectType 欄位為 NULL。

    • Object Allow - 表示 ACE 對物件或物件的子物件授權存取,例如屬性集或屬性。ObjectType 或 InheritedObjectType 欄位,或是兩者都包含識別屬性集、屬性、延伸權利或子物件類型的 GUID。

    • Object Deny - 表示 ACE 對物件或物件的子物件拒絕存取,例如屬性集或屬性。ObjectType 或 InheritedObjectType 欄位,或是兩者都包含識別屬性集、屬性、延伸權利或子物件類型的 GUID。

    • Object System Audit - 表示 ACE 對物件或物件的子物件稽核存取,例如屬性集或屬性。ObjectType 或 InheritedObjectType 欄位,或是兩者都包含識別屬性集、屬性、延伸權利或子物件類型的 GUID。

  • ACE Flags - 此欄位包含多個與繼承相關的旗標,用來指定 ACE 繼承。

    此欄位可以包含,但不限於下列一或多個值:

    • Container Inherit - 子物件將繼承這個存取控制項目 (ACE)。除非設定 ADS_ACEFLAG_NO_PROPAGATE_INHERIT_ACE 旗標,繼承的 ACE 將可以繼承。

    • No Propagate - 系統將清除子物件的繼承 ACE 的 ADS_ACEFLAG_INHERIT_ACE 旗標。如此可防止 ACE 由物件的子代繼承。

    • Inherit Only - 表示 ACE 不對其所附屬的物件行使存取控制,而只繼承。如果沒有設定這個旗標,ACE 就是有效的 ACE,將對其所附屬物件行使存取控制。

    • Inherited - 表示 ACE 是否為繼承而來。系統會設定這個位元。

  • Permissions - 此欄位包含授與或拒絕信任者 (將套用此 ACE 中指定之權限的安全性主體) 的權限規格。此欄位可以包含下列其中一種值:

    • RC – 讀取控制

    • SD – 標準刪除

    • WD – 寫入 DACL

    • WO – 寫入擁有者

    • RP – 讀取屬性

    • WP – 寫入屬性

    • CC – 建立子物件

    • DC – 刪除子物件

    • LC – 列出子物件

    • LO – 列出物件

    • SW – 驗證寫入

    • DT – 刪除樹狀結構

    • CR – 延伸權利

    如需這些權利的詳細資訊,請參閱本文件隨附的<Active Directory 管理委派最佳實務:附錄>中的<附錄 C:Active Directory 標準權限>。

  • Object Type - 這個欄位可以包含代表物件類別的 GUID。如果指定的權限為「讀取屬性」或「寫入屬性」,GUID 就會指向屬性或屬性集。指定權限為「建立子物件」或「刪除子物件」時,GUID 便會指定物件類別

  • Inherited Object Type - 此欄位可以包含物件類別的 GUID。設定這種 GUID 時,ACE 只有在 GUID 指向類別的物件中,才是有效的 ACE。

  • Trustee - 此欄位包含將套用此 ACE 中指定之權限的安全性主體 SID。

如需不同 ACE 欄位的詳細說明,請參閱 MSDN Library 上的<IADsAccessControlEntry>(英文),網址為 http://msdn.microsoft.com/library/en-us/adsi/adsi/iadsaccesscontrolentry.asp

範例 ACE

下列範例 ACE 說明 ACE 如何指定委派方式:

Note 注意
為使下列範例清楚易懂,將顯示類別或屬性的顯示名稱,而非類別的實際 GUID,並使用群組的名稱,而不使用「帳戶管理員」的 SID。實際上,ACE 中是使用 GUID 及 SID,而非此處顯示的名稱。

  • 以下 ACE 授權帳戶管理員在 OU 中,及以此 OU 為根目錄之樹狀子目錄內的所有 OU 中,建立使用者物件:

    • (OA ; CI ; CC ; User Class ; Organizational Unit class ; Account Admins)

  • 以下 ACE 只授權帳戶管理員在 OU (僅限於「使用者」物件) 中重新設定使用者密碼:

    • (OA ; CI ; CR; Reset Password ; User class ; Account Admins)

  • 以下 ACE 授權帳戶管理員修改特定 OU (套用 ACE 的 OU) 中的所有群組物件 (僅限群組物件) 的成員資格。對於任何可能為其他 OU (可能為套用 ACE 的 OU 的子物件) 之子物件的群組,這種 ACE 不會授權帳戶管理員修改群組成員資格。

    • (OA ; ; WP; Member ; Group class ; Account Admins)

    請注意,在此 ACE 中不存在繼承旗標。

繼承與組織單位

Active Directory 資料儲存在容器中。部分容器僅具一般用途,部分容器則具有專門用途,因此,後者儲存的資料都具有一定的特質。一般容器是由一般類別的 Container 物件代表,而特定容器則是由特定物件類別代表。「設定」磁碟分割中的 Services 容器屬於一般容器,用於儲存代表服務特定資訊的各種物件。「設定」磁碟分割中的 Site 容器則屬於特定容器類?,用於儲存站台、子網路與相關資訊,以 SitesContainer 類別物件代表。儘管不同種類的設定資訊可以儲存在不同種類的容器中,網域資料通常都儲存在稱為「組織單位」(OU) 的特殊物件類別中。

OU 是具有特殊目的的容器,可以用來儲存使用者帳戶、電腦帳戶及群組等網域資料。此外,OU 中也可以儲存其他 OU。如此一來,網域資料便會儲存在單一 OU 階層中,成為網域資料的容器。OU 與其他容器的不同之處,在於 OU 可以套用到「群組原則」。在 OU 中套用「群組原則」,使用者及電腦物件便會繼承 OU 所套用的「群組原則」;而上述使用者及電腦物件中的「群組原則」生效順序,將依該「群組原則」的套用優先順序決定。

OU 構成網域內特殊目的容器的階層,用於儲存使用者與電腦帳戶及安全性群組,並將「群組原則」套用到使用者與電腦帳戶集合。組織根據「群組原則」需求建立 OU 階層結構,並根據使用者與電腦帳戶的「群組原則」需求,將使用者與電腦帳戶及群組集中儲存到特定的 OU 中。

組織單位也在管理委派中扮演主要的角色。管理委派牽涉對系統管理員群組授與充分權限,以便讓群組擁有執行特定管理工作的能力。管理授權委派通常用於管理一組使用者。對於屬於同組使用者的特定使用者帳戶,授與系統管理員群組權限,是一種可行的管理方式;個別修改同組帳戶中的每個使用者帳戶 DACL,通常無法辦到且不切實際。若要簡化委派授權及控制存取必要權限的套用,您可以使用 Active Directory 的繼承功能,在物件上套用可繼承的權限。

系統管理員不必明確指定每個管理物件的 DACL,只需要在 OU 或包含一或多個物件的物件上指定相同的權限,並將指定權限標記為可繼承權限。Active Directory 的繼承功能,會將任何指定為可繼承的權限,傳播到套用該權限的容器內的所有子物件,以及以套用可繼承 ACE 之容器物件為根目錄的樹狀子目錄中,任何容器物件的所有子物件。

由於網域資訊一般都儲存在 OU 之中,可繼承權限一般都會套用到 OU 物件,而且繼承會將所有可繼承的權限,傳播到以套用可繼承權限之 OU 為根目錄的樹狀子目錄中的所有物件。

組織在設計 OU 結構時,應該考慮兩個主要需求:

  • 群組原則套用需求

  • 管理委派需求

安裝 Active Directory 時,只會自動建立一個 OU (Domain Controlers)。Domain Controllers 是新網域控制站的預設容器。

此外,還會自動建立其他幾個容器,而其中的 Computers 與 Users,對網域資料存放有益:

  • Computers 代表新電腦物件的預設存放區域,這些物件原來是透過不能識別 Active Directory 的舊版 API 建立。

  • Users 代表新使用者帳戶的預設存放區域,這些帳戶原來是透過不能識別 Active Directory 的舊版 API 建立。

依預設值,在電腦加入網域時,這些電腦的電腦帳戶就會在 Computers 容器中建立。由於這兩種容器不是 OU,因此無法套用「群組原則」。

Note 注意
雖然 Computers 及 Users 容器不是 OU,但依然會套用可繼承權限,因為繼承權限的概念同時適用於 OU 及其他容器。不論是「設定」磁碟分割、「架構」磁碟分割或是網域磁碟分割,繼承在每種目錄磁碟分割的作用方式都相同。

因此,在部署 Active Directory 以後,組織必須建立 OU 結構,以儲存使用者與電腦帳戶及群組等網域資料。設計 OU 結構時,組織必須考慮「群組原則」的套用需求,以及管理委派的相關需求。

如需瞭解建立有效 OU 結構的最佳實務及設計考量,請參閱本文件稍後的<第 4 章:資料管理委派>。

下载

下载 AD_Delegation.doc
2471 KB
Microsoft Word 文件

顯示: