Citrix DaaS™

Microsoft Entra 单点登录

当使用 Microsoft Entra ID 凭据访问已加入 Microsoft Entra 或已混合加入 Microsoft Entra 的会话主机上的虚拟应用程序和桌面时,您可以利用单点登录 (SSO)。

支持的基础结构

以下是 Microsoft Entra 单点登录支持的基础结构组件概述:

计算机标识 Citrix DaaS CVAD 本地部署 Citrix Workspace Citrix StoreFront Citrix Gateway 服务 NetScaler Gateway
已加入 Microsoft Entra
已混合加入 Microsoft Entra

注意:

StoreFront 对 Microsoft Entra ID 的支持目前处于预览阶段。有关详细信息,请参阅 StoreFront 文档

支持的身份提供程序

以下是 Microsoft Entra 单点登录支持的 Workspace 身份提供程序概述:

| 计算机标识 | Entra ID | Active Directory | Active Directory + 令牌 | Okta | SAML | NetScaler Gateway | 自适应身份验证 | | — | — | — | — | — | — | — | — |

  • 已加入 Microsoft Entra
  • 已混合加入 Microsoft Entra

注意

如果您计划使用 SAML 作为 IdP,则必须确保您的 SAML 提供程序已正确配置以支持基于 Entra 的身份验证。请参阅使用 Microsoft Entra ID 和 Microsoft Entra 标识进行 Workspace 身份验证的 SAML

支持的访问方法

以下是 Citrix 环境中可用的访问方法:

  • 本机访问: 您使用本机 Citrix Workspace 应用程序客户端访问 Citrix Workspace 或 Citrix StoreFront 并建立会话连接。
  • 浏览器访问: 您通过浏览器访问 Citrix Workspace 或 Citrix StoreFront,并使用适用于 HTML5 客户端的 Citrix Workspace 应用程序连接到虚拟应用程序或桌面会话。
    • 混合访问: 您通过浏览器访问 Citrix Workspace 或 Citrix StoreFront,并使用本机 Workspace 应用程序客户端连接到虚拟应用程序或桌面会话。

    • 以下是 Microsoft Entra 单点登录支持的访问方法概述:

访问方法 Windows Linux Mac Chrome OS Android iOS
本机
浏览器
混合

系统要求

以下是使用 Microsoft Entra 单点登录的系统要求:

  • 控制平面:Citrix DaaS
    • Citrix Cloud Commercial(美国、欧盟和 APS)
    • Citrix Cloud 日本
  • 用户门户:Citrix Workspace
  • Virtual Delivery Agent (VDA)
    • Windows:版本 2507 或更高版本
  • Citrix Workspace 应用程序
    • Windows:版本 2507 或更高版本
    • Linux:版本 2508 或更高版本(混合访问需要版本 2601 或更高版本)
    • Mac:版本 2508 或更高版本(混合访问需要版本 2511 或更高版本)
    • HTML5:版本 2511 或更高版本
    • Chrome OS:版本 2511 或更高版本
    • Android:版本 2511 或更高版本
    • iOS:版本 2511 或更高版本
  • Citrix Web Extension
  • 会话主机操作系统:

注意

仅当用户将在 WindowsLinuxMac 设备中利用混合访问时,才需要 Citrix Web Extension。如果用户利用本机或浏览器访问,则不需要 Citrix Web Extension。

注意事项

  • 如果您的用户将利用混合访问,他们必须使用 Microsoft Edge 或 Google Chrome,并安装 Citrix Web Extension。其他浏览器不支持通过混合访问实现 Microsoft Entra 单点登录。
    • 当使用 Microsoft Entra 单点登录登录到会话时,不支持客户端自动重新连接。使用此登录方法时,此功能会自动禁用。会话可靠性仍可用于在网络中断时自动重新连接。
    • 当虚拟桌面被锁定时,默认行为是显示 Windows 锁定屏幕。根据您的身份验证要求,您可能需要更改会话锁定行为。有关详细信息,请参阅会话锁定行为
  • 如果使用已混合加入 Microsoft Entra 的会话主机,则对于特权组(例如域管理员)的成员,单点登录默认不起作用。要启用它,请将该组或用户添加到只读域控制器 (RODC) 允许列表,以进行 Microsoft Entra Kerberos 访问。有关详细信息,请参阅 Microsoft Entra Kerberos TGT 和 Active Directory 访问控制
  • 目前不支持 Microsoft Entra External ID。如果您需要向来宾用户提供访问权限,请参阅使用 Entra ID 进行来宾和 B2B 标识的 Workspace 身份验证的 SAML

  • 如何配置 Microsoft Entra 单点登录

