你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

使用 Microsoft Entra ID 为Azure虚拟桌面配置单一登录

使用 Microsoft Entra ID Azure 虚拟桌面的单一登录 (SSO) 为连接到会话主机的用户提供了无缝登录体验。 启用单一登录时,用户使用Microsoft Entra ID令牌向 Windows 进行身份验证。 此令牌允许在连接到会话主机时使用与Microsoft Entra ID联合的无密码身份验证和第三方标识提供者,使登录体验无缝。

使用 Microsoft Entra ID 的单一登录还为会话中基于Microsoft Entra ID的资源提供了无缝体验。 有关在会话中使用无密码身份验证的详细信息,请参阅 会话内无密码身份验证

注意

如果计划为外部标识提供Azure虚拟桌面资源,则必须为主机池启用单一登录。 有关详细信息和其他要求,请参阅 外部标识

若要使用Microsoft Entra ID身份验证启用单一登录,必须完成五个任务:

  1. 为远程桌面协议 (RDP) 启用Microsoft Entra身份验证。

  2. 隐藏同意提示对话框。

  3. 如果Active Directory 域服务是环境的一部分,请创建 Kerberos 服务器对象。 有关条件的详细信息,请参阅其部分。

  4. 查看条件访问策略。

  5. 配置主机池以启用单一登录。

启用单一登录之前

在启用单一登录之前,请查看以下信息,以便在环境中使用它。

会话锁定行为

如果启用了使用 Microsoft Entra ID 的单一登录,并且远程会话被用户或策略锁定,则可以选择会话是断开连接还是显示远程锁屏界面。 默认行为是在会话锁定时断开连接。

当会话锁定行为设置为断开连接时,将显示一个对话框,让用户知道他们已断开连接。 用户可以在准备好重新连接时从对话框中选择“ 重新 连接”选项。 此行为出于安全原因并确保完全支持无密码身份验证。 断开会话连接具有以下优势:

  • 在需要时通过Microsoft Entra ID提供一致的登录体验。

  • 条件访问策略允许时,单一登录体验和无身份验证提示的重新连接。

  • 支持密钥和 FIDO2 设备等无密码身份验证,这与远程锁屏界面相反。

  • 当用户重新连接到其会话时,将重新评估条件访问策略(包括多重身份验证和登录频率)。

  • 可能需要多重身份验证才能返回到会话,并阻止用户使用简单的用户名和密码解锁。

如果要将会话锁定行为配置为显示远程锁屏界面,而不是断开会话连接,请参阅 配置会话锁定行为

具有单一登录的 Active Directory 域管理员帐户

在具有Active Directory 域服务 (AD DS) 和混合用户帐户的环境中,只读域控制器上的默认密码复制策略拒绝对域管理员管理员安全组的成员进行密码复制。 此策略阻止这些管理员帐户登录到Microsoft Entra已加入混合的主机,并可能不断提示他们输入其凭据。 它还阻止管理员帐户从已加入的主机访问使用 Kerberos 身份验证的本地资源Microsoft Entra。 出于安全原因,不建议使用域管理员帐户连接到远程会话。

如果需要以管理员身份更改会话主机,请使用非管理员帐户登录到会话主机,然后使用命令提示符中的 “以管理员身份运行” 选项或 运行方式 工具更改为管理员。

先决条件

在启用单一登录之前,必须满足以下先决条件:

为 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图形资源管理器等工具配合使用。

  1. 使用PowerShell 终端类型打开Azure 门户中的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. 通过运行以下命令获取 Windows 云登录服务主体的对象 ID 并将其存储在变量中:

    $WCLspId = (Get-MgServicePrincipal -Filter "AppId eq '270efc09-cd0d-444b-a71f-39af4910ec45'").Id
    
  3. 通过运行以下命令将 属性 isRemoteDesktopProtocolEnabled 设置为 true 。 这些命令没有输出。

    If ((Get-MgServicePrincipalRemoteDesktopSecurityConfiguration -ServicePrincipalId $WCLspId) -ne $true) {
        Update-MgServicePrincipalRemoteDesktopSecurityConfiguration -ServicePrincipalId $WCLspId -IsRemoteDesktopProtocolEnabled
    }
    
  4. 通过运行以下命令确认 属性 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图形资源管理器等工具配合使用。

  1. 在Microsoft Entra ID中创建一个动态组,其中包含要为其隐藏对话框的会话主机。 记下组的对象 ID,以执行下一步。

  2. 在同一 targetDeviceGroup PowerShell 会话中,通过运行以下命令创建对象,并将 <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 $WCLspId -BodyParameter $tdg
    

    输出应类似于以下示例:

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

    对要添加到 targetDeviceGroup 对象的每个组重复步骤 2 和 3,最多为 10 个组。

  4. 如果以后需要从 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

后续步骤