共用方式為


使用 Microsoft Entra ID 驗證來設定 Azure 虛擬桌面的單一登入

本文將逐步引導您完成使用 Azure AD 驗證為 Azure 虛擬桌面設定單一登入 (SSO) 的程序 (預覽)。 當您啟用單一登入時,使用者會使用 Microsoft Entra ID 權杖向 Windows 進行驗證。 此權杖可讓您在連線到工作階段主機時使用無密碼驗證和與 Microsoft Entra ID 同盟的第三方識別提供者,讓登入體驗更為流暢。

使用 Microsoft Entra ID 驗證的單一登入也為工作階段內的 Microsoft Entra ID 型資源提供流暢的體驗。 如需在工作階段中使用無密碼驗證的詳細資訊,請參閱 工作階段內無密碼驗證

若要使用 Microsoft Entra ID 驗證啟用單一登入,您必須完成下列五項工作:

  1. 啟用適用於遠端桌面通訊協定 (RDP) 的 Microsoft Entra 驗證。

  2. 設定目標裝置群組。

  3. 如果 Active Directory Domain Services 是環境的一部分,請建立 Kerberos Server 物件。 準則的詳細資訊包含在其章節中。

  4. 檢閱您的條件式存取原則。

  5. 設定主機集區以啟用單一登入。

啟用單一登入之前

啟用單一登入之前,請先檢閱下列資訊,以在環境中使用它。

工作階段鎖定時中斷連線

啟用單一登入時,您會使用 Microsoft Entra ID 驗證權杖登入 Windows,以提供對 Windows 無密碼驗證的支援。 遠端工作階段中的 Windows 鎖定畫面不支援 Microsoft Entra ID 驗證權杖或無密碼驗證方法,例如 FIDO 金鑰。 缺乏這些驗證方法的支援,表示使用者無法在遠端工作階段中解除鎖定其畫面。 當您嘗試透過使用者動作或系統原則鎖定遠端工作階段時,工作階段會改為中斷連線,而服務會傳送訊息給使用者,說明他們已中斷連線。

中斷工作階段的連線也可確保當連線在閒置期間後重新啟動時,Microsoft Entra ID 會重新評估任何適用的條件式存取原則。

使用您的 Active Directory 網域系統管理員帳戶登入

在具有 Active Directory 網域服務 (AD DS) 和混合式使用者帳戶的環境中,唯讀網域控制器上的預設密碼複寫原則會拒絕網域管理員系統管理員安全群組成員的密碼複寫。 此原則可防止這些系統管理員帳戶登入 Microsoft Entra 混合式已加入主機,並可能會提示他們輸入其認證。 其也會防止系統管理員帳戶存取來自已加入 Microsoft Entra 主機之 Kerberos 驗證的內部部署資源。

若要在啟用單一登入時允許這些系統管理員帳戶連線,請參閱允許 Active Directory 網域系統管理員帳戶連線

必要條件

您必須達成下列先決條件,才能啟用單一登入:

啟用適用於 RDP 的 Microsoft Entra 驗證

您必須先在 Microsoft Entra 租用戶中允許 Windows 的 Microsoft Entra 驗證,以發出 RDP 存取權杖,讓用戶能夠登入您的 Azure 虛擬桌面工作階段主機。 您可以在下列 Microsoft Entra 應用程式的服務主體 remoteDesktopSecurityConfiguration 物件上,將 isRemoteDesktopProtocolEnabled 屬性設定為 true:

應用程式名稱 Application ID
Microsoft Remote Desktop a4a365df-50f1-4397-bc59-1a1564b8bb9c
Windows Cloud Login 270efc09-cd0d-444b-a71f-39af4910ec45

重要

作為即將變更的一部分,我們從 2024 年開始從 Microsoft 遠端桌面轉換到 Windows Cloud Login。 設定這兩個應用程式現在可確保您已準備好進行變更。

