分享方式:


使用 Microsoft Entra ID 來設定 Azure 虛擬桌面的單一登入 (部分機器翻譯)

使用 Microsoft Entra ID 的 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 的單一登入已啟用且遠端工作階段已鎖定 (不論是由使用者或原則鎖定) 時,您可以選擇將工作階段中斷連線或顯示遠端鎖定畫面。 預設行為是在工作階段鎖定時中斷連線。

當工作階段鎖定行為設定為中斷連線時,會顯示對話讓使用者知道他們已中斷連線。 使用者可以在準備好再次連線時,從對話選擇 [重新連線] 選項。 此行為的完成是基於安全性理由,並確保完全支援無密碼驗證。 中斷工作階段的連線可提供下列優點:

  • 視需要透過 Microsoft Entra ID 提供一致性登入體驗。

  • 條件式存取原則允許時的單一登入體驗和重新連線 (無需驗證提示)。

  • 支援無密碼驗證,例如通行金鑰和 FIDO2 裝置,與遠端鎖定畫面相反。

  • 當使用者重新連線到其工作階段時,會重新評估條件式存取原則,包括多重要素驗證和登入頻率。

  • 可以要求多重要素驗證以返回工作階段,並防止使用者使用簡單的使用者名稱和密碼解除鎖定。

如果您想要設定工作階段鎖定行為,以顯示遠端鎖定畫面,而不是中斷工作階段連線,請參閱設定工作階段鎖定行為

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

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

如果您需要以系統管理員身分變更工作階段主機,請使用非系統管理員帳戶登入工作階段主機,然後從命令提示字元使用 [以系統管理員身分執行] 選項或 Runas 工具,以變更為系統管理員。

必要條件

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

啟用適用於 RDP 的 Microsoft Entra 驗證

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

應用程式名稱 Application ID
Microsoft 遠端桌面 a4a365df-50f1-4397-bc59-1a1564b8bb9c
Windows 雲端登入 270efc09-cd0d-444b-a71f-39af4910ec45

重要

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

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

  1. 在 Azure 入口網站中使用 PowerShell 終端機類型開啟 Azure Cloud Shell,或在本機裝置上執行 PowerShell。

  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
    

根據預設,啟用單一登入時,使用者會看到對話,以在連線到新的工作階段主機時允許遠端桌面連線。 Microsoft Entra 再次提示之前,最多會記住 15 部主機達 30 天。 如果使用者看到允許遠端桌面連線的對話,他們可選取 [是] 以進行連線。

您可以藉由設定受信任裝置的清單來隱藏此對話。 若要設定裝置清單,請在包含工作階段主機的 Microsoft Entra ID 中建立一或多個群組,然後將群組識別碼新增至 SSO 服務主體、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

下一步