Entra ID 单点登录到 VDA (预览版)
您可以为已加入 Entra 的 VDA 启用单点登录,以便用户使用 Entra ID 对应用商店进行身份验证后,在启动虚拟应用程序或桌面时无需重新输入凭据。
重要提示:
通过 OIDC 进行的 Entra ID 身份验证目前处于预览阶段。此功能不提供支持,尚不建议在生产环境中使用。
先决条件
- You have Entra ID joined resources hosted by Citrix DaaS™ or Citrix Virtual Apps and Desktops™ 2603 or higher.
- Users authenticate to their store using Entra ID. This can be using Citrix Gateway with OIDC, Citrix Gateway with SAML, or SAML direct to StoreFront.
- 用户界面体验 设置为 现代。
- 您必须已经完成所有在 微软 Entra 单点登录 - DaaS 或 微软 Entra 单点登录 - Citrix Virtual Apps and Desktops 中描述的配置。否则,单点登录将失败,用户可能会遇到启动延迟或错误。
- 如果应用商店使用 Citrix Gateway 进行身份验证并从任何 Citrix DaaS 站点发布资源,则配置您的 NetScaler ADC 以允许对票证兑换端点进行未经身份验证的调用。如果所有站点都是 Citrix Virtual Apps and Desktops,或者直接向 StoreFront 进行身份验证而无需网关,则不需要此操作。
已知问题
如果用户使用 SAML 进行身份验证并登录到多个 Entra ID 帐户,当用户启动 VDA 时,Web 浏览器或 Citrix Workspace 应用程序可能会提示用户选择要使用的帐户,或者单点登录可能会失败。如果用户使用基于 OIDC 的身份验证,则不会出现此问题。
使用管理控制台进行配置
要配置 Entra ID 单点登录:
-
打开 应用商店设置 窗口,以配置您想要的应用商店。
-
在“操作”窗格中,选择配置应用商店设置。
-
在配置应用商店设置页面上,选择Entra SSO选项卡。
-
启用或禁用 Entra 单点登录。

-
选择确定以保存您的更改。
此设置仅影响配置为使用 Entra 或混合登录类型的交付组中的计算机。对于登录类型为 Active Directory 的交付组,您可能还需要启用 Federated Authentication Service。
使用 PowerShell 进行相关配置
若要配置通过 PowerShell 实现的单点登录功能,您需要执行 Set-STFStoreLaunchOptions 这个命令程序,并为其提供具体的参数 -EntraIdSsoEnabled。
配置 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 协议
创建一个服务 stf_srv,使用其 IP 地址表示 StoreFront,并将其绑定到没有持久性的 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
<!--NeedCopy-->
StoreFront 的配置已设置为支持 HTTP 协议
创建一个服务 stf_srv,使用其 FQDN 表示 StoreFront,并将其绑定到没有持久性的 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
<!--NeedCopy-->
创建 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>
<!--NeedCopy-->
创建用于票证兑换的内容切换策略
创建一个内容切换策略,用于基于包含 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
<!--NeedCopy-->
为所有其他流量创建内容切换策略
创建包罗万象的内容切换策略,通过 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
<!--NeedCopy-->