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 API 和 Graph 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.All 和 Application-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 配置