Citrix DaaS™

Microsoft Entra 单一登录 Azure 配置

为了利用 Microsoft Entra 单一登录,您必须首先在 Microsoft Entra ID 租户中允许 Windows 的 Microsoft Entra 身份验证,这使得能够颁发所需的身份验证令牌,从而允许用户登录到 Microsoft Entra 加入和 Microsoft Entra 混合加入的会话主机。为此,您必须执行以下操作:

  1. 在 Microsoft Entra ID 租户中注册 Citrix 应用程序(资源应用和客户端应用)。
  2. 为 Citrix 资源应用程序启用远程桌面安全配置。
  3. 将 Citrix 客户端应用程序添加为 Citrix 资源应用程序的已批准客户端。
  4. [可选] 隐藏用户同意提示对话框。
  5. 创建 Kerberos 服务器对象。
  6. 查看 Microsoft Entra 条件访问策略。

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

如果您希望通过 PowerShell 完成 Azure 配置,则需要使用 Microsoft Graph PowerShell SDK。您还可以使用 Microsoft Graph APIGraph Explorer 等工具。

提供了如何使用 PowerShell 和 Graph Explorer 完成配置的说明。

PowerShell 配置

如果您选择使用 Microsoft Graph PowerShell SDK,请注意:

启用远程桌面安全配置