若要設定服務主體,請使用 Microsoft Graph PowerShell SDK,在服務主體上建立新的 remoteDesktopSecurityConfiguration 物件 ,並將 屬性 isRemoteDesktopProtocolEnabled 設定為 true。 您也可以將 Microsoft Graph APIGraph Explorer 之類的工具搭配使用。

  1. 使用「PowerShell」終端類型,在 Azure 入口網站中啟動 Azure Cloud Shell (部分機器翻譯),或在本機裝置上執行 PowerShell。

    1. 如果您使用 Cloud Shell,請確定您的 Azure 內容已設定為您想要使用的訂用帳戶 (部分機器翻譯)。

    2. 如果您在本機使用 PowerShell,請先使用 Azure PowerShell 登入 (部分機器翻譯),然後確認您的 Azure 內容已設定為您想要使用的訂用帳戶 (部分機器翻譯)。

  1. 請確定您已從必要條件安裝 Microsoft Graph PowerShell SDK,然後執行下列命令,匯入驗證應用程式 Microsoft Graph 模組,並使用 Application.Read.AllApplication-RemoteDesktopConfig.ReadWrite.All 範圍連線至 Microsoft Graph:

    Import-Module Microsoft.Graph.Authentication
    Import-Module Microsoft.Graph.Applications
    
    Connect-MgGraph -Scopes "Application.Read.All","Application-RemoteDesktopConfig.ReadWrite.All"
    
  2. 執行下列命令,以取得每個服務主體的物件識別碼,並將其儲存在變數中:

    $MSRDspId = (Get-MgServicePrincipal -Filter "AppId eq 'a4a365df-50f1-4397-bc59-1a1564b8bb9c'").Id
    $WCLspId = (Get-MgServicePrincipal -Filter "AppId eq '270efc09-cd0d-444b-a71f-39af4910ec45'").Id
    
  3. 執行下列命令將 isRemoteDesktopProtocolEnabled 屬性設定為 true。 這些命令沒有輸出。

    If ((Get-MgServicePrincipalRemoteDesktopSecurityConfiguration -ServicePrincipalId $MSRDspId) -ne $true) {
        Update-MgServicePrincipalRemoteDesktopSecurityConfiguration -ServicePrincipalId $MSRDspId -IsRemoteDesktopProtocolEnabled
    }
    
    If ((Get-MgServicePrincipalRemoteDesktopSecurityConfiguration -ServicePrincipalId $WCLspId) -ne $true) {
        Update-MgServicePrincipalRemoteDesktopSecurityConfiguration -ServicePrincipalId $WCLspId -IsRemoteDesktopProtocolEnabled
    }
    
  4. 執行下列命令確定 isRemoteDesktopProtocolEnabled 屬性已設定為 true

    Get-MgServicePrincipalRemoteDesktopSecurityConfiguration -ServicePrincipalId $MSRDspId
    Get-MgServicePrincipalRemoteDesktopSecurityConfiguration -ServicePrincipalId $WCLspId
    

    輸出應該是:

    Id IsRemoteDesktopProtocolEnabled
    -- ------------------------------
    id True
    

設定目標裝置群組

啟用 RDP 的 Microsoft Entra 驗證之後,您必須設定目標裝置群組。 啟用單一登入時,使用者會看到向 Microsoft Entra ID 進行驗證的提示,並在對新工作階段主機啟動連線時允許遠端桌面連線。 Microsoft Entra 會在 30 天內記住最多 15 部主機,然後才會再次出現提示。 如果您看到允許遠端桌面連線的對話,請選取 [是] 連線。

您可以藉由設定受信任的裝置清單,來隱藏此對話方塊,並提供連線到所有工作階段主機的單一登入。 您必須在包含工作階段主機的 Microsoft Entra ID 中建立一或多個群組,然後在群組的相同 Microsoft 遠端桌面Windows Cloud Login 應用程式上設定服務主體的屬性。

提示

建議您使用動態群組,並設定動態成員資格規則,以包含所有 Azure 虛擬桌面工作階段主機。 您可以使用此群組中的裝置名稱,但如需更安全的選項,您可以使用 Microsoft Graph API 設定和使用裝置擴充屬性。 雖然動態群組通常會在 5-10 分鐘內更新,但大型租用戶最多可能需要 24 小時的時間。

動態群組需要 Microsoft Entra ID P1 授權或 Intune 教育版授權。 如需詳細資訊,請參閱群組的動態成員規則

