参考体系结构:联合身份验证服务

概述

IT 行业已经开始超越传统的单因素身份验证,通过更好的凭证方法来实现对内部资源的远程访问,从而提高安全性。各组织正在采用现代身份验证方法,主要是基于 SAML(安全断言标记语言),以实现对内部服务的安全访问。

现代身份验证是一种身份管理框架,可提供更安全的用户身份验证和授权。使用现代身份验证管理用户身份为管理员提供了许多不同的工具,可提供更安全的身份这些身份验证方法包括 ADFS、Azure Active Directory、Okta、谷歌、Ping-Federate 等服务。与传统密码和安全令牌相比,这些方法提供了更广泛的多因素选项(文本、呼叫、PIN)。

除了消除使用旧式单因素身份验证时的密码缺陷之外,SAML 身份验证还使管理员能够为每个用户管理他们需要访问的所有应用程序的单个凭据集。当用户离开组织时,IT 管理员必须仅撤销一个凭据集。无需登录每个单独的应用程序即可吊销凭证。

什么是 SAML

SAML 是一个基于 XML 的行业标准框架,用于在身份提供商和服务提供商之间交换身份验证和授权数据。

Federated-Authentication-Service-Image-1

要识别 SAML 提供商:

  • 服务提供商 (SP) 是提供服务的实体,通常以应用程序的形式
  • 身份提供商 (IdP) 是提供用户身份的实体,包括对用户进行身份验证和授权的能力。

身份验证是验证 用户身份和凭据(密码、双重身份验证和多因素)的过程。

授权 是告诉服务提供商向经过身份验证的用户授予什么访问权限的过程。

SAML 断言

SAML 断言是身份提供商发出的加密签名 XML 文档,发送给包含用户授权的服务提供商。SAML 断言有三种不同类型:

  • 份验证-身份验证断言证明用户的身份识别,并提供用户登录的时间以及他们使用的身份验证方法(Kerberos、多因素等)。

  • 性-归因断言传递 SAML 用户属性(提供用户信息的特定数据片段,例如 UPN)。

  • 授权决策 -授权决策断言说明用户是否有权使用该服务,或者身份提供商因密码失败或缺乏服务权限而拒绝了他们的请求。

SAML 完全更改了用户登录以访问服务的身份验证方法。将应用程序或服务配置为通过 SAML 进行身份验证后,服务提供商和配置的身份提供商之间的身份验证交换将发生。身份验证过程验证用户的身份和权限,然后授予或拒绝该用户对服务的访问权限。为使 SAML 身份验证正常运行,每个身份提供商和服务提供商都需要商定类似且准确的配置。

必须强调的是,SAML 不支持在身份提供商和服务提供商之间发送用户的密码。SAML 的工作原理是在身份提供商和服务提供商之间传递有关用户、登录断言和属性的信息。用户通过身份提供商登录一次。然后,当用户尝试访问这些内部应用程序服务时,身份提供商会将 SAML 断言传递给服务提供商。

联合身份验证服务

现代身份验证框架对 Citrix 环境带来了技术挑战。Citrix Workspace 具有各种身份提供程序可供选择,同时 Windows VDA 本身不支持 SAML。虚拟交付代理 (VDA) 接受用户名/密码、Kerberos 和证书作为登录的身份验证方法。

使用 SAML 身份验证,Citrix Gateway 和 StoreFront 无权访问用户的密码。它只有 SAML 断言,因此无法在会话启动期间对 VDA 执行单点登录。使用 SAML 令牌,它会破坏 VDA 的单点登录 (SSO),并再次提示用户输入凭据。

Citrix 引入了 联合身份验证服务 (FAS) ,以便在会话启动期间通过颁发虚拟智能卡用户证书登录 VDA 来在使用 SAML 身份验证时实现单点登录。Citrix FAS 与 Microsoft Active Directory 和证书服务集成,以代表 Active Directory 用户自动颁发智能卡类证书。Citrix FAS 使用类似的 API,允许管理员配置物理智能卡以颁发虚拟智能卡类用户证书。

Federated-Authentication-Service-Image-2

Citrix FAS 将与 Workspace/StoreFront 和 VDA 集成,以有效地将 SAML 断言换成用户证书。该颁发的证书作为会话启动过程的一部分插入,从而实现 VDA 的单点登录并避免向用户显示额外的身份验证提示。Windows 和 Linux VDA 的工作负载均支持 Citrix FAS 部署。

FAS 安装和注意事项

Citrix Cloud Connector

对于 Citrix Cloud 部署,Cloud Connector 支持资源位置(FAS 服务器所在的位置)与 Citrix Cloud 之间的通信。建议每个资源位置使用两个或更多Cloud Connector。确保Cloud Connector可以在相应资源位置与 Active Directory 域控制器和虚拟交付代理进行通信。

FAS 服务器

支持 Citrix FAS 在所有最新的 Windows 服务器版本上进行安装。但是,Windows 和 Linux VDA 的工作负载都支持 Citrix FAS 部署。建议在不包含任何其他 Citrix 组件的专用服务器上安装 FAS 服务。应安装两台或更多 FAS 服务器以确保高可用性。请参阅 Citrix FAS 安装和配置文档。

有关可扩展性和高可用性的信息,请参阅文档 Citrix 联合身份验证服务可扩展性 和 Citrix 知识库文章 CTX225721。从本地迁移到 Citrix Cloud 时,可以利用部署在本地环境中的现有 FAS 服务器并将其配置为通过 Internet 访问与 Citrix Cloud 通信。有关此访问所需的端口,请参阅 Citrix 通信端口文档。