在您 (/zh-cn/citrix-daas/install-configure/session-authentication/entra-sso#register-citrix-applications) 后,必须在 Citrix 资源应用程序中启用远程桌面安全配置。

  1. 导入身份验证和应用程序 Microsoft Graph 模块,并使用 Application.Read.AllApplication-RemoteDesktopConfig.ReadWrite.All 范围连接到 Microsoft Graph:

    Import-Module Microsoft.Graph.Authentication
    Import-Module Microsoft.Graph.Applications
    Import-Module Microsoft.Graph.Beta.Applications
    Connect-MgGraph -Scopes "Application.Read.All","Application-RemoteDesktopConfig.ReadWrite.All"
    <!--NeedCopy-->
    
  2. 获取与应用程序注册关联的服务主体的对象 ID:

    Citrix Cloud 美国、欧盟、APS

    $CtxResourceSpId = (Get-MgServicePrincipal -Filter "AppId eq '3a510bb1-e334-4298-831e-3eac97f8b26c'").Id
    $CtxClientSpId = (Get-MgServicePrincipal -Filter "AppId eq '85651ebe-9a8e-49e4-aaf2-9274d9b6499f'").Id
    <!--NeedCopy-->
    

    Citrix Cloud 日本

    $CtxResourceSpId = (Get-MgServicePrincipal -Filter "AppId eq '0027603f-364b-40f2-98be-8ca4bb79bf8b'").Id
    $CtxClientSpId = (Get-MgServicePrincipal -Filter "AppId eq '0fa97bc0-059c-4c10-8c54-845a1fd5a916'").Id
    <!--NeedCopy-->
    
  3. 将属性 isRemoteDesktopProtocolEnabled 设置为 true

    If ((Get-MgServicePrincipalRemoteDesktopSecurityConfiguration -ServicePrincipalId $CtxResourceSpId) -ne $true) {
        Update-MgServicePrincipalRemoteDesktopSecurityConfiguration -ServicePrincipalId $CtxResourceSpId -IsRemoteDesktopProtocolEnabled
    }
    <!--NeedCopy-->
    
  4. 确认属性 isRemoteDesktopProtocolEnabled 已设置为 true

    Get-MgServicePrincipalRemoteDesktopSecurityConfiguration -ServicePrincipalId $CtxResourceSpId
    <!--NeedCopy-->
    

批准客户端应用程序

您必须在 Citrix 资源应用程序中将 Citrix 客户端应用程序明确添加为已批准的客户端。

  1. 创建一个 approvedClientApp 对象:

    $acp = New-Object -TypeName Microsoft.Graph.Beta.PowerShell.Models.MicrosoftGraphApprovedClientApp
    $acp.Id = $CtxClientSpId
    <!--NeedCopy-->
    
  2. 将客户端应用程序添加到 approvedClientApp 对象:

    New-MgBetaServicePrincipalRemoteDesktopSecurityConfigurationApprovedClientApp -ServicePrincipalId $CtxResourceSpId -BodyParameter $acp
    <!--NeedCopy-->
    

    输出应类似于:

    Id                                    DisplayName
    --                                    -----------
    87654321-wxyz-1a2b-3c4d-1029384756af  Citrix-Workspace
    

隐藏用户同意提示对话框

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

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

注意

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

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

创建组后,请按照以下步骤操作:

  1. 获取包含您要隐藏远程桌面连接提示的会话主机的组的对象 ID (OID)。

  2. 创建一个 targetDeviceGroup 对象:

    $tdg = New-Object -TypeName Microsoft.Graph.PowerShell.Models.MicrosoftGraphTargetDeviceGroup
    $tdg.Id = "<groupOID>"
    <!--NeedCopy-->
    
  3. 将客户端应用添加到 approvedClientApp 对象:

    New-MgServicePrincipalRemoteDesktopSecurityConfigurationTargetDeviceGroup -ServicePrincipalId $CtxResourceSpId -BodyParameter $tdg
    <!--NeedCopy-->
    

    输出应类似于:

    Id                                    DisplayName
    --                                    -----------
    87654321-wxyz-1a2b-3c4d-1029384756af  Entra-SSO-Desktops
    
  4. 如果您以后需要从 targetDeviceGroup 对象中删除设备组,请运行以下命令:

    Remove-MgServicePrincipalRemoteDesktopSecurityConfigurationTargetDeviceGroup -ServicePrincipalId $CtxResourceSpId -TargetDeviceGroupId "<groupOID>"
    <!--NeedCopy-->
    

注意

如果需要,您可以重复这些步骤添加更多组,最多可添加 10 个组。

微软 Graph API 配置

启用远程桌面安全配置

在您注册 Citrix 应用程序后,您必须在 Citrix 资源应用程序中启用远程桌面安全配置。

  1. 从 Azure 门户获取与应用程序注册关联的服务主体的对象 ID (OID):
    1. 导航到 Microsoft Entra ID > 企业应用程序。
    2. 如果已设置,请移除 Application type 筛选器,以便列出所有应用程序。
    3. 搜索 Citrix-Workspace-Resource / Citrix-Workspace-Resource-JP 并记下资源应用程序的关联对象 ID。
    4. 搜索 Citrix-Workspace / Citrix-Workspace-JP 并记下客户端应用程序的关联对象 ID。
  2. 在 Graph Explorer 中,使用来自目标 Azure 租户且具有所需权限的帐户登录。

  3. 设置以下查询:

    • HTTP 请求方法:PATCH
    • 微软 Graph API 版本: v1.0
    • 查询:

       https://graph.microsoft.com/v1.0/servicePrincipals/<resourceAppOID>/remoteDesktopSecurityConfiguration
       <!--NeedCopy-->
      
    • 请求正文:

       {
           "@odata.type": "#microsoft.graph.remoteDesktopSecurityConfiguration",
           "isRemoteDesktopProtocolEnabled": true
       }
       <!--NeedCopy-->
      
  4. 选择“修改权限”选项卡,并确保您已同意 Application.ReadWrite.All 权限。

  5. 运行查询。

有关参考,请参阅 remoteDesktopSecurityConfiguration resource type

批准客户端应用程序

您必须将 Citrix Client 应用程序显式添加为 Citrix Resource 应用程序中的已批准客户端。

设置以下查询并运行它:

  • HTTP 请求方法:POST
  • Microsoft Graph 接口 版本:v1.0
  • 查询:

     https://graph.microsoft.com/v1.0/servicePrincipals/<resourceAppOID>/remoteDesktopSecurityConfiguration/approvedClientApps
     <!--NeedCopy-->
    
  • 请求正文:

     {
         "@odata.type": "#microsoft.graph.approvedClientApp",
         "id": "<clientAppOID>"
     }
     <!--NeedCopy-->
    

隐藏用户同意提示对话框

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

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

注意

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

动态组需要 Microsoft Entra ID P1 许可证或 Intune for Education 许可证。有关更多信息,请参阅组的动态成员身份规则

创建组后,请按照以下步骤操作:

  1. 获取包含要隐藏远程桌面连接提示的会话主机的组的对象 ID (OID)。

  2. 设置以下查询并运行:

    • HTTP 请求方法:POST
    • Microsoft Graph 接口 版本:v1.0
    • 查询:

       https://graph.microsoft.com/v1.0/servicePrincipals/<resourceAppOID>/remoteDesktopSecurityConfiguration/targetDeviceGroups
       <!--NeedCopy-->
      
    • 请求正文:

       {
           "@odata.type": "#microsoft.graph.targetDeviceGroup",
           "id": "<groupOID>"
       }
       <!--NeedCopy-->
      

注意

如果需要,可以重复这些步骤以添加更多组,最多可添加 10 个组。

如果以后需要从 targetDeviceGroup 对象中删除设备组,请设置以下内容并运行查询:

  • HTTP 请求方法:DELETE
  • 微软 Graph API 版本:v1.0
  • 查询:

     https://graph.microsoft.com/beta/servicePrincipals/<resourceAppOID>/remoteDesktopSecurityConfiguration/targetDeviceGroups
     <!--NeedCopy-->
    

有关参考,请参阅 targetDeviceGroup 资源类型

创建 Kerberos 服务器对象

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

审查 Microsoft Entra 条件访问策略

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

有关在将 Microsoft Entra 单点登录用于 DaaS 时配置条件访问的详细指导,请参阅 Microsoft 文档。请记住,所需的条件访问设置必须应用于 Citrix 资源应用程序Citrix 客户端应用程序,而不是 Microsoft 应用程序。

Microsoft Entra 单一登录 Azure 配置