Microsoft Entra 单一登录 Azure 配置

Last published : Oct 24, 2026
为了利用 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.html#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"
  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
    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
  3. 将属性 isRemoteDesktopProtocolEnabled 设置为 true:
    If ((Get-MgServicePrincipalRemoteDesktopSecurityConfiguration -ServicePrincipalId $CtxResourceSpId) -ne $true) {
        Update-MgServicePrincipalRemoteDesktopSecurityConfiguration -ServicePrincipalId $CtxResourceSpId -IsRemoteDesktopProtocolEnabled
    }
  4. 确认属性 isRemoteDesktopProtocolEnabled 已设置为 true:
    Get-MgServicePrincipalRemoteDesktopSecurityConfiguration -ServicePrincipalId $CtxResourceSpId

批准客户端应用程序

您必须在 Citrix 资源应用程序中将 Citrix 客户端应用程序明确添加为已批准的客户端。
  1. 创建一个 approvedClientApp 对象:
    $acp = New-Object -TypeName Microsoft.Graph.Beta.PowerShell.Models.MicrosoftGraphApprovedClientApp
    $acp.Id = $CtxClientSpId
  2. 将客户端应用程序添加到 approvedClientApp 对象:
    New-MgBetaServicePrincipalRemoteDesktopSecurityConfigurationApprovedClientApp -ServicePrincipalId $CtxResourceSpId -BodyParameter $acp
    输出应类似于:
    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>"
  3. 将客户端应用添加到 approvedClientApp 对象:
    New-MgServicePrincipalRemoteDesktopSecurityConfigurationTargetDeviceGroup -ServicePrincipalId $CtxResourceSpId -BodyParameter $tdg
    输出应类似于此:
    Id                                    DisplayName
    --                                    -----------
    87654321-wxyz-1a2b-3c4d-1029384756af  Entra-SSO-Desktops
  4. 如果您以后需要从 targetDeviceGroup 对象中删除设备组,请运行以下命令:
    Remove-MgServicePrincipalRemoteDesktopSecurityConfigurationTargetDeviceGroup -ServicePrincipalId $CtxResourceSpId -TargetDeviceGroupId "<groupOID>"
注意
如果需要,您可以重复这些步骤以添加更多组,最多可添加 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
    • 请求正文:
      {
          "@odata.type": "#microsoft.graph.remoteDesktopSecurityConfiguration",
          "isRemoteDesktopProtocolEnabled": true
      }
  4. 选择“修改权限”选项卡,并确保您已同意 Application.ReadWrite.All 权限。
  5. 运行查询。

批准客户端应用程序

您必须在 Citrix 资源应用程序中将 Citrix 客户端应用程序明确添加为已批准的客户端。
设置以下查询并运行它:
  • HTTP 请求方法:POST
  • 微软图形 API 版本:v1.0
  • 查询:
    https://graph.microsoft.com/v1.0/servicePrincipals/<resourceAppOID>/remoteDesktopSecurityConfiguration/approvedClientApps
  • 请求正文:
    {
        "@odata.type": "#microsoft.graph.approvedClientApp",
        "id": "<clientAppOID>"
    }

隐藏用户同意提示对话框

默认情况下,当用户连接到启用了 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
    • 微软图形 API 版本:v1.0
    • 查询:
      https://graph.microsoft.com/v1.0/servicePrincipals/<resourceAppOID>/remoteDesktopSecurityConfiguration/targetDeviceGroups
    • 请求正文:
      {
          "@odata.type": "#microsoft.graph.targetDeviceGroup",
          "id": "<groupOID>"
      }
注意
如果需要,您可以重复这些步骤以添加更多组,最多可添加 10 个组。
如果您以后需要从 targetDeviceGroup 对象中删除设备组,请设置以下内容并运行查询:
  • HTTP 请求方法:DELETE
  • 微软图形 API 版本:v1.0
  • 查询:
    https://graph.microsoft.com/beta/servicePrincipals/<resourceAppOID>/remoteDesktopSecurityConfiguration/targetDeviceGroups
有关参考,请参阅 targetDeviceGroup 资源类型。

创建 Kerberos 服务器对象

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

审查 Microsoft Entra 条件访问策略

如果您正在使用或计划使用 Microsoft Entra 条件访问策略,请审查应用于 Citrix 资源应用程序 和 Citrix 客户端应用程序 的配置,以确保用户获得预期的登录体验。
有关在使用 Microsoft Entra 单点登录 DaaS 时配置条件访问的详细指南,请参阅 Microsoft 文档。请记住,所需的条件访问设置必须应用于 Citrix 资源应用程序 或 Citrix 客户端应用程序,而不是 Microsoft 应用程序。