Active Directory 中樹系的信任關係運作方式 (預覽)
Active Directory Domain Services (AD DS) 透過網域和樹系信任關係,跨多個網域或樹系提供安全性。 在驗證可以跨信任進行之前,Windows 必須先檢查使用者、計算機或服務是否與要求帳戶的網域有信任關係。
若要檢查此信任關係,Windows 安全性系統會針對接收要求的伺服器的域控制器(DC)和發出要求帳戶所屬網域中的 DC,計算信任路徑。
AD DS 和 Windows 分散式安全性模型所提供的訪問控制機制,為網域和樹系信任的作業提供環境。 若要讓這些信任正常運作,每個資源或計算機都必須具有其所在網域中 DC 的直接信任路徑。
Net Logon 服務會使用與受信任網域授權單位的已驗證遠端過程調用 (RPC) 連線,實作信任路徑。 安全通道也會透過網域間信任關係延伸至其他 AD DS 網域。 此安全通道可用來取得和驗證安全性資訊,包括使用者和群組的安全性標識碼(SID)。
注意
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 的成員可以存取位於 Forest 2中的資源。
- 樹系 2 的成員無法使用相同信任存取位於 Forest 1 中的資源。
重要
Microsoft Entra Domain Services 支援多方向的樹系信任。
森林信任需求
在您建立森林信任之前,必須確認您已擁有正確的網域名稱系統 (DNS) 基礎結構。 只有在下列其中一個 DNS 設定可供使用時,才能建立樹系信任:
單一根 DNS 伺服器是這兩個樹系 DNS 命名空間的根 DNS 伺服器;根區域包含每個 DNS 命名空間的委派,並且所有 DNS 伺服器的根提示中都包含此根 DNS 伺服器。
當沒有共用的根 DNS 伺服器,且各樹系的 DNS 命名空間中的根 DNS 伺服器使用 DNS 條件式轉寄站來對各自的 DNS 命名空間進行名稱查詢路由時,它們將查詢引導到另一命名空間中的名稱。
重要
任何具有信任的 Microsoft Entra Domain Services 樹系都必須使用此 DNS 設定。 Microsoft Entra Domain Services 的功能不包括裝載樹系 DNS 命名空間以外的 DNS 命名空間。 條件式轉寄站是適當的設定。
當沒有共用的根 DNS 伺服器時,且每個樹系 DNS 命名空間中的根 DNS 伺服器使用 DNS 次要區域,會在每個 DNS 命名空間中配置這些次要區域,以便將查詢路由至其他命名空間中的名稱。
若要在 AD DS 中建立樹系信任,您必須是 Domain 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 不在與域控制器相同的樹系中,域控制器就會將其父域的轉介傳送回工作站。 此時,工作站會查詢服務票證的父域,並繼續遵循轉介鏈結,直到到達資源所在的網域為止。
下圖和步驟提供執行 Windows 的電腦嘗試從位於另一個樹系的計算機存取資源時所使用的 Kerberos 驗證程式詳細描述。
User1 使用來自 europe.tailspintoys.com 網域的憑證登入 工作站1。 然後,用戶會嘗試存取位於 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 連絡 ForestRootDC2 在 wingtiptoys.com 樹系中請求所需服務的服務票證。
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 將使用者的認證傳遞至受信任的網域進行驗證。
特殊許可權屬性憑證 (PAC) 驗證 – 當使用 Kerberos 通訊協議進行驗證的伺服器需要在服務票證中驗證 PAC 時,會將 PAC 跨安全通道傳送至其域控制器進行驗證。
本地安全授權機構
Local Security Authority (LSA) 是受保護的子系統,可維護系統上本機安全性所有層面的相關信息。 LSA 統稱為本機安全策略,提供各種服務,以在名稱和標識符之間進行轉譯。
LSA 安全性子系統提供核心模式和使用者模式中的服務,以驗證物件的存取權、檢查用戶許可權,以及產生稽核訊息。 LSA 負責檢查所有服務在受信任或未受信任網域中呈現的會話憑證的有效性。
管理工具
系統管理員可以使用 Active Directory 網域與信任、Netdom 和 Nltest 來公開、建立、移除或修改信任。
- Active Directory 網域與信任 是 Microsoft Management Console (MMC),用於管理網域信任、網域和樹系功能等級,以及使用者主體名稱後綴。
- Netdom 和 Nltest 命令行工具可用來尋找、顯示、建立和管理信任。 這些工具會直接與域控制器上的 LSA 授權單位通訊。
後續步驟
若要開始使用樹系信任建立受控網域,請參閱 建立及設定 Domain Services 受控網域。 然後,您可以 建立內部部署網域的輸出樹系信任。