FAS 服务器应安装在安全的内部网段中,因为它需要访问 Active Directory 域控制器、证书服务和注册机构证书以及私钥。请参阅 高级配置 文档,查看证书、网络和其他安全注意事项。

证书服务

如果尚未部署,则必须根据组织的安全规范,在企业模式下设计和部署 FAS 支持的证书颁发机构服务。为避免与其他软件的互操作性问题,FAS 提供了三个 Citrix FAS 证书模板供自己使用。其中一个证书模板是用于智能卡登录 Citrix VDA。另外两个证书模板将授权 FAS 作为证书注册机构。这些模板必须在有权管理企业林的管理员帐户的帮助下部署和注册到 Active Directory。

Active Directory

建议为 Active Directory 设置服务器 2012 功能级别。域控制器必须安装域控制器身份验证证书和模板 (CTX218941)。域控制器上的证书必须支持智能卡身份验证。

每个 Active Directory 部署都不同于其他部署,因此可能需要额外的步骤才能使 FAS 解决方案在您的环境中运行。请参阅 Citrix 博客 了解多林选择性身份验证,为部署选择合适的体系结构。建议在生产环境中实施解决方案之前,先在实验室环境中仔细测试解决方案。

将所有三个 FAS 证书模板上载到 Active Directory,然后将 CA 服务器配置为使用新模板颁发证书。其中一个证书模板是用于智能卡登录 Citrix VDA。另外两个证书模板将授权 FAS 作为证书注册机构。

将 Citrix FAS 组策略 ADMX 模板安装到域控制器上的 策略定义 文件夹中。创建组策略对象 (GPO) 并使用 FAS 服务器的 DNS 地址配置 GPO。此 GPO 必须适用于 FAS 服务器、StoreFront 服务器以及具有相应域的每个 VDA。在创建计算机目录和交付组之前,请确保 FAS 组策略配置已正确应用于 StoreFront 和 VDA。

对于所有 VDA、StoreFront 服务器(如果存在)和 FAS 服务器,GPO 列表中 FAS 服务器的 DNS 地址顺序必须保持一致。VDA 使用 GPO 列表来查找为虚拟应用程序或桌面启动选择的 FAS 服务器。

会话中证书支持

默认情况下,VDA 不允许在登录后访问证书。如有必要,请使用组策略模板为会话中证书配置系统。GPO 中的会话期间证书选项控制登录 VDA 后是否可以使用证书。仅当用户在进行身份验证后需要访问证书时,才选择此选项。

如果选择会话中选项,则会在登录后将证书放在用户的个人证书存储区中以供应用程序使用。例如,在 VDA 会话中对 Web 服务器进行 TLS 身份验证,该证书由浏览器使用。如果未选择此选项,则证书仅用于登录或重新连接,并且用户在验证后无权访问证书。

Citrix Delivery Controller

Citrix Delivery Controller 必须至少为 1912 版本,VDA 必须至少为 1912 版本。通过在 Delivery Controller 上运行 Set-BrokerSite -TrustRequestsSentToTheXmlServicePort $true PowerShell cmdlet,在 Delivery Controller 和 StoreFront 服务器之间建立信任至关重要。

Citrix StoreFront

Citrix 强烈建议为本地部署安装最新版本的 StoreFront 服务器。StoreFront 服务器必须最低版本为 3.12。确保请求票证的 StoreFront 服务器和虚拟交付代理 (VDA) 兑换票证具有相同的 FAS DNS 地址配置。

Citrix FAS 的概念架构

联合身份验证服务 (FAS) 是与 Microsoft Active Directory 和证书颁发机构 (CA) 集成的 Citrix 组件,允许用户在 Citrix 环境中无缝进行身份验证。它带来了更舒适的替代登录方法;因此,用户不再需要在 VDA 会话启动期间提供凭据,从而实现单点登录。

对于本地环境,从 StoreFront 3.6 开始,可以将 SAML 身份验证与多个外部身份提供商一起使用,并与 Citrix FAS 集成,使用户能够从 Citrix Gateway 或直接通过 StoreFront 进行身份验证。

Citrix 于 2020 年 6 月通过 Citrix Cloud 实现了联合身份验证服务的公开 GA 版本。Citrix Workspace 现在完全支持 Citrix FAS,以在使用联合身份提供程序(如 Azure AD 和 Okta 身份提供商)时实现 VDA 的单点登录。

适用于本地部署的 Citrix FAS

使用本地环境进行 Citrix FAS 部署的概念体系结构如下。让我们回顾此部署中每个层的设计框架,了解它如何为您的组织提供完整的解决方案。

Federated-Authentication-Service-Image-3

用户层: 用户使用 Citrix Workspace 应用程序或浏览器通过 Citrix Gateway 访问 Citrix 环境。Citrix Workspace 应用程序可用于 Windows、Mac、Android 和 iOS。外部用户还可以通过 Web 浏览器使用 HTML5 版本的 Workspace 应用程序,他们无法在设备上安装 Workspace 应用程序。

访问层: 此层解释了 Citrix Gateway 和 StoreFront 的部署。Citrix Gateway 部署在 DMZ 网络中以启用对远程用户的访问,StoreFront 服务器部署在公司网络中供内部用户使用。Citrix 管理员在 Citrix Gateway 上配置了 SAML 身份验证策略。

要在 StoreFront 应用商店上启用联合身份验证服务集成,请以管理员帐户身份在创建的新应用商店上运行 PowerShell cmdlet;如果用户通过 StoreFront 访问且不涉及网关,则需要执行此步骤。有关 PowerShell cmdlet 的更多信息,请参阅 Citrix 文档。配置 VDA 登录提供程序 设置会告诉 StoreFront 向 FAS 和 VDA 请求证书以便在会话启动期间检索证书以便对 VDA 进行身份验证。配置后,此配置将应用于针对该应用商店启动的所有会话。

