你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
使用 Microsoft Entra ID Azure 虚拟桌面的单一登录 (SSO) 为连接到会话主机的用户提供了无缝登录体验。 启用单一登录时,用户使用Microsoft Entra ID令牌向 Windows 进行身份验证。 此令牌允许在连接到会话主机时使用与Microsoft Entra ID联合的无密码身份验证和第三方标识提供者,使登录体验无缝。
使用 Microsoft Entra ID 的单一登录还为会话中基于Microsoft Entra ID的资源提供了无缝体验。 有关在会话中使用无密码身份验证的详细信息,请参阅 会话内无密码身份验证。
注意
如果计划为外部标识提供Azure虚拟桌面资源,则必须为主机池启用单一登录。 有关详细信息和其他要求,请参阅 外部标识。
若要使用Microsoft Entra ID身份验证启用单一登录,必须完成五个任务:
为远程桌面协议 (RDP) 启用Microsoft Entra身份验证。
隐藏同意提示对话框。
如果Active Directory 域服务是环境的一部分,请创建 Kerberos 服务器对象。 有关条件的详细信息,请参阅其部分。
查看条件访问策略。
配置主机池以启用单一登录。
启用单一登录之前
在启用单一登录之前,请查看以下信息,以便在环境中使用它。
会话锁定行为
如果启用了使用 Microsoft Entra ID 的单一登录,并且远程会话被用户或策略锁定,则可以选择会话是断开连接还是显示远程锁屏界面。 默认行为是在会话锁定时断开连接。
当会话锁定行为设置为断开连接时,将显示一个对话框,让用户知道他们已断开连接。 用户可以在准备好重新连接时从对话框中选择“ 重新 连接”选项。 此行为出于安全原因并确保完全支持无密码身份验证。 断开会话连接具有以下优势:
在需要时通过Microsoft Entra ID提供一致的登录体验。
条件访问策略允许时,单一登录体验和无身份验证提示的重新连接。
支持密钥和 FIDO2 设备等无密码身份验证,这与远程锁屏界面相反。
当用户重新连接到其会话时,将重新评估条件访问策略(包括多重身份验证和登录频率)。
可能需要多重身份验证才能返回到会话,并阻止用户使用简单的用户名和密码解锁。
如果要将会话锁定行为配置为显示远程锁屏界面,而不是断开会话连接,请参阅 配置会话锁定行为。
具有单一登录的 Active Directory 域管理员帐户
在具有Active Directory 域服务 (AD DS) 和混合用户帐户的环境中,只读域控制器上的默认密码复制策略拒绝对域管理员和管理员安全组的成员进行密码复制。 此策略阻止这些管理员帐户登录到Microsoft Entra已加入混合的主机,并可能不断提示他们输入其凭据。 它还阻止管理员帐户从已加入的主机访问使用 Kerberos 身份验证的本地资源Microsoft Entra。 出于安全原因,不建议使用域管理员帐户连接到远程会话。
如果需要以管理员身份更改会话主机,请使用非管理员帐户登录到会话主机,然后使用命令提示符中的 “以管理员身份运行” 选项或 运行方式 工具更改为管理员。
先决条件
在启用单一登录之前,必须满足以下先决条件:
若要配置Microsoft Entra租户,必须为你分配以下Microsoft Entra内置角色之一或等效角色:
会话主机必须运行以下作系统之一,并且安装了相关的累积更新:
Windows 11 企业版单会话或多会话,其中安装了 Windows 11 (KB5018418) 或更高版本的 2022-10 累积汇报。
Windows 10 企业版安装了 2022-10 累积汇报(适用于Windows 10 (KB5018410) 或更高版本)的单会话或多会话。
Windows Server 2022 年,安装了适用于Microsoft服务器作系统的 2022-10 累积更新 (KB5018421) 或更高版本。
会话主机必须Microsoft Entra加入或Microsoft Entra混合联接。 不支持加入到Microsoft Entra 域服务或仅Active Directory 域服务的会话主机。
如果Microsoft Entra混合加入的会话主机与用户帐户位于不同的 Active Directory 域中,则这两个域之间必须具有双向信任。 如果没有双向信任,连接会回退到较旧的身份验证协议。
在本地设备或 Azure Cloud Shell 上安装 Microsoft Graph PowerShell SDK 2.9.0 或更高版本。
使用受支持的 Windows App 版本或远程桌面客户端连接到远程会话。 支持以下平台和版本:
Windows App:
- Windows:Windows App的所有版本。 本地电脑无需加入Microsoft Entra ID或 Active Directory 域。
- macOS:版本 10.9.10 或更高版本。
- iOS/iPadOS:版本 10.5.2 或更高版本。
- 浏览器。
远程桌面客户端:
- 运行 Windows 10 或更高版本的本地电脑上的 Windows 桌面客户端。 本地电脑无需加入Microsoft Entra ID或 Active Directory 域。
- Web 客户端。
- 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:
-
Windows Cloud 登录:
270efc09-cd0d-444b-a71f-39af4910ec45
若要配置服务主体,请使用 Microsoft Graph PowerShell SDK 在服务主体上创建新的 remoteDesktopSecurityConfiguration 对象 ,并将 属性 isRemoteDesktopProtocolEnabled 设置为 true。 还可以将Microsoft图形 API与图形资源管理器等工具配合使用。
使用PowerShell 终端类型打开Azure 门户中的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"通过运行以下命令获取 Windows 云登录服务主体的对象 ID 并将其存储在变量中:
$WCLspId = (Get-MgServicePrincipal -Filter "AppId eq '270efc09-cd0d-444b-a71f-39af4910ec45'").Id通过运行以下命令将 属性
isRemoteDesktopProtocolEnabled设置为true。 这些命令没有输出。If ((Get-MgServicePrincipalRemoteDesktopSecurityConfiguration -ServicePrincipalId $WCLspId) -ne $true) { Update-MgServicePrincipalRemoteDesktopSecurityConfiguration -ServicePrincipalId $WCLspId -IsRemoteDesktopProtocolEnabled }通过运行以下命令确认 属性
isRemoteDesktopProtocolEnabled设置为true:Get-MgServicePrincipalRemoteDesktopSecurityConfiguration -ServicePrincipalId $WCLspId这两个命令的输出应为:
Id IsRemoteDesktopProtocolEnabled -- ------------------------------ id True
隐藏同意提示对话框
默认情况下,启用单一登录后,用户在连接到新的会话主机时会看到一个允许远程桌面连接的对话框。 Microsoft Entra最多会记住 15 台主机 30 天,然后再次提示。 如果用户看到此对话框以允许远程桌面连接,则可以选择“ 是 ”进行连接。
可以通过配置受信任的设备列表来隐藏此对话框。 若要配置设备列表,请在包含会话主机的Microsoft Entra ID中创建一个或多个组,然后将组 ID 添加到 SSO 服务主体 Windows Cloud 登录名的属性。
提示
建议使用动态组并配置动态成员身份规则,以包括所有Azure虚拟桌面会话主机。 可以使用此组中的设备名称,但为了获得更安全的选项,可以使用 Microsoft 图形 API 设置和使用设备扩展属性。 虽然动态组通常在 5-10 分钟内更新,但大型租户可能需要长达 24 小时的时间。
动态组需要 Microsoft Entra ID P1 许可证或教育版Intune许可证。 有关详细信息,请参阅 组的动态成员身份规则。
若要配置服务主体,请使用 Microsoft Graph PowerShell SDK ,使用动态组的对象 ID 和显示名称在服务主体上创建新的 targetDeviceGroup 对象 。 还可以将Microsoft图形 API与图形资源管理器等工具配合使用。
在Microsoft Entra ID中创建一个动态组,其中包含要为其隐藏对话框的会话主机。 记下组的对象 ID,以执行下一步。
在同一
targetDeviceGroupPowerShell 会话中,通过运行以下命令创建对象,并将<placeholders>替换为自己的值:$tdg = New-Object -TypeName Microsoft.Graph.PowerShell.Models.MicrosoftGraphTargetDeviceGroup $tdg.Id = "<Group object ID>" $tdg.DisplayName = "<Group display name>"通过运行以下命令将
targetDeviceGroup组添加到 对象: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 $WCLspId -TargetDeviceGroupId "<Group object ID>"
创建 Kerberos 服务器对象
如果会话主机满足以下条件,则必须创建 Kerberos 服务器对象。 有关详细信息,请参阅使用 Microsoft Entra ID启用对本地资源的无密码安全密钥登录,特别是创建 Kerberos 服务器对象部分:
会话主机已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单一登录设置为 Connections 将使用Microsoft Entra身份验证来提供单一登录。
对于 PowerShell,请将 enablerdsaadauth 属性设置为 1。
后续步骤
请参阅 会话内无密码身份验证 ,了解如何启用无密码身份验证。
了解如何配置Azure虚拟桌面的会话锁定行为。
有关Microsoft Entra Kerberos 的详细信息,请参阅深入探讨:Microsoft Entra Kerberos 的工作原理。
如果遇到任何问题,请转到排查与已加入MICROSOFT ENTRA VM 的连接问题。