在 Azure Active Directory 網域服務中設定 Kerberos 限制委派 (KCD)

當您執行應用程式時,這些應用程式可能需要存取不同使用者的內容中的資源。 Active Directory Domain Services (AD DS) 支援稱為 Kerberos 委派 的機制,可啟用此使用案例。 Kerberos 限制 委派 (KCD) 然後以此機制為基礎,以定義可在使用者內容中存取的特定資源。

Azure Active Directory 網域服務 (Azure AD DS) 受控網域會比傳統內部部署 AD DS 環境更安全地鎖定,因此請使用更安全的資源型KCD。

本文說明如何在 Azure AD DS 受控網域中設定以資源為基礎的 Kerberos 限制委派。

必要條件

若要完成本文,您需要下列資源:

Kerberos 限制委派總覽

Kerberos 委派可讓一個帳戶模擬另一個帳戶以存取資源。 例如,存取後端 web 元件的 web 應用程式可以在建立後端連接時,以不同的使用者帳戶來模擬本身。 Kerberos 委派並不安全,因為它不會限制模擬帳戶可以存取的資源。

Kerberos 限制 委派 (KCD) 會限制指定的伺服器或應用程式在模擬另一個身分識別時可連接的服務或資源。 傳統 KCD 需要有網域系統管理員許可權,才能為服務設定網域帳戶,而且會將帳戶限制在單一網域上執行。

傳統 KCD 也有一些問題。 例如,在舊版作業系統中,服務系統管理員沒有實用的方式可知道哪些前端服務被委派給他們擁有的資源服務。 任何可以委派給資源服務的前端服務都是潛在的攻擊點。 如果裝載設定為委派給資源服務之前端服務的伺服器遭到入侵,則資源服務也可能受到危害。

在受控網域中,您沒有網域系統管理員許可權。 因此,傳統以帳戶為基礎的 KCD 無法在受控網域中設定。 您可以改為使用以資源為基礎的 KCD,也就是更安全的。

資源型 KCD

Windows Server 2012 和更新版本讓服務系統管理員能夠設定其服務的限制委派。 此模型稱為資源型 KCD。 使用此方法時,後端服務系統管理員可以允許或拒絕特定前端服務使用 KCD。

按資源 KCD 使用 PowerShell 來設定。 視模擬帳戶是電腦帳戶或使用者帳戶/服務帳戶而定,您可以使用 Set-ADComputerSet-ADUser Cmdlet。

為電腦帳戶設定以資源為基礎的 KCD

在此案例中,假設您有一個在名為 contoso-webapp.aaddscontoso.com的電腦上執行的 web 應用程式。

Web 應用程式必須存取在網域使用者內容中名為 contoso-api.aaddscontoso.com 的電腦上執行的 web API。

請完成下列步驟來設定此案例:

  1. 建立自訂 OU。 您可以將管理這個自訂 OU 的權限委派給受控網域內的使用者。

  2. 將虛擬機器(執行 web 應用程式的虛擬機器)和執行 web API 的虛擬機器加入網域,以將其加入受控網域。 從上一個步驟的自訂 OU 建立這些電腦帳戶。

    注意

    Web 應用程式和 web API 的電腦帳戶必須位於您有權設定以資源為基礎之 KCD 的自訂 OU 內。 您無法在內建的AAD DC 電腦容器中,為電腦帳戶設定以資源為基礎的 KCD。

  3. 最後,使用 Get-adcomputer PowerShell Cmdlet 來設定以資源為基礎的 KCD。

    從已加入網域的管理 VM,並以屬於Azure AD DC 系統管理員群組成員身分的使用者帳戶登入,執行下列 Cmdlet。 視需要提供您自己的電腦名稱稱:

    $ImpersonatingAccount = Get-ADComputer -Identity contoso-webapp.aaddscontoso.com
    Set-ADComputer contoso-api.aaddscontoso.com -PrincipalsAllowedToDelegateToAccount $ImpersonatingAccount
    

為使用者帳戶設定以資源為基礎的 KCD

在此案例中,讓我們假設您有一個以名為 appsvc的服務帳戶執行的 web 應用程式。 Web 應用程式必須存取在網域使用者的環境中,以名為 backendsvc 的服務帳戶執行的 web API。 請完成下列步驟來設定此案例:

  1. 建立自訂 OU。 您可以將管理這個自訂 OU 的權限委派給受控網域內的使用者。

  2. 將執行後端 web API/資源的虛擬機器網域加入至受控網域。 請在自訂 OU 內建立其電腦帳戶。

  3. 建立服務帳戶 (例如,用來在自訂 OU 內執行 web 應用程式的 appsvc) 。

    注意

    同樣地,web API VM 的電腦帳戶和 web 應用程式的服務帳戶,都必須位於您有權設定以資源為基礎之 KCD 的自訂 OU 中。 您無法為內建AAD DC 電腦AAD DC 使用者容器中的帳戶設定以資源為基礎的 KCD。 這也表示您無法使用從 Azure AD 同步處理的使用者帳戶來設定以資源為基礎的 KCD。 您必須建立並使用特別在 Azure AD DS 中建立的服務帳戶。

  4. 最後,使用 Set-aduser PowerShell Cmdlet 來設定以資源為基礎的 KCD。

    從已加入網域的管理 VM,並以屬於Azure AD DC 系統管理員群組成員身分的使用者帳戶登入,執行下列 Cmdlet。 視需要提供您自己的服務名稱:

    $ImpersonatingAccount = Get-ADUser -Identity appsvc
    Set-ADUser backendsvc -PrincipalsAllowedToDelegateToAccount $ImpersonatingAccount
    

下一步

若要深入瞭解委派在 Active Directory Domain Services 中的運作方式,請參閱 Kerberos 限制委派總覽