使用 Citrix Gateway 时,请使用 Citrix Gateway 和回调 URL 的详细信息配置 StoreFront,因为登录证据是通过回调传输的。将登录类型配置为“智能卡”有助于本机客户端执行 SAML 身份验证。“将凭据验证完全委托给网关”的设置使 StoreFront 服务器能够将用户身份验证委派给网关,这允许从 Citrix Gateway 进行直通 SAML 身份验证。IT 管理员创建了包含受信任的 FAS 服务器列表的 FAS 组策略对象,并应用于 AD 域中 FAS 服务器、VDA 和 StoreFront 服务器驻留的 OU。

使用 SAML 身份验证时,实际身份验证将在身份提供程序中进行。SAML 身份提供程序可以是任何东西,例如 ADFS、Azure AD、Okta、谷歌或 Ping 身份。让我们考虑将 Active Directory 联合服务 (ADFS) 视为身份提供程序,以便这种概念体系结构继续前进。

ADFS 为希望访问安全企业和联合合作伙伴组织中的应用程序的最终用户提供了简化、安全的身份联合和单点登录 (SSO) 功能。ADFS 与组织的 Active Directory 域和证书服务紧密集成。

从现在开始,它表示 SAML 服务提供商是 Citrix Gateway 或 StoreFront。SAML 身份提供程序是域中存在的 Microsoft ADFS,配置为从内部和外部网络访问它以进行身份验证。

让我们讨论资源枚举和会话启动过程以及所有层末端的 FAS 身份验证工作流程。

控制层: Delivery Controller、SQL 数据库、Studio 和 Licensing 是在控制层中部署和管理的核心组件。管理员已将托管连接配置为与虚拟机管理程序进行通信以配置和管理虚拟机。使用 Citrix Studio 创建计算机目录和交付组,并启用对所需用户组的访问权限。Citrix Director 可帮助管理员监控整个 Citrix 环境。

对于 Citrix FAS 部署,在 Delivery Controller 上,将 TrustRequestsSentToTheXmlServicePort 设置为“true”,以信任 StoreFront 服务器发送的 XML 请求。它支持“直通”身份验证和通过 Citrix Gateway 路由的连接。StoreFront Server 使用 XML 与 Delivery Controller 进行通信,并枚举经过身份验证的用户的资源。用户将看到 StoreFront 页面,其中列出了他们有权使用的应用程序和桌面。

资源层: 资源层是所有用户工作负载 (VDA) 驻留在 Citrix 环境中的地方。在 Citrix Studio 的帮助下并使用主映像模板,管理员使用 Windows Server 操作系统部署了虚拟应用程序服务器。管理员使用 Citrix Provisioning (PVS) 为任务工作人员创建了服务器 VDA。使用 Machine Creation Services (MCS),管理员在虚拟机管理程序上使用 Windows 10 为 Power worker 部署了虚拟桌面,在虚拟机管理程序上使用红帽企业版发行版为 Linux 用户部署了虚拟 Linux 桌面。

随这些虚拟机一起安装的 Virtual Delivery Agent 已注册到 Delivery Controller;管理员在桌面和应用程序中创建了计算机目录和交付组,以便使用 AD 安全组的用户能够访问。Citrix HDX 策略是使用 Citrix Studio 为交付组创建和分配的,以优化和保护 HDX 连接。

对于 Citrix FAS 部署,网络管理员已为 VDA 配置了 防火墙规则 ,以便在会话启动期间与 Citrix FAS 服务器进行通信以获取用户证书。Citrix 管理员验证包含受信任的 FAS 服务器的组策略已与 VDA 和 StoreFront 服务器驻留在 AD 中的 Active Directory OU 链接和启用。

平台层: 此层讨论为本地部署托管控制层组件和用户工作负载所需的硬件平台。Citrix 管理员在服务器硬件上安装了虚拟机管理程序软件,并为控制基础架构和用户工作负载部署了所需的虚拟机网络管理员已为所有 Citrix 组件启用防火墙规则,以便在环境中相互通信。存储管理员帮助为 Citrix 环境配置和分配足够的存储空间。

操作层:对于此概念性部署,让我们专注于操作层下的 FAS Server 部署。

对于 Citrix FAS Server 部署,Citrix 管理员在虚拟机管理程序上部署了两个新的 Windows 虚拟机并安装了 FAS 组件。FAS 管理控制台是作为 FAS 安装的一部分进行安装的。首次使用管理控制台时,它会引导您完成部署证书模板、设置证书颁发机构以及授权 FAS 使用该证书颁发机构的过程。

在证书颁发机构旁边,FAS 使用特定于 Windows 证书颁发机构的 DCOM 呼叫。不能使用第三方或公共证书颁发机构。可以在 FAS 控制台中指定多个 CA 详细信息以实现高可用性。中央证书颁发机构可以通过跨林注册来支持多个域。同样,StoreFront、FAS 和 VDA 都通过 Kerberos 相互进行身份验证,因此,必须位于同一个域或彼此之间具有双向信任的域中。

此外,还需要配置用户规则,该规则授权根据 StoreFront 的指示颁发证书以供 VDA 登录和会话中使用。每个规则将指定受信任请求证书的 StoreFront 服务器、这些服务器可以请求的用户集,以及可使用它们的 VDA 计算机集。请参阅 Citrix 文档,其中更详细地解释了该过程。