概述

Microsoft Entra 单点登录的配置包括以下步骤:

  1. Azure 和 Microsoft Entra ID 配置
    1. 注册 Citrix 资源和客户端应用程序
    2. 为 Citrix 资源应用程序启用 Microsoft Entra ID 远程桌面服务身份验证协议
    3. 隐藏用户同意提示
    4. 批准客户端应用程序
    5. 创建 Kerberos 服务器对象(仅限已混合加入 Microsoft Entra 的环境)。
    6. 查看 Microsoft Entra 条件访问策略
  2. Citrix 配置
    1. 预配具有所需操作系统版本、标识类型和 VDA 版本的会话主机
    2. 配置 Citrix Workspace:
      1. 配置适当的身份提供程序

Azure 和 Microsoft Entra ID 配置

为了利用 Microsoft Entra 单点登录,您必须首先在 Microsoft Entra ID 租户中为 Windows 启用 Microsoft Entra 身份验证,这允许颁发所需的身份验证令牌,从而使用户能够登录到已加入 Microsoft Entra 和已混合加入 Microsoft Entra 的会话主机。

进行 Azure 配置的人员必须被分配以下 Microsoft Entra 内置角色 之一,或至少具有同等权限:

配置可通过 Azure 门户、使用 Microsoft Graph PowerShell SDK 或 Microsoft Graph API 完成。以下部分详细介绍了如何通过 Azure 门户完成配置。如果您倾向于使用 Microsoft Graph PowerShell SDK 或 Microsoft Graph API,请参阅 Microsoft Entra 单点登录 Azure 配置

注册 Citrix 应用程序

您必须在 Azure 租户中注册 Citrix 资源应用程序和 Citrix 客户端应用程序。

您可以通过 Citrix Cloud 门户注册 Citrix 应用程序:

  1. 打开左上角的菜单,然后选择“身份和访问管理”。

  2. 在“身份验证”页面中,查找您要为其启用 Microsoft Entra 单点登录的 Microsoft Entra ID 身份提供程序。

  3. 打开选项菜单,然后选择“设置 Microsoft Entra SSO”。

    Entra app registration 1

  4. 单击“注册资源应用程序”旁边的“注册”。

    Entra app registration 2

  5. 接受 Citrix 资源应用程序请求的权限。

    Entra app registration 3

  6. 单击“注册客户端应用程序”旁边的“注册”。

    Entra app registration 4

  7. 接受 Citrix 客户端应用程序请求的权限。

    Entra app registration 5

或者,您可以使用以下同意 URL 注册应用程序。请务必先注册资源应用程序,然后注册客户端应用程序。

-  Citrix Cloud 美国、欧盟、亚太地区
-  资源应用程序:`https://login.microsoftonline.com/common/adminconsent?client_id=3a510bb1-e334-4298-831e-3eac97f8b26c`
-  客户端应用程序:`https://login.microsoftonline.com/common/adminconsent?client_id=85651ebe-9a8e-49e4-aaf2-9274d9b6499f`

-  Citrix Cloud 日本
-  资源应用程序:`https://login.microsoftonline.com/common/adminconsent?client_id=0027603f-364b-40f2-98be-8ca4bb79bf8b`
-  客户端应用程序:`https://login.microsoftonline.com/common/adminconsent?client_id=0fa97bc0-059c-4c10-8c54-845a1fd5a916`

以下是应用程序的权限:

Citrix 资源应用程序

将创建一个具有以下权限的应用程序:

