信任關係如何適用於 Active Directory 中的樹系
Active Directory 網域服務 (AD DS) 能透過網域和樹系信任關係,跨多個網域或樹系提供安全性。 在驗證可以跨信任進行之前,Windows 必須先檢查使用者、電腦或服務是否與要求帳戶的網域有信任關係。
為了檢查此信任關係,Windows 安全性系統會計算網域控制站 (DC) 之間的信任路徑,以接收要求帳戶網域中的伺服器和 DC。
AD DS 所提供的存取控制機制和 Windows 分散式安全性模型提供網域和樹系信任作業的環境。 若要讓這些信任正常運作,每個資源或電腦都必須具有其所在網域中 DC 的直接信任路徑。
信任路徑是由 Net Logon 服務使用已驗證的遠端程序呼叫 (RPC) 來實作與信任網域授權單位的連線。 安全通道也會透過網域間信任關係延伸至其他 AD DS 網域。 此安全通道可用來取得和驗證安全性資訊,包括使用者和群組的安全性識別碼 (SID)。
注意
Domain Services 支援多個樹系信任方向,包括可以是傳入或傳出的雙向信任和單向信任。
如需如何將信任套用至 Domain Services 的概觀,請參閱 樹系概念和功能。
若要開始在 Domain Services 中使用信任,請建立使用樹系信任的受控網域。
信任關係流程
透過信任的安全通訊流程會決定信任的彈性。 您建立或設定信任的方式會決定通訊在樹系內或跨樹系延伸的程度。
透過信任的通訊流程取決於信任的方向。 信任可以為單向或雙向,並且可為可轉移或不可轉移。
下圖顯示樹狀結構 1 和樹狀結構 2 中所有網域預設都有可轉移的信任關係。 因此,樹系 1 中的使用者可以存取樹系 2中網域內的資源,而樹系 2 中的使用者在被指派資源的適當權限時,可以存取樹系 1 的資源。
單向和雙向信任
信任關係可讓您存取資源,無論是單向或雙向。
單向信任是在兩個網域之間建立的單向驗證路徑。 網域 A 與網域 B 之間的單向信任,網域 A 中的使用者可以存取網域 B 中的資源。不過,網域 B 中的使用者無法存取網域 A 中的資源。
部分單向信任可以是非轉移或可轉移,視所建立的信任類型而定。
在雙向信任中,網域 A 信任網域 B 和網域 B 信任網域 A。此設定表示可以在兩個網域之間雙向傳遞驗證要求。 部分雙向關係可以是非轉移或可轉移,視所建立的信任類型而定。
AD DS 樹系中的所有網域信任都是雙向的轉移信任。 建立新的子網域時,會在新的子網域和父系網域之間自動建立雙向的轉移信任。
可轉移和非轉移的信任
轉移性決定信任是否可延伸到形成信任的兩個網域之外。
- 可以使用可轉移的信任來延伸與其他網域的信任關係。
- 可以使用不可轉移的信任來拒絕與其他網域的信任關係。
每次您在樹系中建立新網域時,會自動在新網域和其父系網域之間建立雙向、可轉移的信任關係。 如果將子網域新增到新網域,信任路徑會沿著網域階層上溯,以延伸在新網域和其父系網域之間建立的初始信任路徑。 轉移信任會沿著其形成的網域樹狀目錄上溯,在網域樹狀目錄中所有網域之間建立轉移信任。
驗證要求會遵循這些信任路徑,因此樹系中任何網域中的帳戶都可以由樹系中的其他任何網域進行驗證。 透過單一登入程序,具有適當權限的帳戶可以存取樹系中任何網域內的資源。
樹系信任
樹系信任可協助您管理分段 AD DS 基礎結構,並支援跨多個樹系存取資源和其他物件。 對服務提供者、正在進行合併或收購、合作企業外部網路的公司,以及尋求系統管理自動化解決方案的公司而言,樹系信任十分有用。
使用樹系信任,您可以連結兩個不同的樹系,以形成單向或雙向可轉移的信任關係。 樹系信任可讓系統管理員將兩個 AD DS 樹系與單一信任關係連線,以提供跨樹系的順暢驗證和授權體驗。
只能在某一樹系的樹系根網域和另一個樹系的樹系根網域之間建立樹系信任。 樹系信任只能在兩個樹系之間建立,而且無法隱含延伸至第三個樹系。 此行為表示如果在樹系 1 和樹系 2 之間建立樹系信任,並在樹系 2 和樹系 3 之間建立另一個樹系信任,則樹系 1 不會隱含對樹系 3 的信任。
下圖顯示單一組織中三個 AD DS 樹系之間的兩個不同的樹系信任關係。
此範例設定提供下列存取權:
- 樹系 2 使用者可以存取樹系 1 或樹系 3 中任何網域的資源
- 樹系 3 使用者可以存取樹系 2 中任何網域的資源
- 樹系 1 使用者可以存取樹系 2 中任何網域的資源
此設定不允許樹系 1 使用者存取樹系 3 中的資源,反之亦然。 若要允許樹系 1 和樹系 3 中的使用者共用資源,必須在兩個樹系之間建立雙向可轉移信任。
如果在兩個樹系之間建立單向樹系信任,信任樹系的成員就可以利用位於信任樹系中的資源。 但是,信任只能單向運作。
例如,以單向樹系而言,在樹系 1 (信任樹系) 和樹系 2 (信任樹系) 之間建立信任:
- 樹系 1 的成員可以存取位於樹系 2中的資源。
- 樹系 2 成員無法使用相同的信任來存取位於樹系 1 中的資源。
重要
Microsoft Entra Domain Services 支援樹系信任的多個方向。
樹系信任需求
建立樹系信任之前,您必須確認已具備正確的網域名稱系統 (DNS) 基礎結構。 只有在下列其中一個 DNS 設定可用時,才能建立樹系信任:
單一根 DNS 伺服器是這兩個樹系 DNS 命名空間的根 DNS 伺服器 - 根區域包含每個 DNS 命名空間的委派,而所有 DNS 伺服器的根提示都包含根 DNS 伺服器。
如果沒有共用的根 DNS 伺服器,且各個樹系 DNS 命名空間中沒有根 DNS 伺服器,請將各個 DNS 命名空間中的 DNS 條件轉寄站設定為路由其他命名空間中的名稱查詢。
重要
任何具有信任的 Microsoft Entra Domain Services 樹系都必須使用此 DNS 設定。 裝載樹系 DNS 命名空間以外的 DNS 命名空間不是 Microsoft Entra Domain Services 的功能。 條件轉寄站是適當的設定。
如果沒有共用的根 DNS 伺服器,且各個樹系 DNS 命名空間中沒有根 DNS 伺服器,請將各個 DNS 命名空間中的 DNS 次要區域設定為路由其他命名空間中的名稱查詢。
若要在 AD DS 中建立樹系信任,您必須是 (樹系根網域中) 網域 Admins 群組的成員,或 Active Directory 中 Enterprise Admins 群組的成員。 每個信任都會獲指派兩個樹系中系統管理員必須知道的密碼。 這兩個樹系中 Enterprise Admins 的成員可以同時在兩個樹系中建立信任,在此案例中,系統會自動產生並寫入這兩個樹系的密碼。
受控網域樹系最多可對內部部署樹系支援五個單向輸出樹系信任。 Microsoft Entra Domain Services 的輸出樹系信任是在 Microsoft Entra 系統管理中心所建立。 傳入樹系信任必須由先前在內部部署 Active Directory 中記錄權限的使用者設定。
信任程序和互動
許多網域間和樹系間交易需相依於網域或樹系信任,才能完成各種工作。 本節說明在跨信任存取資源並評估驗證轉介時,所發生的程序和互動。
驗證轉介處理概觀
當驗證要求參考網域時,該網域中的網域控制站必須判斷是否與要求的來源網域存在信任關係。 必須先決定信任的方向,以及信任是否可轉移或不可轉移,然後才能驗證使用者以存取網域中的資源。 信任網域之間發生的驗證程序會根據使用的驗證通訊協定而有所不同。 Kerberos V5 和 NTLM 通訊協定程序會以不同方式將驗證轉介至網域
Kerberos V5 轉介處理
Kerberos V5 驗證通訊協定相依於網域控制站上的 Net Logon 服務,以取得用戶端驗證和授權資訊。 Kerberos 通訊協定會連線到線上金鑰發佈中心 (KDC) 和工作階段票證的 Active Directory 帳戶存放區。
Kerberos 通訊協定也會對跨領域票證授與服務 (TGS) 使用信任,並用信任驗證跨安全通道的權限屬性憑證 (PAC)。 Kerberos 通訊協定只會對非 Windows 品牌作業系統 Kerberos 領域 (例如 MIT Kerberos 領域) 執行跨領域驗證,而且不需要與 Net Logon 服務互動。
如果用戶端使用 Kerberos V5 進行驗證,其會從其帳戶網域中的網域控制站向目標網域中的伺服器要求票證。 Kerberos KDC 可作為用戶端與伺服器之間的信任媒介,並提供工作階段金鑰,讓兩方彼此驗證。 如果目標網域與目前網域不同,KDC 會遵循邏輯程序來判斷是否可以參考驗證要求:
目前網域是否由所要求的伺服器網域直接信任?
- 若是,則將轉介傳送給用戶端給要求的網域。
- 若否,則前往下一個步驟。
目前網域與信任路徑上的下一個網域之間,是否有可轉移的信任關係?
- 若是,則將轉介傳送給用戶端信任路徑上的下一個網域。
- 若否,則傳送用戶端登入遭拒的訊息。
NTLM 轉介處理
NTLM 驗證通訊協定相依於網域控制站上的 Net Logon 服務,以取得用戶端驗證和授權資訊。 此通訊協定會驗證不使用 Kerberos 驗證的用戶端。 NTLM 會使用信任在網域之間傳遞驗證要求。
如果用戶端使用 NTLM 進行驗證,則驗證的初始要求會直接從用戶端傳送到目標網域中的資源伺服器。 此伺服器會建立用戶端回應的挑戰。 然後,伺服器會將使用者的回應傳送至其電腦帳戶網域中的網域控制站。 此網域控制站會根據其安全性帳戶資料庫檢查使用者帳戶。
如果帳戶不存在於資料庫中,網域控制站會判斷是否要執行傳遞驗證、轉送要求,或使用下列邏輯拒絕要求:
目前網域是否與使用者的網域有直接信任關係?
- 如果是,網域控制站會將用戶端的認證傳送至使用者網域中的網域控制站,以進行傳遞驗證。
- 若否,則前往下一個步驟。
目前網域是否與使用者網域有可轉移的信任關係?
- 若是,則將驗證要求傳遞至信任路徑中的下一個網域。 此網域控制站會根據自己的安全性帳戶資料庫檢查使用者的認證,以重複此程序。
- 若否,則傳送用戶端登入遭拒的訊息。
透過樹系信任對驗證要求的 Kerberos 型處理
當兩個樹系透過樹系信任連線後,就會在樹系間路由使用 Kerberos V5 或 NTLM 通訊協定所提出的驗證要求,以存取這兩個樹系中的資源。
第一次建立樹系信任時,每個樹系都會收集其夥伴樹系中的所有受信任命名空間,並將資訊儲存在信任的網域物件中。 受信任命名空間包括另一樹系中使用的網域樹系名稱、使用者主要名稱 (UPN) 尾碼、服務主要名稱 (SPN) 尾碼,以及安全性識別碼 (SID) 命名空間。 TDO 物件會複寫至通用類別目錄。
注意
不支援信任的替代 UPN 尾碼。 如果內部部署網域使用與 Domain Services 相同的 UPN 尾碼,登入必須使用 sAMAccountName。
資源電腦的服務主體名稱 (SPN) 必須先解析為其他樹系中的位置,驗證通訊協定才能遵循樹系信任路徑。 SPN 可以是下列其中一個名稱:
- 主機的 DNS 名稱。
- 網域的 DNS 名稱。
- 服務連接點物件的辨別名稱。
當某個樹系中的工作站嘗試存取另一個樹系中資源電腦上的資料時,Kerberos 驗證程序會將服務票證的網域控制站連絡至資源電腦的 SPN。 一旦網域控制站查詢通用類別目錄,並判斷 SPN 不在與網域控制站相同的樹系中後,網域控制站就會將其父系網域的轉介傳回工作站。 此時,工作站會查詢服務票證的父系網域,並繼續遵循轉介鏈結,直到到達資源所在的網域為止。
下圖和步驟提供 Kerberos 驗證程序的詳細描述,此程序會在執行 Windows 嘗試從位於另一個樹系的電腦存取資源時使用。
User1 使用來自 europe.tailspintoys.com 網域的認證登入 Workstation1。 然後,使用者嘗試存取位於 usa.wingtiptoys.com 樹系 FileServer1 上的共用資源。
Workstation1 會在網域控制站的網域、ChildDC1上連絡 Kerberos KDC,並要求 FileServer1 SPN 的服務票證。
ChildDC1 在其網域資料庫中找不到 SPN,並查詢通用類別目錄,以查看 tailspintoys.com 樹系中是否有任何網域包含此 SPN。 因為通用類別目錄僅限於自己的樹系,所以無法找到 SPN。
然後,通用類別目錄會檢查其資料庫,以取得其樹系所建立的任何樹系信任相關資訊。 如果找到,則會比較樹系信任網域物件 (TDO) 中列出的名稱尾碼和目標 SPN 的尾碼,以尋找相符專案。 找到相符專案之後,通用類別目錄會提供路由提示以回到 ChildDC1。
路由提示有助於將驗證要求導向目的地樹系。 只有在所有傳統驗證通道,例如本機網域控制站和通用類別目錄都找不到 SPN 時,才會使用提示。
ChildDC1 會將其父系網域的轉介傳回 Workstation1。
Workstation1 會連絡 ForestRootDC1 (其父系網域) 中的網域控制站,以轉介至 wingtiptoys.com 樹系根域中的網域控制站 (ForestRootDC2)。
Workstation1會連絡 wingtiptoys.com 樹系中的 ForestRootDC2,以取得所要求服務的服務票證。
ForestRootDC2 會連絡其通用類別目錄以尋找 SPN,而通用類別目錄會尋找 SPN 的相符專案,並將其傳回 ForestRootDC2。
ForestRootDC2 接著會將 usa.wingtiptoys.com 的轉介傳送回 Workstation1。
Workstation1 會連絡 ChildDC2 上的 KDC,並交涉 User1 的票證,以取得 FileServer1 的存取權。
一旦 Workstation1 得到服務票證,便會將服務票證傳送至 FileServer1,後者會讀取 User1 的安全性認證,並據以建構存取權杖。
受信任的網域物件
組織內的每個網域或樹系信任都會以信任網域物件 (TDO) 表示,儲存在其網域內的系統容器中。
TDO 內容
TDO 中包含的資訊會根據 TDO 是由網域信任或樹系信任所建立而有所不同。
建立網域信任時,DNS 功能變數名稱、網域 SID、信任類型、信任可轉移性和相互功能變數名稱等屬性會以 TDO 表示。 樹系信任 TDO 會儲存額外的屬性,以識別其夥伴樹系的所有受信任命名空間。 這些屬性包括網域樹系名稱、使用者主要名稱 (UPN) 尾碼、服務主要名稱 (SPN) 尾碼,以及安全性識別碼 (SID) 命名空間。
由於信任會以 TDO 的形式儲存在 Active Directory 中,因此樹系中的所有網域都具備整個樹系中已就緒的信任關係知識。 同樣地,當兩個或多個樹系透過樹系信任聯結在一起時,每個樹系中的樹系根域都具備信任關係的知識,這些關聯性在整個信任樹系的所有網域中都已就緒。
TDO 密碼變更
信任關係中的兩個網域都會共用密碼,該密碼會儲存在 Active Directory 中的 TDO 物件中。 在帳戶維護程序中,信任網域控制站每隔 30 天會變更儲存在 TDO 中的密碼。 因為所有雙向信任實際上是雙向信任相反方向的兩個單向信任,所以針對雙向信任,此程序會發生兩次。
信任具有信任和受信任端。 在受信任端,任何可寫入的網域控制站都可用於程序。 在信任端,PDC 模擬器會執行密碼變更。
若要變更密碼,網域控制站會完成下列程序:
信任網域中的主要網域控制站 (PDC) 模擬器會建立新密碼。 受信任網域中的網域控制站永遠不會起始密碼變更。 一律會由信任網域 PDC 模擬器起始。
信任網域中的 PDC 模擬器會將 TDO 物件的 OldPassword 欄位設定為目前的 NewPassword 欄位。
信任網域中的 PDC 模擬器會將 TDO 物件的 NewPassword 欄位設定為新密碼。 保留先前密碼的複本,如果受信任網域中的網域控制站無法接收變更,或在要求使用新信任密碼的要求之前未複寫,可以還原為舊密碼。
信任網域中的 PDC 模擬器會對受信任網域中的網域控制站進行遠端呼叫,要求後者將信任帳戶上的密碼設定為新的密碼。
受信任網域中的網域控制站會將信任密碼變更為新密碼。
在信任的每一端,更新都會複寫到網域中的其他網域控制站。 在信任網域中,變更會觸發受信任網域物件的緊急複寫。
這兩個網域控制站上的密碼現在都會變更。 一般複寫會將 TDO 物件散發至網域中的其他網域控制站。 不過,有可能當信任網域中的網域控制站變更密碼時,並未成功更新受信任網域中的網域控制站。 此案例可能是因為無法建立安全通道,這是處理密碼變更所需。 在程序期間,受信任網域中的網域控制站可能在某些時間點無法使用,而且可能不會收到更新的密碼。
若要處理密碼變更未成功通訊的情況,信任網域中的網域控制站永遠不應變更新密碼,除非已使用新密碼成功驗證 (設定安全通道)。 此行為是舊密碼和新密碼都會保留在信任網域 TDO 物件中的原因。
使用密碼驗證成功之前,不會完成密碼變更。 舊的預存密碼可以透過安全通道使用,直到受信任網域中的網域控制站收到新密碼為止,此時會啟用未中斷的服務。
如果因密碼無效而使用新密碼進行驗證失敗,則信任網域控制站會嘗試使用舊密碼進行驗證。 如果已成功使用舊密碼進行驗證,則會在 15 分鐘內繼續密碼變更程序。
信任密碼更新必須在 30 天內複寫至信任兩端的網域控制站。 如果信任密碼在 30 天後變更,且網域控制站只有 N-2 密碼,就無法從信任端使用信任,也無法在受信任端建立安全通道。
信任使用的網路連接埠
由於信任必須跨各種網路界限進行部署,因此可能需要跨越一或多個防火牆。 在此情況下,您可以跨防火牆通道信任流量,或在防火牆中開啟特定連接埠,以允許流量通過。
重要
Active Directory 網域服務不支援將 Active Directory RPC 流量限制於特定連接埠。
請閱讀 Microsoft 支援服務文章如何設定 Active Directory 網域和信任的防火牆中的 Windows Server 2008 和更新版本一節,以了解樹系信任所需的連接埠。
支援服務和工具
為了支援信任和驗證,會使用一些額外的功能和管理工具。
Net Logon
Net Logon 服務會維護從 Windows 型電腦到 DC 的安全通道。 該服務也用於下列信任相關程序:
信任設定和管理 - Net Logon 可協助維護信任密碼、收集信任資訊,以及透過與 LSA 程序和 TDO 互動來驗證信任。
對於樹系信任,信任資訊包括樹系信任資訊 (FTInfo) 記錄,其中包含受信任樹系宣告所要管理的命名空間集,並加上指出信任樹系是否信任每個宣告的欄位。
驗證 – 透過安全通道提供使用者認證給網域控制站,並傳回使用者的網域 SID 和使用者權限。
網域控制站位置 – 協助尋找或定位網域中的網域控制站,或跨網域尋找或定位網域控制站。
傳遞驗證 – 其他網域中的使用者認證是由 Net Logon 處理。 當信任網域需要驗證使用者的身分識別時,會透過 Net Logon 將使用者的認證傳遞至受信任的網域進行驗證。
Privilege Attribute Certificate (PAC) 驗證 – 當使用 Kerberos 通訊協定進行驗證的伺服器需要驗證服務票證中的 PAC 時,會將 PAC 跨安全通道傳送至其網域控制站以進行驗證。
本機安全性授權
本機安全性授權單位 (LSA) 是受保護的子系統,可維護系統上本機安全性所有層面的相關資訊。 LSA 統稱為本機安全性原則,提供各種服務,以在名稱和識別碼之間進行轉譯。
LSA 安全性子系統同時提供核心模式和使用者模式的服務,以驗證物件存取權、檢查使用者權限,以及產生稽核訊息。 LSA 負責檢查受信任或未受信任網域中服務呈現之所有工作階段票證的有效性。
管理工具
系統管理員可以使用 Active Directory 網域和信任、Netdom 和 Nltest 來公開、建立、移除或修改信任。
- Active Directory 網域及信任是一種 Microsoft Management Console (MMC),可用來管理網域信任、網域和樹系功能等級,以及使用者主體名稱尾碼。
- Netdom 和 Nltest 命令列工具可用來尋找、顯示、建立和管理信任。 這些工具會直接與網域控制站上的 LSA 授權單位通訊。
下一步
若要開始建立具有樹系信任的受控網域,請參閱 建立及設定 Domain Services 受控網域。 接著,您便可建立內部部署網域的輸出樹系信任。