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 中的 資源。

Diagram of trust relationships between two forests

單向和雙向信任

信任關係可讓您存取資源可以是單向或雙向。

單向信任是在兩個網域之間建立的單向驗證路徑。 在網域 A 網域 B 之間的 單向信任中,網域 A 中的 使用者可以存取網域 B 中的 資源。不過,網域 B 中的 使用者無法存取網域 A 中的 資源。

根據所建立的信任類型,某些單向信任可以是非可轉移或可轉移的。

在雙向信任中, 網域 A 信任 網域 B 網域 B 信任 網域 A 。此組態表示可以在兩個網域之間雙向傳遞驗證要求。 根據所建立的信任類型,某些雙向關聯性可能是非可轉移或可轉移的。

內部部署 AD DS 樹系中的所有網域信任都是雙向的可轉移信任。 建立新的子域時,新的子域與父系網域之間會自動建立雙向的可轉移信任。

可轉移和非可轉移的信任

可轉移性會判斷信任是否可以延伸至其形成所在的兩個網域之外。

  • 可轉移的信任可用來擴充與其他網域的信任關係。
  • 非可轉移信任可用來拒絕與其他網域的信任關係。

每次您在樹系中建立新網域時,都會在新的網域與其父系網域之間建立雙向的可轉移信任關係。 如果子域新增至新網域,信任路徑會向上流經網域階層,以擴充新網域與其父系網域之間建立的初始信任路徑。 可轉移信任關聯性會在形成網域樹狀結構時向上流動,在定義域樹狀結構中的所有網域之間建立可轉移信任。

驗證要求會遵循這些信任路徑,因此樹系中任何其他網域都可以驗證來自樹系中任何網域的帳戶。 透過單一登入精靈,具有適當許可權的帳戶可以存取樹系中任何網域中的資源。

樹系信任

樹系信任可協助您管理分段 AD DS 基礎結構,並支援跨多個樹系存取資源和其他物件。 森林信託對服務提供者、正在進行合併或收購的公司、共同作業業務外部網路,以及尋求行政自治解決方案的公司都很有用。

使用樹系信任,您可以連結兩個不同的樹系,以形成單向或雙向可轉移信任關係。 樹系信任可讓系統管理員將兩個 AD DS 樹系與單一信任關係連線,以提供跨樹系的無縫驗證和授權體驗。

樹系信任只能在某個樹系中的樹系根域與另一個樹系的樹系根域之間建立。 樹系信任只能在兩個樹系之間建立,而且無法隱含地延伸至第三個樹系。 此行為表示,如果在樹系 1 和樹系 2 之間建立 樹系信任,而樹系 2 樹系 3 之間 建立另一個樹系信任, 則樹系 1 沒有與 樹系 3 的隱含 信任。

下圖顯示單一組織中三個 AD DS 樹系之間的兩個不同的樹系信任關係。

Diagram of forest trusts relationships within a single organization

此範例組態提供下列存取權:

  • 樹系 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 中建立樹系信任,您必須是 Active Directory 中的 Domain 管理員s 群組成員或 Enterprise 管理員s 群組的成員。 每個信任都會獲指派兩個樹系中系統管理員必須知道的密碼。 這兩個樹系中的企業管理員成員可以一次在這兩個樹系中建立信任,在此案例中,會自動產生密碼編譯隨機的密碼並寫入這兩個樹系。

受控網域樹系最多可支援五個對內部部署樹系的單向輸出樹系信任。 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 會遵循邏輯程式來判斷是否可以參考驗證要求:

  1. 目前網域是否由要求之伺服器的網域直接信任?

    • 如果是,請將轉介傳送給用戶端至要求的網域。
    • 如果沒有,請移至下一個步驟。
  2. 目前網域與信任路徑上的下一個網域之間是否有可轉移的信任關係?

    • 如果是,請將轉介傳送至信任路徑上的下一個網域。
    • 如果沒有,請傳送用戶端登入遭拒的訊息。

NTLM 轉介處理

NTLM 驗證通訊協定相依于網域控制站上的 Net Logon 服務,以取得用戶端驗證和授權資訊。 此通訊協定會驗證不使用 Kerberos 驗證的用戶端。 NTLM 會使用信任在網域之間傳遞驗證要求。

如果用戶端使用 NTLM 進行驗證,則驗證的初始要求會直接從用戶端移至目標網域中的資源伺服器。 此伺服器會建立用戶端回應的挑戰。 然後伺服器會將使用者的回應傳送至其電腦帳戶網域中的網域控制站。 此網域控制站會根據使用者帳戶的安全性帳戶資料庫檢查使用者帳戶。