若要設定服務主體,請使用 Microsoft Graph PowerShell SDK,以動態群組的物件標識碼和顯示名稱,在服務主體上建立新的 targetDeviceGroup 物件。 您也可以將 Microsoft Graph APIGraph Explorer 之類的工具搭配使用。

  1. 在 Microsoft Entra ID中建立動態群組,其中包含您要隱藏對話方塊的工作階段主機。 記下下一個步驟之群組的物件標識碼。

  2. 在相同的 PowerShell 工作階段中,執行下列命令來建立 targetDeviceGroup 物件,並將 <placeholders> 取代為您自己的值:

    $tdg = New-Object -TypeName Microsoft.Graph.PowerShell.Models.MicrosoftGraphTargetDeviceGroup
    $tdg.Id = "<Group object ID>"
    $tdg.DisplayName = "<Group display name>"
    
  3. 執行下列命令,將群組新增至 targetDeviceGroup 物件:

    New-MgServicePrincipalRemoteDesktopSecurityConfigurationTargetDeviceGroup -ServicePrincipalId $MSRDspId -BodyParameter $tdg
    New-MgServicePrincipalRemoteDesktopSecurityConfigurationTargetDeviceGroup -ServicePrincipalId $WCLspId -BodyParameter $tdg
    

    輸出應該會類似:

    Id                                   DisplayName
    --                                   -----------
    12345678-abcd-1234-abcd-1234567890ab Contoso-session-hosts
    

    針對您想要新增至 targetDeviceGroup 物件的每個群組重複步驟 2 和 3,最多 10 個群組。

  4. 如果您稍後需要從 targetDeviceGroup 物件中移除裝置群組,請執行下列命令,以您自己的值取代 <placeholders>

    Remove-MgServicePrincipalRemoteDesktopSecurityConfigurationTargetDeviceGroup -ServicePrincipalId $MSRDspId -TargetDeviceGroupId "<Group object ID>"
    Remove-MgServicePrincipalRemoteDesktopSecurityConfigurationTargetDeviceGroup -ServicePrincipalId $WCLspId -TargetDeviceGroupId "<Group object ID>"
    

建立 Kerberos 伺服器物件

如果您的工作階段主機符合下列準則,您必須建立 Kerberos Server 物件

  • 您的工作階段主機已加入 Microsoft Entra 混合式。 您必須有 Kerberos Server 物件,才能完成網域控制器的驗證。
  • 您的工作階段主機已加入 Microsoft Entra,您的環境包含 Active Directory 網域控制器。 您必須擁有 Kerberos Server 物件,使用者才能存取內部部署資源,例如 SMB 共用,以及對網站的 Windows 整合式驗證。

重要

如果您在建立 Kerberos 伺服器物件之前,於 Microsoft Entra 混合式已加入工作階段主機上啟用單一登入,可能會發生下列其中一件事:

  • 您收到錯誤訊息,指出特定工作階段不存在。
  • 將會略過單一登入,您會看到工作階段主機的標準驗證對話方塊。

若要解決這些問題,請建立 Kerberos Server 物件,然後再次連線。

檢閱您的條件式存取原則

啟用單一登入時,會引進新的 Microsoft Entra ID 應用程式來驗證工作階段主機的使用者。 如果您有在存取 Azure 虛擬桌面時套用的條件式存取原則,請檢閱設定多重要素驗證的建議,以確保使用者擁有所需的體驗。

設定主機集區以啟用單一登入

若要在主機集區上啟用單一登入,您必須設定下列 RDP 屬性,您可以使用 Azure 入口網站或 PowerShell 來執行此動作。 您可以在自訂主機集區的遠端桌面通訊協定 (RDP) 屬性中找到設定 RDP 屬性的步驟。

  • 在 Azure 入口網站中,將 [Microsoft Entra 單一登入] 設定為 [連線將使用 Microsoft Entra 驗證來提供單一登入]
  • 針對 PowerShell,將 enablerdsaadauth 屬性設定為 1

使用您的 Active Directory 網域系統管理員帳戶登入

若要在啟用單一登入時允許這些系統管理員帳戶連線,請參閱允許 Active Directory 網域系統管理員帳戶連線:

  1. 在您用來管理 Active Directory 網域的裝置上,使用屬於 [網域管理員] 安全群組成員的帳戶,開啟 Active Directory 使用者和電腦主控台。

  2. 開啟您網域的網域控制器組織單元。

  3. 尋找 AzureADKerberos 物件,以滑鼠右鍵按兩下它,然後選取 [屬性]

  4. 選取 [密碼複寫原則] 索引標籤。

  5. 將 [網域管理員] 的原則從 [拒絕] 變更為 [允許]

  6. 刪除 [系統管理員] 的原則。 網域管理員群組是系統管理員群組的成員,因此拒絕系統管理員的復寫也會拒絕網域系統管理員的複寫。

  7. 選取 [確定] 以儲存您的變更。

下一步