解釋:Active Directory FSMO 角色如何運作

Active Directory(AD)是一種提供中央身份驗證和授權服務的目錄服務。組織在域控制器(DC)上托管AD,這些控制器在它們之間以多主配置中複製信息。靈活的單主操作(FSMO)角色確保所有數據源之間的數據保持一致和可靠。

FSMO角色有助於AD複製順利運行,確保許多其他關鍵服務按照意圖運行。在本文中,您將了解FSMO角色是什麼,它們如何影響AD,以及如何在AD森林中安全地操縱它們。

通過本文的最後,您將更好地了解FSMO角色以及如何管理它們以維護健康的AD環境。

什麼是FSMO角色?

FSMO角色是獨立托管在AD森林中的每個DC上的服務。每個角色都有一個具體的目的,例如在設備之間同步時間,管理安全標識符(SIDs)等。

FSMO角色的範圍可以是森林級別或域級別,並且對該範圍是唯一的,如下所示。例如,具有兩個域的森林將在每個域中擁有一個DC(總計兩個),這些DC將托管RID主控角色,而僅有一個DC將托管模式主控角色。

FSMO Role Scope
Schema Master Forest
Domain Naming Master Forest
Primary Domain Controller Emulator Domain
RID Master Domain
Infrastructure Master Domain

A DC can hold multiple roles at one time.

模式主控

A critical component of AD is the database. The database, like all other databases, has a schema that dictates its structure with various partitions or naming contexts. The AD schema is a database partition that contains metadata about AD objects. For example, it contains classes like person, group, or msPKI-Key-RecoveryAgent and attributes like phone number, badPwdCount, or dNS-HostName.

AD模式是Active Directory數據庫中最“精細”的分區。

AD 需要一個用於管理架構的服務,因此需要架構主控角色(Schema Master role)。架構主控角色的職責是控制對 AD 架構的變更。如果您曾經擴展 AD 架構以安裝像 Exchange 之類的產品,或者提升森林功能級別,則表示您已經使用過架構主控角色。

您應該只在單個 DC 上的嚴格條件下通過架構主控角色進行對 AD 架構的任何更改。您不希望在兩個 DC 上進行更改,然後等待複製以查看哪個更改在複製過程中“勝出”。

域名命名主控(Domain Naming Master)

AD 數據庫包含多個分區,既有森林範圍的分區,也有域範圍的分區。AD 偶爾會對這些分區進行更改,因此需要一個服務來執行這些更改,這就是域名命名主控 FSMO 角色。

當您對森林域空間進行更改(向森林添加分區)時,域名命名主控將這些更改寫入 “Configuration\\Partitions”。例如,當升級或降級域控制器時,就會發生這種活動。

主域控制器仿真器(PDCe)

可以說,在 AD 中,最重要的 FSMO 角色是 PDCe。PDCe 角色負責密碼更改同步、帳戶鎖定(和解鎖)、時間同步等任務。

回顧 Active Directory(Windows NT)的早期,主要網域控制器(PDC)是AD網域中唯一可寫的DC。其他DC都是備份網域控制器(BDC),僅用於身份驗證請求

從Windows 2000開始,所有DC都可寫,不包括唯讀網域控制器(RODCs),它們是在Windows Server 2008中引入的。因為AD仍然需要PDC的功能,但實際上不再有PDC,Microsoft引入了PDC 模擬器(PDCe)角色。

重定向舊應用程式

PDCe角色的最基本功能之一是為舊應用程式提供可用性通知它們所托管的DC可以對AD進行更改。例如,如果您仍然在使用Windows NT服務,並且該服務不知道在AD數據庫中進行更改的位置,它將聯繫PDCe尋求幫助。

時間同步

對於加入域的所有設備保持一致的時間很重要。Kerberos身份驗證(默認身份驗證模式)要求客戶端和DC或DC複製夥伴之間的最大時間差為五分鐘。

PDCe角色是AD樹中所有其他計算機的中央時間來源。

  1. 所有客戶端計算機都從它們登錄的DC同步時間。
  2. 所有 DC 從其域中的 PDCe 同步時間。
  3. 在多域 AD 森林中,托管 PDCe 角色的 DC 從父域中的 PDCe 同步其時間。
  4. 根域中的 PDCe 角色然後使用可靠的外部時間來源進行同步。

管理密碼更改

當進行 AD 更改時,該更改不會立即複製到所有 DC,而是遵循 AD 複製計劃。但是,密碼更改的複製方式有些不同。密碼更改始終首先從起始 DC 複製到持有 PDCe 角色的 DC,然後再複製到拓撲中的其他 DC。

例如,如果某個 DC 目前沒有最新的密碼,並且用戶嘗試使用舊密碼進行身份驗證,則身份驗證 DC 首先聯繫持有 PDCe 角色的 DC,以檢查是否有更新的密碼,然後再拒絕身份驗證。

發現使用者更改密碼後無法連接到尚未複製新密碼的其他 DC 時,您將立即注意到 PDCe 的問題。

處理帳戶鎖定

PDCe 角色也處理帳戶鎖定。與更改密碼相反,帳戶鎖定不遵循常規的複寫間隔。帳戶鎖定會立即通過一種稱為 複製單個對象 的機制複製到其他 DC。這是一項安全措施,以確保被鎖定的帳戶無法登錄到尚未進行複製的其他 DC。