如果帳戶不存在於資料庫中,網域控制站會決定要使用下列邏輯來執行傳遞驗證、轉送要求或拒絕要求:

  1. 目前網域是否與使用者的網域有直接信任關係?

    • 如果是,網域控制站會將用戶端的認證傳送至使用者網域中的網域控制站,以進行傳遞驗證。
    • 如果沒有,請移至下一個步驟。
  2. 目前網域是否具有與使用者網域的可轉移信任關係?

    • 如果是,請將 驗證要求傳遞至信任路徑中的下一個網域。 此網域控制站會針對使用者自己的安全性帳戶資料庫檢查使用者的認證,以重複此程式。
    • 如果沒有,請傳送拒絕登入的訊息給用戶端。

透過樹系信任對驗證要求的 Kerberos 型處理

當樹系信任連接兩個樹系時,可以使用 Kerberos V5 或 NTLM 通訊協定提出的驗證要求,在樹系之間路由,以提供這兩個樹系中資源的存取權。

第一次建立樹系信任時,每個樹系會收集其夥伴樹系中的所有受信任命名空間,並將資訊儲存在受信任的網域物件 。 信任的命名空間包括功能變數名稱、使用者主體名稱 (UPN) 尾碼、服務主體名稱 (SPN) 尾碼,以及其他樹系中使用的安全性識別碼 (SID) 命名空間。 TDO 物件會複寫至通用類別目錄。

注意

不支援信任的替代 UPN 尾碼。 如果內部部署網域使用與 Domain Services 相同的 UPN 尾碼,登入必須使用 sAMAccountName

在驗證通訊協定可以遵循樹系信任路徑之前,必須將資源電腦的服務主體名稱 (SPN) 解析為其他樹系中的位置。 SPN 可以是下列其中一個名稱:

  • 主機的 DNS 名稱。
  • 網域的 DNS 名稱。
  • 服務連接點物件的辨別名稱。

當某個樹系中的工作站嘗試存取另一個樹系中資源電腦上的資料時,Kerberos 驗證程式會連絡網域控制站,以取得服務票證給資源電腦的 SPN。 一旦網域控制站查詢通用類別目錄,並判斷 SPN 不在與網域控制站相同的樹系中,網域控制站就會將其父系網域的轉介傳回工作站。 此時,工作站會查詢服務票證的父系網域,並繼續遵循轉介鏈結,直到到達資源所在的網域為止。

下圖和步驟提供 Kerberos 驗證程式的詳細描述,此程式會在執行 Windows 的電腦嘗試從位於另一個樹系的電腦存取資源時使用。

Diagram of the Kerberos process over a forest trust

  1. User1 使用來自 europe.tailspintoys.com 網域的 認證登入 Workstation1 。 然後,使用者會嘗試存取位於 usa.wingtiptoys.com 樹系之 FileServer1 上的 共用資源。

  2. Workstation1 會連絡其網域 ChildDC1 中的網域控制站上的 Kerberos KDC,並要求 FileServer1 SPN 的服務票證

  3. ChildDC1 在其網域資料庫中找不到 SPN,並查詢通用類別目錄,以查看 tailspintoys.com 樹系中 是否有任何網域包含此 SPN。 因為通用類別目錄僅限於自己的樹系,因此找不到 SPN。

    然後,通用類別目錄會檢查其資料庫,以取得其樹系所建立之任何樹系信任的相關資訊。 如果找到,它會比較樹系信任網域物件 (TDO) 中列出的名稱尾碼與目標 SPN 的尾碼,以尋找相符專案。 找到相符專案之後,通用類別目錄會提供傳回 ChildDC1 的路由提示。

    路由提示可協助將驗證要求導向目的地樹系。 只有在所有傳統驗證通道,例如本機網域控制站,然後通用類別目錄找不到 SPN 時,才會使用提示。

  4. ChildDC1 會將其父系網域的轉介傳送回 Workstation1

  5. Workstation1 會連絡 ForestRootDC1 (其父系網域)中的 網域控制站,以轉介至 wingtiptoys.com 樹系樹系根域的 網域控制站 ( ForestRootDC2 )。

  6. Workstation1 連絡 wingtiptoys.com 樹系 中的 ForestRootDC2 ,以取得要求服務的服務票證。

  7. ForestRootDC2 會連絡其通用類別目錄以尋找 SPN,而通用類別目錄會尋找 SPN 的相符專案,並將其傳回 ForestRootDC2

  8. ForestRootDC2 接著會將轉介傳送至 usa.wingtiptoys.com 回到 Workstation1

  9. Workstation1 會連絡 ChildDC2 上的 KDC,並交涉 User1 的票證以 取得 FileServer1 存取權。

  10. 一旦 Workstation1 有服務票證,它會將服務票證傳送至 FileServer1 ,它會讀取 User1 的安全性認證,並據以建構存取權杖。