FAS 具有注册机构证书,允许它代表您的域用户自主颁发证书。因此,制定和实施安全策略来保护 FAS 服务器并限制其权限至关重要。

在会话启动期间,生成用户证书是该过程中最昂贵的部分。FAS 必须为用户动态生成新证书。它可以稍微延长登录过程并增加 FAS 服务器上的 CPU 负载。但是,FAS 服务器可以缓存允许用户登录的证书,几乎与使用显式密码身份验证一样快。当在 FAS 服务器内预生成用户证书时,用户的登录时间会显著缩短。有关要遵循的详细步骤,请参阅 Citrix 文档

Citrix FAS 的会话启动过程

让我们讨论将 FAS 与 Citrix Gateway 和 StoreFront 转 VDA 配合使用时的身份验证流程:

Federated-Authentication-Service-Image-4

当用户登录 Citrix Gateway(服务提供商)时,它会通过生成 SAML 登录请求进行响应,然后重定向到 ADFS(身份提供程序)登录页面。用户在 ADFS 单点登录页面上输入凭据。ADFS 使用 Active Directory 对用户进行身份验证,并将 SAML 请求解析为 SAML 响应。带有签名令牌的编码 SAML 响应移交给服务提供商 (Citrix Gateway)。

Citrix Gateway 使用 IdP 证书验证 SAML 响应。它提取 SAML 断言以查找用户的身份(用户主体名称)以及授予他们访问权限的授权。然后它将传递给 StoreFront 进行验证和资源枚举。StoreFront 服务器再次使用可信网关验证和验证断言,该网关使用回调 URL 配置。FAS 登录证据功能提供由 Citrix Gateway 和 StoreFront 传递给 FAS 的登录证据。FAS 可以验证证据,以确保令牌是由可信身份提供商 (IdP) 颁发的。有关登录证据的更多详细信息,请参阅 Citrix 文档

现在,StoreFront 的登录数据提供程序服务会联系联系联合身份验证服务,并要求为经过身份验证的用户生成证书。FAS 连接到 Active Directory 以验证用户,然后与 Active Directory 证书服务 (ADCS) 对话并向用户提交证书请求。

证书颁发机构为经过身份验证的用户颁发有效证书。FAS 持有用户证书及其属性。此证书不与 StoreFront 共享。但是,StoreFront 被告知该用户是有效的,FAS 已为此身份验证用户注册了证书。

现在,StoreFront Server 使用 XML 与 Delivery Controller 进行通信,并枚举经过身份验证的用户的资源。用户将看到 StoreFront 页面,其中列出了他们有权使用的所有应用程序和桌面。

当用户在其工作区应用程序中启动虚拟应用程序或桌面时,请求将发送到 StoreFront 以获取 ICA 文件。StoreFront 联系 Delivery Controller,并询问本次会话的 VDA 详细信息。Delivery Controller 验证请求并选择 VDA,VDA 可以接受此用户会话并与 StoreFront 共享 VDA 和 Secure Ticket Authority (STA) 详细信息以生成 ICA 文件。除此之外,StoreFront 服务器还从 GPO 列表中选择一个 FAS 服务器,然后联系选定的 FAS 服务器以获取授予对用户证书的访问权限的票证,该证书现在存储在 FAS 服务器上。StoreFront 会将此 FAS 令牌附加到 ICA 文件中,然后发送回工作区应用程序。

Federated-Authentication-Service-Image-5

Workspace 应用程序通过提供 STA 票证来验证和授予与 VDA 的通信,建立与 Citrix Gateway 的启动会话。STA 票证通过 Delivery Controller 进行验证,然后将其传递给 VDA 进行会话启动。在此期间,VDA 向 FAS 提供了 FAS 票证,以便与 FAS 服务器进行验证。VDA 凭据插件联系从 GPO 列表中选择的 FAS 服务器。FAS 服务器验证令牌并颁发有效的用户证书。成功验证用户证书后,将实现单点登录,并启动 VDA 会话并向用户显示。

适用于 Citrix Cloud 部署的 Citrix FAS

使用 Citrix Cloud 环境进行 FAS 部署的概念体系结构如下所示。让我们回顾每个层的设计框架以及此部署的 FAS 工作流程,以了解它如何为组织提供完整的解决方案。

Federated-Authentication-Service-Image-6

用户层: 用户(也称为 Citrix Cloud 中的订阅者)可以使用云工作空间 URL 访问 Citrix 环境。用户将获得 Citrix Cloud 中的 Workspace URL,以便通过安装在其终端节点上的浏览器或工作区应用程序进行连接。

接入层: Citrix Workspace 或网关服务是用户访问 Citrix 环境的前端或入口点。管理员可以使用云门户更改 Workspace URL 和身份验证选项。安装 Cloud Connector 可以将客户的 Active Directory 域扩展到 Citrix Cloud。Workspace 中的身份验证配置允许管理员为用户选择身份验证源,以便用户登录和访问 Citrix 资源。

让我们考虑 Microsoft Azure Active Directory (AAD) 作为此概念体系结构继续前进的身份验证源。Citrix Cloud 包括一个 Azure AD 应用程序,允许客户将其 Citrix Cloud 订阅与 Azure AD 关联。有关如何将 Azure Active Directory 与 Citrix Cloud 连接的更多信息,请参阅 Citrix 文档。启用 Azure AD 身份验证后,应使用 Citrix Cloud 中的库来管理向用户和组提供访问权限。

启用了 Workspace 身份验证配置页面,新选项“使用联合身份验证服务配置身份验证。“ 默认情况下,FAS 处于禁用状态。管理员通过使用“启用 FAS”按钮启用 FAS 身份验证。“

