Entra ID 单点登录到 VDA

Last published : Nov 13, 2026
您可以为加入 Entra 的 VDA 启用单点登录,这样用户在使用 Entra ID 对商店进行身份验证后,在启动虚拟应用程序或桌面时无需重新输入凭据。

先决条件

  • 您拥有由 Citrix DaaS™ 或 Citrix Virtual Apps and Desktops™ 2603 或更高版本托管的已加入 Entra ID 的资源。
  • 用户使用 (/zh-cn/storefront/current-release/integrate-with-citrix-gateway-and-citrix-adc/entra-id-oidc.html) 通过 OIDC 为 Entra ID 配置的 Citrix Gateway 对其商店进行身份验证。
  • (/zh-cn/storefront/current-release/stores/websites/ui-experience.html) 设置为 Modern。
  • 您已完成 (/zh-cn/citrix-daas/install-configure/session-authentication/entra-sso.html) 或 (/zh-cn/citrix-virtual-apps-desktops/install-configure/session-authentication/entra-sso) 中描述的所有配置。否则,单点登录将失败,用户可能会遇到启动延迟或错误。
  • 如果商店使用 Citrix Gateway 进行身份验证并从任何 Citrix DaaS 站点发布资源,则 (#configure-netscaler-adc-to-allow-unauthenticated-access-to-ticket-redemption-endpoint)。如果所有站点都是 Citrix Virtual Apps and Desktops,或者直接向 StoreFront 进行身份验证而没有网关,则不需要这样做。

使用管理控制台进行配置

要配置 Entra ID SSO:
  1. 打开您要配置的商店的 (/zh-cn/storefront/current-release/stores/settings.html) 窗口。
  2. 在“操作”窗格中,选择 Configure Store Settings。
  3. 在 Configure Store Settings 页面上,选择 Entra SSO 选项卡。
  4. 启用或禁用 Entra SSO。
    商店 Entra SSO 配置选项卡截图 (/en-us/storefront/current-release/media/stores/configure-store-entra-sso.png)
  5. 选择 OK 以保存您的更改。
此设置仅影响配置为使用 Entra 或混合登录类型的交付组中的计算机。对于登录类型为 Active Directory 的交付组,您可能还需要启用 Federated Authentication Service。

使用 PowerShell 进行配置

要使用 PowerShell 配置单点登录,请使用参数 -EntraIdSsoEnabled 调用 Set-STFStoreLaunchOptions cmdlet。

配置 NetScaler ADC 以允许未经身份验证的访问票证兑换端点

Citrix DaaS 使用 Citrix 管理的 Azure 客户端通过 Citrix Entra ID 网页处理 SSO。为了提高安全性,StoreFront 会创建一个链接到该客户端的票证。Citrix Entra ID 网页会回调 StoreFront 以验证该票证。由于 Citrix Entra ID 网页托管在与 StoreFront 不同的域下,因此它无法访问身份验证上下文。因此,如果用户通过 Citrix Gateway 对其商店进行身份验证,则必须配置 NetScaler ADC 以绕过 Citrix Gateway 对 /Citrix/<StoreWeb>/Tickets/RedeemStoreTicket 的调用。
注意:
Citrix Virtual Apps and Desktops 要求您在 Azure 中创建自己的客户端,而不是使用 Citrix 管理的客户端。因此,不需要票证,并且不需要以下配置。
下图显示了如何使用内容切换器绕过票证兑换 URL 的身份验证。
显示使用内容切换器请求流的图表
对 /Citrix/<StoreWeb>/Tickets/RedeemStoreTicket 的调用将定向到负载均衡器,该负载均衡器将请求转发到 StoreFront,绕过网关。请注意,负载均衡器是必需的,因为内容切换器无法配置为直接将流量定向到 URL,并且需要一个虚拟服务器作为目标。负载均衡器不执行任何负载均衡,仅将流量转发到 StoreFront。如果您在同一台计算机上已有合适的 StoreFront 负载均衡器,则可以使用它代替。
所有其他调用都定向到网关的 VPN 虚拟服务器。

创建负载均衡器以将流量从内容切换器传递到 StoreFront

如果您已经有一个负载均衡器虚拟服务器位于您的 StoreFront 服务器组之前,并且与网关在同一台计算机上运行,则可以跳过此步骤,并配置内容切换器以将流量直接发送到该虚拟服务器。否则,您必须创建一个负载均衡器以将流量传递到 StoreFront 服务器。这是因为内容切换器操作必须引用一个虚拟服务器。
根据 StoreFront 是配置为 HTTPS(推荐)还是 HTTP,步骤略有不同。

StoreFront 配置为 HTTPS

使用 StoreFront 的 IP 地址创建表示 StoreFront 的服务 stf_srv,并将其绑定到没有持久性的 SSL 负载均衡器。
add service stf_srv <StoreFront Ip Address> SSL 443
add lb vserver lb_vs SSL <lb_vs Ip Address> 443 -persistenceType NONE -cltTimeout 180
bind lb vserver lb_vs stf_srv

StoreFront 配置为 HTTP

创建一个服务 stf_srv,使用 StoreFront 的 FQDN 表示它,并将其绑定到没有持久性的 HTTP 负载均衡器。
add server storefront1 <storefront fqdn>
add service stf_srv storefront1 HTTP 80
add lb vserver lb_vs HTTP 0.0.0.0 0 -persistenceType NONE -cltTimeout 180
bind lb vserver lb_vs stf_srv

创建 SSL 内容切换虚拟服务器

创建一个 SSL 内容切换虚拟服务器来处理客户端请求。此内容切换虚拟服务器侦听端口 443 上的 HTTPS 流量,并将请求路由到网关 VPN 虚拟服务器,或通过负载均衡器传递到 StoreFront。
默认情况下,内容切换处于禁用状态,因此如果之前未启用,则必须启用它。
enable feature CS
add cs vserver cs_vs SSL <cs_vs Ip Address> 443 -cltTimeout 180 -persistenceType NONE
bind ssl vserver cs_vs -certkeyName <Certificate Name>

创建用于票证兑换的内容切换策略

创建一个内容切换策略,用于基于包含 StoreFront 票证兑换路径的 URL 进行负载均衡。
当 URL 包含 /Citrix/<StoreWeb>/Tickets/RedeemStoreTicket 时,此策略会匹配请求,并将其路由到负载均衡器,而无需通过 VPN 虚拟服务器。
将 <StoreWeb> 替换为 StoreFront 虚拟服务器 Web 策略中的 StoreFront 网站名称。您可以使用前面步骤中创建的负载均衡器 lb_vs,也可以使用现有负载均衡器虚拟服务器作为 StoreFront 服务器的前端。
add cs action cs_lb_vs -targetLBVserver lb_vs
add cs policy cs_lb_vs_pol -rule "HTTP.REQ.URL.CONTAINS(\"/Citrix/<StoreWeb>/Tickets/RedeemStoreTicket\")" -action cs_lb_vs
bind cs vserver cs_vs -policyName cs_lb_vs_pol -priority 100

为所有其他流量创建内容切换策略

创建一个包罗万象的内容切换策略,以通过 VPN 虚拟服务器发送所有其他 StoreFront 流量进行身份验证。
add cs action cs_vpn_vs -targetVserver <VPN vServer>
add cs policy cs_vpn_pol -rule TRUE -action cs_vpn_vs
bind cs vserver cs_vs -policyName cs_vpn_pol -priority 110