信任的網域物件

組織內的每個網域或樹系信任都會以儲存在其網域內系統 容器中的 信任網域物件 (TDO) 表示。

TDO 內容

TDO 中包含的資訊會根據 TDO 是由網域信任或樹系信任所建立而有所不同。

建立網域信任時,DNS 功能變數名稱、網域 SID、信任類型、信任轉移性,以及 TDO 中代表相互功能變數名稱等屬性。 樹系信任 TDO 會儲存其他屬性,以識別來自夥伴樹系的所有受信任命名空間。 這些屬性包括功能變數名稱、使用者主體名稱 (UPN) 尾碼、服務主體名稱 (SPN) 尾碼,以及安全性識別碼 (SID) 命名空間。

由於信任會以 TDO 的形式儲存在 Active Directory 中,因此樹系中的所有網域都瞭解整個樹系中已就緒的信任關係。 同樣地,當兩個或多個樹系透過樹系信任聯結在一起時,每個樹系中的樹系根域都會知道信任關係,這些關聯性在整個受信任樹系中的所有網域中都已就緒。

TDO 密碼變更

信任關係中的這兩個網域都會共用密碼,密碼會儲存在 Active Directory 的 TDO 物件中。 在帳戶維護程式中,信任網域控制站每隔 30 天就會變更儲存在 TDO 中的密碼。 由於所有雙向信任實際上是雙向信任的兩個相反方向,因此雙向信任的程式會發生兩次。

信任具有信任和信任的一面。 在信任端,任何可寫入的網域控制站都可以用於進程。 在信任端,PDC 模擬器會執行密碼變更。

若要變更密碼,網域控制站會完成下列程式:

  1. 信任網域中的主要網域控制站 (PDC) 模擬器會建立新的密碼。 受信任網域中的網域控制站永遠不會起始密碼變更。 它一律由信任網域 PDC 模擬器起始。

  2. 信任網域中的 PDC 模擬器會將 TDO 物件的 OldPassword 欄位設定 為目前的 NewPassword 欄位。

  3. 信任網域中的 PDC 模擬器會將 TDO 物件的 NewPassword 欄位設定 為新的密碼。 如果信任網域中的網域控制站無法接收變更,或是在要求使用新信任密碼的要求之前未複寫變更,保留先前密碼的複本,就可以還原為舊密碼。

  4. 信任網域中的 PDC 模擬器會遠端呼叫信任網域中的網域控制站,要求將信任帳戶上的密碼設定為新密碼。

  5. 受信任網域中的網域控制站會將信任密碼變更為新的密碼。

  6. 在信任的每一端,更新都會複寫到網域中的其他網域控制站。 在信任網域中,變更會觸發受信任網域物件的緊急複寫。

密碼現在在兩個網域控制站上都已變更。 一般複寫會將 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 將使用者的認證傳遞至受信任的網域進行驗證。

  • 特殊許可權屬性憑證 (PAC) 驗證 – 當使用 Kerberos 通訊協定進行驗證的伺服器需要在服務票證中驗證 PAC 時,會將 PAC 跨安全通道傳送至其網域控制站進行驗證。

本機安全性授權

Local Security Authority (LSA) 是受保護的子系統,可維護系統上本機安全性所有層面的相關資訊。 LSA 統稱為本機安全性原則,提供各種服務,以在名稱和識別碼之間進行轉譯。

LSA 安全性子系統提供核心模式和使用者模式中的服務,以驗證物件的存取權、檢查使用者許可權,以及產生稽核訊息。 LSA 負責檢查受信任或未受信任網域中服務所呈現之所有會話票證的有效性。

管理工具

管理員istrators 可以使用 Active Directory 網域 和 Trusts Netdom Nltest 來公開、建立、移除或修改信任。

  • Active Directory 網域和信任 是用來管理網域信任、網域和樹系功能等級,以及使用者主體名稱尾碼的 Microsoft Management Console (MMC)。
  • Netdom Nltest 命令列工具可用來尋找、顯示、建立和管理信任。 這些工具會直接與網域控制站上的 LSA 授權單位通訊。

下一步

若要開始使用建立具有樹系信任的受控網域,請參閱 建立及設定 Domain Services 受控網域 。 然後 ,您可以建立內部部署網域 的輸出樹系信任。