使用 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 驗證啟用單一登入,您必須完成下列五項工作:
啟用適用於遠端桌面通訊協定 (RDP) 的 Microsoft Entra 驗證。
隱藏同意提示對話。
如果 Active Directory Domain Services 是環境的一部分,請建立 Kerberos Server 物件。 準則的詳細資訊包含在其章節中。
檢閱您的條件式存取原則。
設定主機集區以啟用單一登入。
啟用單一登入之前
啟用單一登入之前,請先檢閱下列資訊,以在環境中使用它。
工作階段鎖定行為
當使用 Microsoft Entra ID 的單一登入已啟用且遠端工作階段已鎖定 (不論是由使用者或原則鎖定) 時,您可以選擇將工作階段中斷連線或顯示遠端鎖定畫面。 預設行為是在工作階段鎖定時中斷連線。
當工作階段鎖定行為設定為中斷連線時,會顯示對話讓使用者知道他們已中斷連線。 使用者可以在準備好再次連線時,從對話選擇 [重新連線] 選項。 此行為的完成是基於安全性理由,並確保完全支援無密碼驗證。 中斷工作階段的連線可提供下列優點:
視需要透過 Microsoft Entra ID 提供一致性登入體驗。
條件式存取原則允許時的單一登入體驗和重新連線 (無需驗證提示)。
支援無密碼驗證,例如通行金鑰和 FIDO2 裝置,與遠端鎖定畫面相反。
當使用者重新連線到其工作階段時,會重新評估條件式存取原則,包括多重要素驗證和登入頻率。
可以要求多重要素驗證以返回工作階段,並防止使用者使用簡單的使用者名稱和密碼解除鎖定。
如果您想要設定工作階段鎖定行為,以顯示遠端鎖定畫面,而不是中斷工作階段連線,請參閱設定工作階段鎖定行為。
使用單一登入的 Active Directory 網域系統管理員帳戶
在具有 Active Directory 網域服務 (AD DS) 和混合式使用者帳戶的環境中,唯讀網域控制器上的預設密碼複寫原則會拒絕網域管理員和系統管理員安全群組成員的密碼複寫。 此原則可防止這些系統管理員帳戶登入 Microsoft Entra 混合式已加入主機,並可能會提示他們輸入其認證。 其也會防止系統管理員帳戶存取來自已加入 Microsoft Entra 主機之 Kerberos 驗證的內部部署資源。 基於安全性理由,不建議使用網域系統管理員的帳戶連線到遠端工作階段。
如果您需要以系統管理員身分變更工作階段主機,請使用非系統管理員帳戶登入工作階段主機,然後從命令提示字元使用 [以系統管理員身分執行] 選項或 Runas 工具,以變更為系統管理員。
必要條件
您必須達成下列先決條件,才能啟用單一登入:
若要設定 Microsoft Entra 租用戶,您必須獲指派下列其中一個 Microsoft Entra 內建角色或對等角色:
您的工作階段主機必須執行下列其中一個作業系統,並安裝相關的累積更新:
已安裝 Windows 11 的 2022-10 累積更新版 (KB5018418) 或更新版本的 Windows 11 Enterprise 單一或多重工作階段。
已安裝 Windows 10 的 2022-10 累積更新版 (KB5018410) 或更新版本的 Windows 10 Enterprise 單一或多重工作階段。
已安裝 Microsoft 伺服器作業系統的 2022-10 累積更新版 (KB5018421) 或更新版本的 Windows Server 2022。
您的工作階段主機必須是已加入 Microsoft Entra 或已加入 Microsoft Entra 混合式。 您的工作階段主機必須加入 Active Directory Domain Services 或 Microsoft Entra 網域服務。
如果您的已加入 Microsoft Entra 混合式工作階段主機位於與使用者帳戶不同的 Active Directory 網域中,則這兩個網域之間必須有雙向信任。 如果沒有雙向信任,連線會回復為較舊的驗證通訊協定。
在您的本機裝置或 Azure Cloud Shell 上安裝 Microsoft Graph PowerShell SDK 2.9.0 版或更新版本。
支援的遠端桌面用戶端,以連線到遠端工作階段。 下列為支援的用戶端:
執行 Windows 10 或更高版本的本機電腦上的 Windows Desktop 用戶端。 本機電腦不需要加入 Microsoft Entra ID 或 Active Directory 網域。
macOS 用戶端 (10.8.2 或以上版本)。
iOS 用戶端 (10.5.1 或以上版本)。
Android 用戶端 (10.0.16 或以上版本)。
啟用適用於 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 API 與 Graph Explorer 之類的工具搭配使用。
在 Azure 入口網站中使用 PowerShell 終端機類型開啟 Azure Cloud Shell,或在本機裝置上執行 PowerShell。
如果您使用 Cloud Shell,請確定您的 Azure 內容已設定為您想要使用的訂用帳戶。
如果您在本機使用 PowerShell,請先使用 Azure PowerShell 登入,然後確認您的 Azure 內容已設定為您想要使用的訂用帳戶。
請確定您已從必要條件安裝 Microsoft Graph PowerShell SDK,然後執行下列命令,匯入驗證 和應用程式 Microsoft Graph 模組,並使用
Application.Read.All
和Application-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"
執行下列命令,以取得每個服務主體的物件識別碼,並將其儲存在變數中:
$MSRDspId = (Get-MgServicePrincipal -Filter "AppId eq 'a4a365df-50f1-4397-bc59-1a1564b8bb9c'").Id $WCLspId = (Get-MgServicePrincipal -Filter "AppId eq '270efc09-cd0d-444b-a71f-39af4910ec45'").Id
執行下列命令將
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 }
執行下列命令確定
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 API 與 Graph Explorer 之類的工具搭配使用。
在 Microsoft Entra ID中建立動態群組,其中包含您要隱藏對話方塊的工作階段主機。 記下下一個步驟之群組的物件標識碼。
在相同的 PowerShell 工作階段中,執行下列命令來建立
targetDeviceGroup
物件,並將<placeholders>
取代為您自己的值:$tdg = New-Object -TypeName Microsoft.Graph.PowerShell.Models.MicrosoftGraphTargetDeviceGroup $tdg.Id = "<Group object ID>" $tdg.DisplayName = "<Group display name>"
執行下列命令,將群組新增至
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 個群組。如果您稍後需要從
targetDeviceGroup
物件中移除裝置群組,請執行下列命令,以您自己的值取代<placeholders>
:Remove-MgServicePrincipalRemoteDesktopSecurityConfigurationTargetDeviceGroup -ServicePrincipalId $MSRDspId -TargetDeviceGroupId "<Group object ID>" Remove-MgServicePrincipalRemoteDesktopSecurityConfigurationTargetDeviceGroup -ServicePrincipalId $WCLspId -TargetDeviceGroupId "<Group object ID>"
建立 Kerberos 伺服器物件
如果您的工作階段主機符合下列準則,您必須建立 Kerberos 伺服器物件。 如需詳細資訊,請參閱 使用 Microsoft Entra ID 啟用無密碼安全性密鑰登入內部部署資源,特別是建立 Kerberos Server 物件的一節:
您的工作階段主機已加入 Microsoft Entra 混合式。 您必須有 Kerberos 伺服器物件,才能完成域控制器的驗證。
您的工作階段主機已加入 Microsoft Entra,您的環境包含 Active Directory 網域控制器。 您必須擁有 Kerberos 伺服器物件,使用者才能存取內部部署資源,例如 SMB 共用和對網站的 Windows 整合式驗證。
重要
如果您在未建立 Kerberos 伺服器對象的情況下啟用Microsoft Entra 混合式聯結會話主機的單一登錄,當您嘗試連線到遠端會話時,會發生下列其中一件事:
- 您收到錯誤訊息,指出特定工作階段不存在。
- 將會略過單一登入,您會看到工作階段主機的標準驗證對話方塊。
若要解決這些問題,請建立 Kerberos 伺服器對象,然後再連線一次。
檢閱您的條件式存取原則
啟用單一登入時,會引進新的 Microsoft Entra ID 應用程式來驗證工作階段主機的使用者。 如果您有在存取 Azure 虛擬桌面時套用的條件式存取原則,請檢閱設定多重要素驗證的建議,以確保使用者擁有所需的體驗。
設定主機集區以啟用單一登入
若要在主機集區上啟用單一登入,您必須設定下列 RDP 屬性,您可以使用 Azure 入口網站或 PowerShell 來執行此動作。 您可以在自訂主機集區的遠端桌面通訊協定 (RDP) 屬性中找到設定 RDP 屬性的步驟。
在 Azure 入口網站中,將 [Microsoft Entra 單一登入] 設定為 [連線將使用 Microsoft Entra 驗證來提供單一登入]。
針對 PowerShell,將 enablerdsaadauth 屬性設定為 1。
下一步
請參閱工作階段內無密碼驗證,以了解如何啟用無密碼驗證。
如需 Microsoft Entra Kerberos 的詳細資訊,請參閱 深入探討:Microsoft Entra Kerberos 的運作方式。
如果您遇到任何問題,請移至針對已加入 Microsoft Entra 的 VM 連線進行疑難排解。