Federated-Authentication-Service-Image-7

当用户开始使用 Workspace URL 访问环境时,用户将根据配置重定向到相应的 Identity 提供程序。在这种情况下,用户将被重定向到 Azure 提供的登录页面。用户输入有效的 Azure AD 凭据,然后浏览器将重定向回 Citrix Workspace,并显示资源页面,其中显示分配给用户的应用程序和桌面。

会话启动过程以及 FAS 身份验证工作流程将在所有层的末尾进行讨论。

控制层: 对于 Citrix Cloud 环境,Delivery Controller、SQL 数据库、Studio、Director 和 Licensing 是控制层中的核心组件,在 Citrix DaaS 激活期间由 Citrix 在云端部署。管理员已将资源位置和托管连接配置为与本地虚拟机管理程序进行通信。计算机目录是使用 Cloud Studio 门户创建的,Citrix Director 可帮助监控环境。

当管理员在 Citrix Workspace 上启用 FAS 身份验证时,它会在 Citrix Cloud 上启用额外的 FAS“µ-服务,以便与本地 FAS 服务器通信。部署在资源位置的 FAS 服务器通过出站 SSL 连接连接 Cloud FAS µ-service。

资源层: 此层指的是所有用户工作负载都驻留在此部署中的资源位置。作为将本地用户工作负载与 Citrix Cloud 集成的起点,管理员安装了 Citrix Cloud Connector,允许本地组件和 Citrix Cloud 服务之间的通信。

在资源位置安装的 VDA 已向 Delivery Controller 注册。管理员创建计算机目录和交付组。Citrix HDX 策略是使用 Citrix Studio 为交付组创建和分配的,以优化和保护 HDX 连接。

平台层: 此层讨论托管用户工作负载和资源位置所需的其他组件所需的硬件平台。Citrix 管理员已在服务器硬件上安装了虚拟机管理程序软件,并为用户工作负载和其他组件(如 FAS Server)部署了所需的虚拟机。网络管理员已为所有 Citrix 组件启用防火墙规则,以便在环境中相互通信。存储管理员帮助为 Citrix 环境配置和分配足够的存储空间。

操作层:管理用户工作负载所需的工具和组件(例如文件服务器、Citrix WEM Server、RDS 许可证服务器、Citrix App Layering 服务器和 FAS 服务器)都在操作层下进行了涵盖。

管理员已部署文件服务器群集和 Workspace 环境管理器服务来配置 VDA 的用户配置文件。IT 管理员为用户配置文件和文件夹重定向创建了专用文件共享和 NFS 共享。Citrix 管理员还应用了资源管理策略来优化 VDA 代理上的 CPU 和内存利用率。IT 管理员已将远程桌面服务 (RDS) 客户端访问许可证服务器配置为虚拟应用程序工作负载颁发 RDS 许可证。

要将 Active Directory 用户和组与 Azure AD 同步,管理员已安装所需数量的 Azure AD Connect 服务器并使用其 Azure 订阅进行配置。对于 Citrix FAS 部署,Citrix 管理员已部署了两个新的 Windows VM,并按照安装过程安装和配置 Citrix FAS 服务。

使用具有提升权限的 FAS 管理控制台,管理员通过部署证书模板、设置证书颁发机构和授权 FAS 使用证书颁发机构的过程配置了 FAS Server。有关详细步骤,请参阅 Citrix 文档

Federated-Authentication-Service-Image-8

此外,有必要配置用户规则,该规则授权为 VDA 登录颁发证书。每个规则将指定受信任请求证书的 StoreFront 服务器、这些服务器可以请求的用户集,以及可使用它们的 VDA 计算机集。但是,在 Citrix Cloud 中使用规则时,StoreFront 访问权限将被忽略。当我们使用现有的 FAS 服务器时,FAS 安装程序会检测到现有的设置,并在这些选项旁边标记为绿色。

同样的规则可用于 Citrix Cloud 和本地 StoreFront 部署。当本地 StoreFront 使用规则时,仍会应用 StoreFront 访问权限。请参阅 Citrix 文档,其中更详细地解释了该过程。

将 Citrix FAS 组策略 ADMX 模板安装到域控制器上的 策略定义 文件夹中。使用 FAS 服务器的 DNS 地址创建和配置 GPO。此 GPO 必须适用于 FAS 服务器、StoreFront 服务器以及具有相应域的每个 VDA。在创建计算机目录和交付组之前,请确保 FAS 组策略配置已正确应用于 StoreFront 和 VDA。

作为在 Citrix Cloud 上配置 FAS 服务器并将本地 FAS 服务器与 Citrix Cloud 连接的最后一步,管理员选择了“连接到 Citrix Cloud”选项。“ 使用 Citrix Cloud 登录后,管理员将选择客户帐户和资源位置。现在,Citrix Cloud 注册 FAS 服务器并将其显示在资源位置页面上。

Federated-Authentication-Service-Image-9

将 Citrix FAS 与 Citrix Cloud 结合使用时的会话启动过程

当用户开始使用 Workspace URL 访问环境时,用户将被重定向到基于 Azure 的登录页面。用户在 Azure 单点登录页面上输入有效的 Azure 凭据。Azure 对用户进行身份验证并将用户重定向回 Citrix Workspace 页面。Citrix Workspace 枚举了资源并将其呈现给用户的资源页面。

