在 Microsoft Entra Domain Services 中設定 Kerberos 限制委派 (KCD)
當您執行應用程式時,可能需要這些應用程式存取不同使用者內容中的資源。 Active Directory Domain Services (AD DS) 支援的 Kerberos 委派機制可實現這種使用案例。 接著會在此機制上建立 Kerberos 限制委派 (KCD),以定義可在使用者內容中存取的特定資源。
Microsoft Entra Domain Services 受控網域比傳統內部部署 AD DS 環境更安全地鎖定,因此請使用更安全的資源型 KCD。
本文描述如何在 Domain Services 受控網域中設定資源型 Kerberos 限制委派。
必要條件
若要完成本文,您需要下列資源:
- 有效的 Azure 訂閱。
- 如果您沒有 Azure 訂用帳戶,請先建立帳戶。
- 與您的訂用帳戶相關聯的 Microsoft Entra 租用戶,已與內部部署目錄或僅限雲端目錄同步。
- 已在您的 Microsoft Entra 租用戶中啟用並設定的 Microsoft Entra Domain Services 受控網域。
- 已加入 Domain Services 受控網域的 Windows Server 管理 VM。
- 如有需要,請按照教學課程建立 Windows Server VM 並加入受控網域,然後安裝 AD DS 管理工具。
- 使用者帳戶,屬於您 Microsoft Entra 租用戶中 Microsoft Entra DC 管理員群組的成員。
Kerberos 限制委派概述
Kerberos 委派可讓一個帳戶模擬另一個帳戶來存取資源。 例如,存取後端 Web 元件的 Web 應用程式可以在進行後端連線時,將本身模擬為不同的使用者帳戶。 Kerberos 委派不安全,因為它不會限制模擬帳戶可以存取的資源。
Kerberos 限制委派 (KCD) 會在模擬另一個身分識別時,針對指定的伺服器或應用程式可以連線的服務或資源設限。 傳統 KCD 需要網域管理員權限才能設定服務的網域帳戶,而且會限制將該帳戶只能在單一網域執行。
傳統 KCD 也有一些問題。 例如,在較早的作業系統中,服務管理員沒有實用的方式可知道哪些前端服務被委派給他們擁有的資源服務。 任何可委派給資源服務的前端服務都會是潛在的受攻擊點。 若裝載前端服務的伺服器設定為委派給資源服務,當該伺服器遭到入侵時,資源服務可能也會被入侵。
在受控網域中,您沒有網域管理員權限。 因此,無法在受控網域中設定傳統帳戶型 KCD。 您可以改用資源型 KCD,這也更安全。
資源型 KCD
Windows Server 2012 及更新版本可讓服務管理員設定其務的限制委派。 此模型稱為資源型 KCD。 後端服務管理員可以藉此允許或拒絕特定的前端服務使用 KCD。
資源型 KCD 是使用 PowerShell 所設定的。 視模擬的帳戶是電腦帳戶或使用者帳戶/服務帳戶而定,您會使用 Set-ADComputer 或 Set-ADUser Cmdlet。
為電腦帳戶設定資源型 KCD
在此案例中,假設您在名為 contoso-webapp.aaddscontoso.com 的電腦上執行 Web 應用程式。
Web 應用程式需要存取在網域使用者內容中名為 contoso-api.aaddscontoso.com 的電腦上執行的 Web API。
請完成下列步驟,以設定此案例:
建立自訂 OU。 您可以將管理這個自訂 OU 的權限委派給受控網域內的使用者。
將虛擬機器加入網域,執行 Web 應用程式的虛擬機器和執行 Web API 的虛擬機器兩者都要加入受控網域。 在上一個步驟的自訂 OU 中建立這些電腦帳戶。
注意
Web 應用程式和 Web API 的電腦帳戶必須在您具備資源型 KCD 設定權限的自訂 OU 中。 您無法為在內建 Microsoft Entra DC 電腦容器中的電腦帳戶設定資源型 KCD。
最後,使用 Set-ADComputer PowerShell Cmdlet 來設定資源型 KCD。
從已加入網域的管理 VM,並以屬於 Microsoft Entra DC 管理員群組成員的使用者帳戶登入,執行下列 Cmdlet。 視需要提供您自己的電腦名稱:
$ImpersonatingAccount = Get-ADComputer -Identity contoso-webapp.aaddscontoso.com Set-ADComputer contoso-api.aaddscontoso.com -PrincipalsAllowedToDelegateToAccount $ImpersonatingAccount
為使用者帳戶設定資源型 KCD
在此案例中,假設您的 Web 應用程式以名為 appsvc 的服務帳戶執行。 Web 應用程式需要在網域使用者的內容中,存取以名為 backendsvc 的服務帳戶身分執行的 Web API。 請完成下列步驟,以設定此案例:
建立自訂 OU。 您可以將管理這個自訂 OU 的權限委派給受控網域內的使用者。
將虛擬機器加入網域,執行後端 Web API/資源的虛擬機器應加入受控網域中。 請在自訂 OU 內建立其電腦帳戶。
建立用來執行自訂 OU 內 Web 應用程式的服務帳戶 (例如 appsvc)。
注意
同樣地,Web API VM 的電腦帳戶和 Web 應用程式的服務帳戶都必須在您具備資源型 KCD 設定權限的自訂 OU 中。 您無法為內建 Microsoft Entra DC 電腦或 Microsoft Entra DC 使用者容器中的帳戶設定資源型 KCD。 也就是說,您無法使用從 Microsoft Entra 同步的使用者帳戶來設定資源型 KCD。 您必須建立並使用在 Domain Services 中特別建立的服務帳戶。
最後,使用 Set-ADUser PowerShell Cmdlet 來設定資源型 KCD。
從已加入網域的管理 VM,並以屬於 Microsoft Entra DC 管理員群組成員的使用者帳戶登入,執行下列 Cmdlet。 視需要提供您自己的服務名稱:
$ImpersonatingAccount = Get-ADUser -Identity appsvc Set-ADUser backendsvc -PrincipalsAllowedToDelegateToAccount $ImpersonatingAccount
下一步
若要深入了解 Active Directory Domain Services 中的委派運作方式,請參閱 Kerberos 限制委派概觀。