群組策略管理控制台 (GPMC) 的默認目標

管理群組策略使用群組策略管理控制台 (GPMC) 工具。要對 AD 進行更改,GPMC 需要連接到 DC。默認情況下,即使 PDCe 位於不同的 AD 網站,GPMC 也將始終連接到持有 PDCe 角色的 DC。如果 PDCe 不可達,您將收到一個警告,指示 PDCe 角色不可達,並且 GPMC 將提示您選擇其他 DC。

The GPMC would really prefer to talk to the PDCE.

相關: 什麼是群組策略以及它是如何工作的(詳細說明)

提供分佈式文件系統 (DFS) 命名空間信息

為了完善 PDCe FSMO 角色的功能,PDCe 角色提供 DFS 命名空間信息。定期,DFS 根服務器將從持有權威 DFS 信息的 PDCe 請求更新的 DFS 命名空間信息。

通常情況下,PDCe FSMO 角色的負擔並不過重,但在擁有大量 DFS 伺服器的環境中,您更改了預設的 DFS 命名空間查詢行為。

RID 主控伺服器

AD 網域中的每個對象都必須具有唯一的 ID,以區別它與所有其他類似對象。AD 總是要為每個新對象分配一個稱為安全識別碼或 SID 的唯一 ID,這非常重要。

每個 SID 由幾個組件組成:S(表示 SID)、Revision 號碼、I(標識符權威)、網域 ID 和相對 ID。網域 ID 對於森林中的每個網域都是唯一的。相對 ID 對於網域中的每個對象都是唯一的。SID 如下所示,其中 DomainId 代表網域 ID,RelativeId 代表相對 ID。

S-Revision-I-DomainId-Rid

Example: S-1-5-12-7273811915-2261004348-033256673-515
The string identifies this value as a SID. The string starts with an "S";
And has a revision level of 1;
An identifier authority value of 5 (NT Domain);
The domain identifier is a four-part value, 
The RID has a value of 515. The value of the RID is fixed and will never be generated; it's hard-coded and won't be repeated. (In this example, this is the well-known SID for the Domain Computers security group).

相對 ID(RID)主控角色確保了分配給每個 AD 對象的 SID 是唯一的。

一些 RID 為特殊帳戶和眾所周知的群組所保留。

域中的第一个DC自动成为RID主控,以控制RID的分配。

持有RID主控角色的DC主要在三种不同的事件中起作用:

DC晋升/降级

每次新DC晋升时,RID主控会为其分配一个500个RID的块。当在该DC上创建需要SID的新帐户时,这些RID会按顺序分配(递增顺序)。

例如,如果上次分配的RID块是从55016000,那么下一个需要块的DC(无论是新晋升的DC还是已耗尽当前块的DC)将收到60016500,依此类推。

当从AD数据库中删除DC时,RID主控会注意到并确保不分配该DC拥有的任何RID,以防止重复的SID。

RID耗尽

当DC达到50%的RID容量时,它将向RID主控请求一个新的RID块。DC在50%时请求新的RID,以防RID主控离线,这给它足够的缓冲时间来确保其RID分配不会耗尽。

RID主控角色夺取

管理员可以通过FSMO角色夺取或转移将角色从一个DC移动到另一个DC。当管理员将RID主控角色从一个DC移动到另一个DC时,其下一个可用的RID号码会增加10000。

相关文章:如何转移FSMO角色(GUI和PowerShell)

增加下一个可用的 RID 10000 是一个安全机制,旨在避免重复的 SID。例如,如果管理员夺取 RID 主角色,旧的 RID 主机重新上线,它可能会开始发出重复的 SID 以及新的 RID 主。

基础设施主机

每个AD对象都有一个由RID主FSMO角色分配的SID。当查看用户、组和其他AD信息时,我们人类希望看到的是一个名称而不是一个SID;这就是基础设施主机角色的作用。

默认情况下,每个DC都配置为全局目录(GC)。GC托管来自森林中所有域的信息。减少站点之间复制流量的一种方法是配置一些DC不作为GC。

如果您经过身份验证的DC不是GC,则基础设施主机负责将来自其他域的SID转换为人类友好的名称。

例如,从加入域的计算机,使用Windows资源管理器中设置了对另一个域中的帐户权限的文件夹的安全或共享选项卡。您将看到用户、计算机和组的名称;而不是它们的SID。如果您的计算机找不到域中的基础设施主机角色,您只会看到其他域中帐户的SID。

SID to name translation for other domain objects. On the left, the DC is not a GC and the IM role holder is not online. On the right, the DC is a GC (or the IM role holder is reachable).

如果启用了Active Directory回收站,所有DC在技术上都像持有基础设施主机角色。AD回收站将基础设施主机角色渲染为Microsoft的话语中 不重要

相關: 如何使用Active Directory回收站保存您的數據

結論

AD FSMO角色是確保AD繼續按照設計工作的關鍵組件。雖然大多數情況下,您不需要擔心FSMO角色,但在需要時了解它們的功能仍然很重要!

Source:
https://adamtheautomator.com/fsmo-roles/