当用户在其 Workspace 中启动虚拟应用程序或桌面时,系统会发送请求以获取 ICA 文件。控制器从资源位置选择可用的 VDA。Citrix Cloud 选择与 VDA 位于同一资源位置的 FAS 服务器,以获取使用证书颁发机构提供的用户证书授予 VDA 访问权的票证,该证书现存储在 FAS 服务器上。Citrix Workspace 将此 FAS 令牌附加到 ICA 文件中,然后发送回用户系统。

Federated-Authentication-Service-Image-10

Workspace 应用程序使用 ICA 文件与 VDA 建立连接,为了对订阅者进行身份验证,VDA 将连接到 FAS 并出示票证。VDA 凭据插件联系 FAS 服务器并验证令牌。现在,FAS 服务器向 VDA 提供有效的用户证书。成功验证用户证书后,将实现单点登录,并为用户启动 VDA 会话。

使用案例 #1

Citrix Service Provider (CSP) 设计了允许多个客户访问的混合 Citrix Virtual Apps and Desktops 环境。考虑到未来的增长,CSP 还需要考虑招募更多新客户。设计规范建议为每位客户提供不同的身份提供商,避免创建域信任。

Citrix Service Provider 经常将客户带入其 Citrix Virtual Apps and Desktops 环境,该解决方案要求 Citrix Gateway 根据 UPN 后缀选择性地提供不同的 SAML 身份提供商。例如,客户 A 配置为使用 Azure AD,客户-B 配置为使用 Active Directory 联合身份验证服务 (ADFS) 等。为每个客户配置不同的身份提供商,需要使用 Citrix FAS 向 Citrix VDA 提供单点登录的环境。

Federated-Authentication-Service-Image-11

请参阅 Citrix 博客,其中包含配置环境的详细步骤。让我们讨论每位客户的工作流程和会话启动流程。重要的配置发生在 Citrix Gateway 上,利用 Citrix ADC AAA、nFactor 和 Citrix Gateway 会话策略来满足多个客户用户请求。

  1. 当用户登录 Citrix Gateway(服务提供商)时,将根据 UPN 后缀识别用户,然后重定向到相应的身份提供程序登录页面。用户输入凭据,现在身份提供商会对用户进行身份验证,并使用 SAML 令牌作为响应进行响应。带有签名令牌的编码 SAML 响应移交给服务提供商 Citrix Gateway,在那里安装了来自身份提供商的根 CA 证书来验证令牌。

  2. Citrix Gateway 使用 IdP 证书验证 SAML 响应。它提取 SAML 断言以查找用户的身份(用户主体名称)以及授予他们访问权限的授权。然后它将传递给 StoreFront 进行验证和资源枚举。

  3. 现在,StoreFront 的登录数据提供程序服务会联系联系联合身份验证服务,并要求为经过身份验证的用户生成证书。FAS 连接到 Active Directory 以验证用户及其影子帐户。然后它会与 Active Directory 证书服务 (AD CS) 对话并向用户提交证书请求。证书颁发机构为经过身份验证的用户颁发有效证书。

  4. 当用户在其工作区应用程序中启动虚拟应用程序或桌面时,请求将发送到 StoreFront 以获取 ICA 文件。StoreFront 验证请求并联系 Delivery Controller,询问此会话的 VDA 详细信息。Delivery Controller 验证请求并与 StoreFront 共享 VDA 和 Secure Ticket Authority (STA) 详细信息以生成 ICA 文件。除此之外,StoreFront 服务器还从 GPO 列表中选择一个 FAS 服务器,然后联系选定的 FAS 服务器以获取授予对用户证书的访问权限的票证,该证书现在存储在 FAS 服务器上。StoreFront 会将此 FAS 令牌附加到 ICA 文件中,然后发送回工作区应用程序。

  5. Workspace 应用程序通过提供 STA 票证来验证和授予通信,启动连接以启动与 Citrix Gateway 的会话。验证后,连接将传递到 VDA 以启动会话。在身份验证期间,VDA 会向 VDA 提供 FAS 票证,以便针对 FAS 服务器进行验证。VDA 凭据插件联系从 GPO 列表中选择的 FAS 服务器。FAS 服务器验证令牌并颁发有效的用户证书。成功验证用户证书后,将实现单点登录,并启动 VDA 会话。

使用案例 #2

A 公司最近收购了 B 公司。因此,A 公司希望授予公司 B 员工对其现有 Citrix Virtual Apps and Desktops 环境的访问权限。为简化两个公司域之间的身份验证,管理员通过实施外部 SAML 身份提供程序解决方案(如 Azure Active Directory)在域之间建立了联合SAML 身份验证允许用户无缝登录到另一家公司的 AD 环境以访问资源。在这两家公司中,用户都可以使用特定于公司的凭据,其中在公司 A 使用影子帐户并映射影子帐户来访问资源。

Federated-Authentication-Service-Image-12