API 名称 声明值 权限 类型
  • | – | – | – | – |
  • Microsoft Graph User.Read 登录并读取用户配置文件 委托
  • 对于 Citrix Cloud 美国、欧盟和亚太地区,该应用程序名为 Citrix-Workspace-Resource(应用程序 ID 3a510bb1-e334-4298-831e-3eac97f8b26c)。

对于 Citrix Cloud 日本,该应用程序名为 Citrix-Workspace-Resource-JP(应用程序 ID 0027603f-364b-40f2-98be-8ca4bb79bf8b)。

  • Citrix 客户端应用程序
  • 将创建一个具有以下权限的应用程序:
API 名称 声明值 权限 类型
Citrix-Workspace-Resource
Citrix-Workspace-Resource-JP
user_impersonation
Citrix Entra ID SSO
委托
Microsoft Graph User.Read 登录并读取用户配置文件 委托

对于 Citrix Cloud 美国、欧盟和亚太地区,该应用程序名为 Citrix-Workspace(应用程序 ID 85651ebe-9a8e-49e4-aaf2-9274d9b6499f)。

对于 Citrix Cloud 日本,该应用程序名为 Citrix-Workspace-JP(应用程序 ID 0fa97bc0-059c-4c10-8c54-845a1fd5a916)。

启用 Microsoft Entra ID 远程桌面服务身份验证协议

您必须在 Citrix Resource 应用程序中启用 Microsoft Entra ID 远程桌面服务身份验证协议。为此:

  1. Azure 门户中,导航到 Microsoft Entra ID > Devices > Manage > Remote connection configuration

    Entra app config 1

  2. 选择 Citrix-Workspace-Resource

  3. 启用 Microsoft Entra ID 远程桌面服务身份验证协议

    Entra app config 2

  4. 继续隐藏用户同意提示。

隐藏用户同意提示对话框

默认情况下,当用户连接到已启用 Microsoft Entra 单一登录的 Microsoft Entra 加入或 Microsoft Entra 混合加入会话主机时,系统会提示用户允许远程桌面连接,此时他们必须选择以允许单一登录。Microsoft Entra 将记住最多 15 个唯一的会话主机 30 天,之后会再次提示。

您可以通过配置目标设备列表来隐藏此对话框。要配置设备列表,您必须在 Microsoft Entra ID 中创建一个或多个组,其中包含 Microsoft Entra 加入和/或 Microsoft Entra 混合加入会话主机,然后在资源应用程序中授权这些组,最多可授权 10 个组。

启用 Microsoft Entra ID 远程桌面服务身份验证协议并创建组后:

  1. 单击链接添加目标设备组并选择相应的组。

    Entra app config 3

注意

强烈建议创建动态组以简化组的成员资格管理。虽然动态组通常在 5-10 分钟内更新,但大型租户可能需要长达 24 小时。

动态组需要 Microsoft Entra ID P1 许可证或 Intune for Education 许可证。有关详细信息,请参阅组的动态成员资格规则

批准客户端应用程序

您必须在 Citrix Resource 应用程序中将 Citrix Client 应用程序明确添加为已批准的客户端:

  1. 单击链接添加您受信任的客户端应用程序。

    Entra app config 4

  2. 选择 Citrix Client 应用程序。

    Entra app config 5

  3. 选择保存以将配置更改应用于 Citrix Resource 应用程序。

    Entra app config 6

创建 Kerberos 服务器对象

如果您的会话主机是 Microsoft Entra 混合加入的,则必须在用户和计算机帐户所在的 Active Directory 域中配置 Kerberos 服务器对象。有关详细信息,请参阅创建 Kerberos 服务器对象

审查 Microsoft Entra 条件访问策略

如果您使用或计划使用 Microsoft Entra 条件访问策略,请审查应用于 Citrix Resource 应用程序Citrix Client 应用程序的配置,以确保用户获得预期的登录体验。

有关在使用 Microsoft Entra 单一登录进行 DaaS 时配置条件访问的详细指南,请参阅 Microsoft 文档。请记住,所需的条件访问设置必须应用于 Citrix Resource 应用程序Citrix Client 应用程序,而不是 Microsoft 应用程序。

