StoreFront

Entra ID 单点登录到 VDA (预览版)

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

重要提示:

Entra ID 单点登录到 VDA 目前处于预览阶段。此功能不提供支持,并且尚不建议在生产环境中使用。

先决条件

使用管理控制台进行配置

要配置 Entra ID 单点登录:

  1. 打开您要配置的应用商店的 应用商店设置 窗口。

  2. 在“操作”窗格中,选择 配置应用商店设置

  3. 配置商店设置 页面上,选择 Entra SSO 选项卡。

  4. 启用或禁用 Entra 单点登录。

    商店 Entra SSO 配置选项卡的屏幕截图(/zh-cn/storefront/current-release/media/stores/configure-store-entra-sso.png)

  5. 选择 确定 以保存您的更改。

此设置仅影响配置为使用 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 的身份验证。

显示使用内容切换器的请求流的图表(/zh-cn/storefront/current-release/media/integrate-with-citrix-gateway-and-citrix-adc/azure-chart.png)

/Citrix/<StoreWeb>/Tickets/RedeemStoreTicket 的调用将定向到负载平衡器,该负载平衡器将请求转发到 StoreFront,从而绕过网关。请注意,需要负载平衡器,因为内容切换器无法配置为直接将流量定向到 URL,并且需要一个虚拟服务器作为目标。负载平衡器不执行任何负载平衡,仅将流量转发到 StoreFront。如果您在同一台计算机上已有合适的 StoreFront 负载平衡器,则可以使用它来代替。

所有其他调用都定向到网关的 VPN 虚拟服务器。

创建负载平衡器以从内容切换器直通到 StoreFront

如果您已经有一个负载均衡器虚拟服务器,它位于您的 StoreFront 服务器组之前并与网关在同一台机器上运行,那么您可以跳过此步骤,并配置内容交换机将流量直接发送到该虚拟服务器。否则,您必须创建一个负载均衡器以将流量传递到 StoreFront 服务器。这是因为内容交换器操作必须引用一个虚拟服务器。

步骤略有不同,具体取决于 StoreFront 是配置为 HTTPS(推荐)还是 HTTP。

StoreFront is configured for 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
<!--NeedCopy-->

思拓方 已配置为 HTTP

使用 StoreFront 的 FQDN 创建表示 StoreFront 的服务 stf_srv,并将其绑定到无持久性的 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-->
Entra ID 单点登录到 VDA (预览版)