要登录 Citrix VDA,每个用户都必须在 VDA 信任的域中拥有 Active Directory 帐户。对于联合用户,我们需要为 Company-A 域中的每个联合身份用户创建影子帐户。这些影子帐户需要与 SAML IdP 提供的 SAML 属性(通常是电子邮件地址)匹配的 UPN。如果 SAML IdP 提供的电子邮件地址与公司域的 UPN 后缀不匹配,我们需要添加与 Active Directory 域和信任管理单元上 SAML IdP 提供的电子邮件后缀匹配的 UPN 后缀。

  1. Compy-B 用户访问网关 URL,然后用户将被重定向到 SAML 身份提供程序。在这种情况下,它是 Azure Active Directory。A 公司和 B 公司域都同步到单个 Azure AD 租户。

  2. 用户输入 Company B 凭据以对 AAD 进行身份验证,然后使用 SAML 令牌重定向回网关。

  3. 网关解析 SAML 令牌,然后使用此 SAML 令牌使用影子帐户验证用户的身份。然后它将传递给 StoreFront 进行资源枚举。

  4. 现在,StoreFront 的登录数据提供程序服务将联系联合身份验证服务,并要求为经过身份验证的影子帐户用户生成证书。FAS 连接到 Active Directory 以验证用户(影子帐户)。然后它会与 Active Directory 证书服务 (AD CS) 对话并向用户提交证书请求。证书颁发机构为经过身份验证的用户颁发有效证书。

  5. StoreFront 创建了资源页面,并将其发回给用户。

  6. 当用户在其工作区应用程序中启动虚拟应用程序或桌面时,请求将发送到 StoreFront 以获取 ICA 文件。StoreFront 验证请求并联系 Delivery Controller,询问此会话的 VDA 详细信息。Delivery Controller 验证请求并与 StoreFront 共享 VDA 和 Secure Ticket Authority (STA) 详细信息以生成 ICA 文件。除此之外,StoreFront 服务器还从 GPO 列表中选择一个 FAS 服务器,然后联系选定的 FAS 服务器以获取授予对用户证书的访问权限的票证,该证书现在存储在 FAS 服务器上。StoreFront 会将此 FAS 令牌附加到 ICA 文件中,然后发送回工作区应用程序。

  7. Workspace 应用程序通过提供 STA 票证来验证和授予通信,启动连接以启动与 Citrix Gateway 的会话。验证后,连接将传递到 VDA 以启动会话。在身份验证期间,VDA 会向 VDA 提供 FAS 票证,以便针对 FAS 服务器进行验证。VDA 凭据插件联系从 GPO 列表中选择的 FAS 服务器。FAS 服务器验证令牌并颁发有效的用户证书。成功验证用户证书后,将实现单点登录,并启动 VDA 会话。

使用案例 #3

现有企业 Citrix 客户希望迁移其现有的旧 Citrix 环境,作为技术更新和升级计划的一部分。迁移计划规定必须将 Citrix 环境的控制基础架构移动到 Citrix Cloud。为了部署用户工作负载,他们计划利用区域数据中心和 Azure 云提供的现有硬件,这有助于他们更好地管理用户和资源分配。此外,客户选择利用部署在每个区域数据中心的现有 Citrix Gateway 来实现最佳 HDX 连接。最后,对于身份验证,客户选择使用 Azure Active Directory,因为他们计划将域控制器迁移到 Azure Active Directory 域服务。

根据迁移计划,域管理员已安装并配置 AD 连接,以便将用户和组与 Azure Active Directory 同步,然后再与 Azure AD 域服务同步。客户购买了 Citrix Cloud 订阅。因此,控制基础架构组件由 Citrix 部署和管理。Citrix 管理员已将 Azure AD 配置为用户的身份验证方法,并通过在每个区域数据中心安装Cloud Connector来创建资源位置。

要利用安装在每个区域的现有 Citrix Gateway,管理员在 Citrix Cloud 上配置了“网关”选项,指向本地网关,这有助于通过本地网关启动用户的 HDX 连接。管理员在各自数据中心的现有硬件上部署了所需的用户工作负载,而 VDA 现在已注册到 Citrix Cloud 控制器。域管理员已经创建了区域范围的 AD 安全组,用于向 Citrix 资源进行用户置备。Citrix 管理员使用特定于区域的 AD 安全组启用了对 Citrix Cloud 门户上库页面上的资源的访问,这允许用户从同一区域访问其已发布的桌面和应用程序。

为了在使用 Azure AD 对 Citrix Workspace 进行身份验证时实现 VDA 的单点登录,客户决定使用 Citrix FAS 解决方案。Citrix 管理员已安装所需数量的 FAS 服务器,并将其配置为与 Citrix Cloud 中每个资源位置上的 Citrix Cloud FAS 服务进行通信。包含与相应区域的 FAS 服务器列表的组策略在 OU 级别链接;因此 VDA 从同一数据中心获取 FAS 服务器列表。

Federated-Authentication-Service-Image-13

现在,让我们回顾用户的会话启动工作流程:

  1. 当用户开始使用 Workspace URL 访问环境时,用户将被重定向到基于 Azure 的登录页面。用户在 Azure 单点登录页面上输入有效的 Azure 凭据。Azure 会对用户进行身份验证并将用户重定向回 Citrix Workspace。

  2. Citrix Workspace 与云控制器连接,枚举分配给用户的资源并将其呈现给用户。

  3. 用户在其 Workspace 中启动虚拟应用程序或桌面,然后发送请求以获取 ICA 文件。Cloud Controller 从为此用户映射资源的资源位置中选择可用的 VDA。Citrix Cloud 选择同一资源位置中的 FAS 服务器以获取授予 VDA 访问权限的票证。FAS 服务器正在向证书颁发机构请求用户证书,该证书现存储在 FAS 服务器上。Citrix Workspace 将此 FAS 令牌和 Cloud Connector 作为 STA 附加到 ICA 文件中,然后发送回用户系统。

  4. Workspace 应用程序解析 ICA 文件并为与 VDA 的 HDX 连接建立到本地网关的连接。

  5. Citrix Gateway 使用带有 Cloud Connector 的 STA 票证验证连接,并将连接传递到 VDA。

  6. 为了对用户进行身份验证,VDA 将从 GPO 列表中连接到 FAS 服务器。VDA 凭据插件联系 FAS 服务器并验证令牌。现在,FAS 服务器向 VDA 提供有效的用户证书。

  7. 成功验证用户证书后,将实现单点登录,并为用户启动 VDA 会话。