Citrix 会话主机

确保满足会话主机的系统要求:

  1. 确保会话主机是 Microsoft Entra 加入或 Microsoft Entra 混合加入的。
  2. 安装系统要求中指定的所需操作系统版本和内部版本。
  3. 安装系统要求中指定的所需 VDA 版本。

Microsoft Entra 混合加入会话主机

如果您正在使用 Citrix 机器创建服务、Citrix Provisioning 或 Windows 365 部署 Microsoft Entra 混合联接会话主机,则可以继续下一节。如果您正在使用任何其他工具或方法预配 Microsoft Entra 混合联接主机,则必须将以下注册表值添加到您的会话主机:

  • Key: HKLM\SYSTEM\CurrentControlSet\Control\Citrix
  • Value type: DWORD
  • Value name: AzureADJoinType
  • Data: 1

会话锁定行为

当虚拟桌面被锁定时,默认行为是显示 Windows 锁定屏幕。此时,解锁桌面支持的身份验证方法是用户名和密码智能卡

如果您有无密码部署,用户不知道他们的密码,建议将会话锁定行为配置为断开会话连接,而不是显示锁定屏幕。

  • 多会话会话主机

    您可以通过 Intune 或组策略启用针对 Microsoft 标识平台身份验证在锁定后断开远程会话连接设置来配置此行为。有关详细步骤,请参阅 配置 Azure 虚拟桌面的会话锁定行为

  • 单会话会话主机

    针对 Microsoft 标识平台身份验证在锁定后断开远程会话连接设置目前不受支持。但是,您可以通过创建 Windows 计划任务来实现相同的行为。

    以下示例脚本在单会话主机上创建一个计划任务,该任务在桌面被锁定时运行 cmd.exe /c tsdiscon

    ```

    # Create the TaskService COM object $service = New-Object -ComObject “Schedule.Service” $service.Connect()

    # Get the root folder and create a new task definition $rootFolder = $service.GetFolder(“") $taskDef = $service.NewTask(0)

    # Registration info

  • $taskDef.RegistrationInfo.Description = “Disconnect session when workstation is locked”

  • Principal (Users group, least privilege)

    $principal = $taskDef.Principal $principal.GroupId = “S-1-5-32-545” $principal.RunLevel = 0 # 0 = LeastPrivilege

Settings

$settings = $taskDef.Settings
$settings.Enabled = $true
$settings.AllowDemandStart = $true
$settings.DisallowStartIfOnBatteries = $false
$settings.StopIfGoingOnBatteries = $false
$settings.AllowHardTerminate = $false
$settings.StartWhenAvailable = $false

-  $settings.RunOnlyIfNetworkAvailable = $false
-  $settings.IdleSettings.StopOnIdleEnd = $true
-  $settings.IdleSettings.RestartOnIdle = $false
-  $settings.Hidden = $false
$settings.RunOnlyIfIdle = $false
$settings.DisallowStartOnRemoteAppSession = $false
$settings.UseUnifiedSchedulingEngine = $true
$settings.WakeToRun = $false
$settings.ExecutionTimeLimit = "PT0S"   # Unlimited
$settings.Priority = 7
$settings.MultipleInstances = 1         # IgnoreNew

Trigger: SessionLock

$trigger = $taskDef.Triggers.Create(11)  # 11 = TASK_TRIGGER_SESSION_STATE_CHANGE
$trigger.StateChange = 7                 # 7 = SessionLock
$trigger.Enabled = $true

Action: tsdiscon

$action = $taskDef.Actions.Create(0)     # 0 = Exec
$action.Path = "cmd.exe"
$action.Arguments = "/c tsdiscon"

Register the task

$rootFolder.RegisterTaskDefinition(
    "Disconnect on Lock",  # Task name
    $taskDef,
    6,                     # TASK_CREATE_OR_UPDATE
    $null, $null,          # No specific user/password
    3                      # TASK_LOGON_GROUP
) | Out-Null

<!--NeedCopy--> ```

如果以后需要删除计划任务,可以运行以下命令:

```

Unregister-ScheduledTask -TaskName "Disconnect on Lock" -Confirm:$false

<!--NeedCopy--> ```

Citrix 访问和控制平面

Workspace 身份验证

您必须将 Citrix Workspace 配置为使用 Microsoft Entra ID 或 SAML 作为 IdP。如有需要,请参阅 Citrix Workspace 文档了解详细信息。

注意

如果您计划使用 SAML 作为 IdP,则必须确保您的 SAML 提供程序已正确配置以支持基于 Entra 的身份验证。请参阅 使用 Microsoft Entra ID 和 Microsoft Entra 身份进行 Workspace 身份验证的 SAML

管理 Workspace 访问

如果您的用户将通过 Web 浏览器访问 Citrix Workspace,则无需额外配置。如果您想强制执行本机访问,您可以将 Citrix Workspace 配置为在应用商店的访问配置要求最终用户从 Citrix 客户端应用程序访问其应用商店

在 Workspace 中启用 Microsoft Entra 单点登录

配置 Citrix Workspace 身份验证后,您必须启用 Microsoft Entra 单点登录的使用:

  1. 在 Citrix Cloud 中创建服务主体:
    1. 转到 身份和访问管理 > API 访问 > 服务主体
    2. 单击 创建服务主体
    3. 输入服务主体的名称,然后单击下一步
    4. 设置服务主体的访问权限:
      1. 选择完全访问,或
      2. 选择自定义访问 > 常规 > Workspace 配置,然后单击下一步
    5. 设置密钥过期时间,然后单击下一步
    6. 单击完成
    7. 保存密钥和 ID。
  2. 下载 Citrix Workspace PowerShell 模块并将其解压到您的工作站,或任何可用于管理目的的计算机。
  3. 在您下载 Citrix Workspace PowerShell 模块的计算机中打开 PowerShell。
  4. 运行以下命令:

    
    Import-Module -Name “<extractedPath>\Citrix.Workspace.StoreConfigs.psm1”
    Set-StoreConfigurations -StoreUrl "https://<yourPrimaryStore>.cloud.com" -ClientId "<clientId>" -ClientSecret "<clientSecret>" -AzureAdSsoEnabled $True
    
    <!--NeedCopy-->
    

    注意:

    这是一个全局设置,将应用于您的 Citrix Cloud 租户中的所有应用商店。目前,无法根据命令中提供的应用商店 URL 在特定应用商店上启用或禁用此设置。

  5. 运行以下命令以验证设置是否已正确配置:

    
    Get-StoreConfigurations -StoreUrl "https://<yourPrimaryStore>.cloud.com" -ClientId "<clientId>" -ClientSecret "<clientSecret>"
    
    <!--NeedCopy-->
    

交付组配置

  1. 如果您的会话主机是 Microsoft Entra 混合联接的,请将虚拟应用程序和/或桌面分配给相应的 Microsoft Entra 用户或组。可以删除对 Active Directory 用户或组的任何现有分配,但这不是必需的。
  2. 如果您正在使用 Citrix 机器创建服务、Citrix Provisioning 或 Windows 365 以外的任何其他方式预配 Microsoft Entra 联接或 Microsoft Entra 混合联接会话主机,您将需要为交付组配置登录类型:
    1. 如果您尚未安装 Citrix 远程 PowerShell SDK,请下载并将其安装到您的工作站,或任何可用于管理目的的计算机。
    2. 在您安装 Citrix 远程 PowerShell SDK 的计算机中打开 PowerShell 提示符。
    3. 运行以下命令:

      Microsoft Entra 联接

      
      asnp citrix*
      Get-XDAuthentication
      Get-BrokerDesktopGroup -Name <dgName> | Set-BrokerDesktopGroup -MachineLogOnType "AzureAd"
      
      <!--NeedCopy-->
      

      Microsoft Entra 混合联接

      
      asnp citrix*
      Get-XDAuthentication
      Get-BrokerDesktopGroup -Name <dgName> | Set-BrokerDesktopGroup -MachineLogOnType "HybridAzureAd"
      
      <!--NeedCopy-->
      

客户端设备

确保满足客户端设备的系统要求:

  1. 按照系统要求中指定的方式安装所需的 Citrix Workspace 应用程序版本。
  2. 如果您的用户将利用混合访问,请确保已安装 Citrix Web Extension。如果您的用户将使用本机或浏览器访问,则不需要 Citrix Web Extension。

故障排除

已知问题

  • 启用 Microsoft Entra 单一登录后,用户在启动其虚拟桌面时可能会遇到 Microsoft 错误 AADSTS293005,该错误指示 RDP protocol is not enabled for the requested resource application. Please configure the RemoteDesktopSecurityConfiguration property on resource service principal to enable RDP protocol。 要解决此问题,请重新启动 Citrix Workspace 应用程序。
  • 如果用户的 Citrix Workspace 应用程序不支持 Microsoft Entra 单一登录,或者他们在使用混合访问时未安装 Citrix Web Extension,则在启动会话时可能会遇到 30 秒的延迟。
  • 如果 Citrix Workspace 上启用了 Microsoft Entra 单一登录,但尚未完成所需的 Azure 配置,则用户在启动会话时可能会遇到 30 秒的延迟。

单一登录失败时

如果访问虚拟桌面或应用程序时单一登录失败,请按以下步骤操作:

  1. 确认 Microsoft Entra 单一登录已在 Citrix Workspace 中启用

  2. 确认用户利用的访问方法受支持。

  3. 如果用户正在利用混合访问,请确认已安装 Citrix Web Extension

  4. 确认客户端设备正在运行所需的 Citrix Workspace 应用程序版本

  5. 确认您的会话主机正在运行所需的 Windows 版本

  6. 确认您的会话主机正在运行所需的 VDA 版本

  7. 确保会话主机上未启用 Windows 设置 Always prompt for password upon connection

    此设置默认处于禁用状态,可以通过组策略或 Intune 在 Computer Configuration\Administrative Templates\Windows Components\Remote Desktop Services\Remote Desktop Session Host\Security 下进行配置。

    您可以通过在 HKLM\SOFTWARE\Policies\Microsoft\Windows NT\Terminal Services 下查找值 fPromptForPassword 来检查注册表中是否启用了该设置。如果该值设置为 1,则表示该设置已启用,单一登录将不可用。如果该值缺失或设置为 0,则表示该设置已禁用。

  8. 确认会话主机中 AzureADJoinType 设置配置正确:
    • 键:HKLM\SYSTEM\CurrentControlSet\Control\Citrix
    • 值类型:DWORD
    • 值名称:AzureADJoinType
    • 值数据:1 (Microsoft Entra 混合加入);2 (Microsoft Entra 加入)
  9. 确保在 Citrix Studio 中将虚拟桌面或应用程序分配给 Microsoft Entra 身份,而不是 Active Directory 身份。

  10. 通过运行以下 PowerShell 命令,确认交付组的登录类型配置正确:

    
    Get-BrokerDesktopGroup -Name <deliveryGroupName>
    
    <!--NeedCopy-->
    

    对于 Microsoft Entra 加入的会话主机,MachineLogOnType 必须设置为 AzureAd。 对于 Microsoft Entra 混合加入的会话主机,MachineLogOnType 必须设置为 HybridAzureAd

  11. 如果您正在使用 SAML IdP,请确认已实施必要的配置

  12. 确认 Citrix 资源和客户端应用程序已在 Microsoft Entra 租户中注册

  13. 确认 Microsoft Entra ID RDS 身份验证协议已在 Citrix 资源应用程序上启用

  14. 确认 Citrix 客户端应用程序已作为批准的客户端应用程序添加到 Citrix 资源应用程序中。

  15. 如果您的会话主机是 Microsoft Entra 混合加入的,请确认已在用户和计算机帐户所在的 Active Directory 域中创建 Kerberos 服务器对象。

  16. 查看您的 Microsoft Entra 条件访问策略。确保没有策略应用于 Citrix 资源和客户端应用程序或会话主机,以免影响单一登录体验。