使用案例 #4

Citrix 的一位新客户希望部署 Citrix Virtual Apps 环境,以便能够访问未通过 Internet 公开的内部资源,例如 Intranet 门户和 Exchange 邮箱。为确保环境的高可用性,客户选择在主动/主动设计中将环境部署在两个位置。关键服务器在每个位置都是冗余的,以避免组件级别的故障。客户希望将 Microsoft 365 用于多因素身份验证,将 Citrix 环境的条件访问用于身份验证。客户的主要目标是向可以从任何数据中心访问虚拟应用程序的用户提供访问权限。

根据设计,客户已在每个位置部署了专用的 Virtual Apps and Desktops 站点,包括 3 个 StoreFront 服务器、3 个 Delivery Controller、Always-On SQL 服务器、3 个 PVS 服务器、许可证和 Director 服务器。每个位置都有一对 Citrix ADC,用于 GSLB、网关和负载均衡器配置。由于客户想要使用 Azure AD 身份验证,因此需要在每个位置部署一对 Citrix FAS 服务器。

环境是根据设计和客户要求进行配置的。

  1. 已在站点之间配置了全局服务器负载平衡 (GSLB),以便平衡负载并将用户路由到可用站点。

  2. StoreFront 服务器使用 Citrix ADC 网关进行负载平衡。

  3. StoreFront 服务器被配置为与两个位置的 Delivery Controller 进行通信;因此,用户可以访问数据中心 1 或 2 中的资源。

  4. 建议将 StoreFront 服务器的 GPO 配置为仅指向本地数据中心中的 FAS 服务器,以优化证书请求过程。

在此客户环境中,StoreFront 枚举来自两个数据中心的资源,需要将 VDA 配置为能够了解来自两个数据中心的所有 FAS 服务器。VDA 可以从收到 StoreFront 请求的 FAS 服务器中检索证书(该服务器可能位于其他数据中心)。StoreFront 服务器只能与同一数据中心中的两台 FAS 服务器进行通信。列出 FAS 服务器的 GPO 策略将使用空白来确保 StoreFront 服务器获取右侧索引中的 FAS 服务器列表,如下图所示。

Federated-Authentication-Service-Image-14

配置此项时,必须考虑 GPO 的这些“索引”对齐方式。StoreFront 和 VDA 上的 FAS 服务器列表必须保持一致,就像 Delivery Controller 列表一样,VDA 不接受来自 Delivery Controller 的启动请求,但它不知道。

使用 Citrix FAS,VDA 可以从列出的 FAS 服务器中检索证书。另一个考虑因素是,StoreFront 和 VDA 注册表中 FAS 服务器的顺序必须匹配,因为 FAS 服务器会根据它们在注册表中的列出顺序分配索引号。有时,需要在应用于 StoreFront 服务器组的注册表/策略中留空条目,以确保索引在 StoreFront 和 VDA 之间匹配。

Federated-Authentication-Service-Image-15

现在,让我们回顾用户的会话启动工作流程:

  1. 当用户开始访问环境时,用户请求会根据 GSLB ADNS 登录到数据中心-1 或 Datacenter-2。

  2. 网关将用户重定向到基于 Azure 的登录页面。用户在 Azure 单点登录页面上输入有效的 Azure 凭据。Azure 对用户进行身份验证并将用户重定向回网关。

  3. Citrix Gateway 与 StoreFront 服务器连接,枚举分配给用户的资源并将其呈现给用户。

  4. 用户启动虚拟应用程序,然后发送请求以获取 ICA 文件。StoreFront 与 Delivery Controller 连接,它从用户映射以访问资源的交付组中选择可用 VDA。StoreFront 通过 GPO 选择同一位置的 FAS 服务器以获取授予 VDA 访问权限的票证。FAS 服务器正在向证书颁发机构请求用户证书,该证书现存储在 FAS 服务器上。StoreFront 将此 FAS 令牌和 Delivery Controller 作为 STA 附加到 ICA 文件中,然后发送回用户系统。

  5. 工作区应用程序解析 ICA 文件并建立与本地网关的连接,以便 HDX 连接到 VDA。

  6. Citrix Gateway 使用 STA 票证与 Delivery Controller 验证连接,并将连接传递到 VDA。

  7. 为了对用户进行身份验证,VDA 将从 GPO 列表中连接到 FAS 服务器。VDA 凭据插件联系 FAS 服务器并验证令牌。现在,FAS 服务器向 VDA 提供有效的用户证书。成功验证用户证书后,将实现单点登录,并为用户启动 VDA 会话。

总结

Citrix 联合身份验证服务可帮助客户希望消除旧密码凭据方法并转向 SAML 等现代身份验证方法的所有部署。最后一点,Citrix FAS 是一项至关重要的服务。因此,在部署之前,这是公司安全团队批准的东西。审查并实施 FAS 服务所需的安全控制措施。

来源

此参考体系结构的目标是帮助您规划自己的实施。为了简化这项工作,我们想为您提供源图,您可以在自己的详细设计和实施指南中进行调整: 源图

引用

Citrix FAS 安装和配置

Citrix FAS 可扩展性和 HA 文档

联合身份验证服务高可用性和扩展性-CTX225721

高级 FAS 配置

域控制器验证证书和模板

多林选择性身份验证

适用于 Citrix FAS 的 PowerShell Cmdlet

Citrix FAS 的防火墙规则

用户规则配置

预生成用户证书

登录证据

将 Azure Active Directory 与 Citrix Cloud 连接

部署 FAS 证书模板

参考体系结构:联合身份验证服务