安全和网络配置
联合身份验证服务 (FAS) 与 Microsoft Active Directory 和 Microsoft 证书颁发机构紧密集成。请确保系统得到适当管理和保护,并像对待域控制器或其他关键基础设施一样制定安全策略。
本文档概述了部署 FAS 时需要考虑的安全问题。它还概述了可能有助于保护您的基础架构的可用功能。
网络体系结构和安全性
下图显示了 FAS 部署中使用的主要组件和安全边界。
FAS 服务器与证书颁发机构和域控制器一起,是安全关键型基础架构的一部分。在联合环境中,Citrix Gateway 和 Citrix StoreFront 是执行用户身份验证的组件。引入 FAS 不会影响其他 Citrix Virtual Apps and Desktops™ 组件。

| 服务器 | 连接 | |————————–|——————————————————|
-
联合身份验证服务 [入站] 来自 StoreFront™ 和 VDA 的带 Kerberos 安全的 HTTP,[出站] 到 Microsoft 证书颁发机构的 DCOM -
Citrix Gateway [入站] 来自客户端计算机的 HTTPS,[入站/出站] 到/来自 StoreFront 服务器的 HTTPS,[出站] 到 VDA 的 HDX -
StoreFront [入站] 来自 Citrix Gateway 的 HTTPS,[出站] 到 Delivery Controller™ 的 HTTPS,[出站] 到 FAS 的带 Kerberos 安全的 HTTP -
Delivery Controller [入站] 来自 StoreFront 服务器的 HTTPS,[入站/出站] 来自 VDA 的带 Kerberos 安全的 HTTP VDA [入站/出站] 来自 Delivery Controller 的带 Kerberos 安全的 HTTP,[入站] 来自 Citrix Gateway 的 HDX,[出站] 到 FAS 的带 Kerberos 安全的 HTTP Microsoft 证书颁发机构 [入站] 来自 FAS 的 DCOM -
StoreFront 与 FAS 之间的通信
-
启动 VDA 时,StoreFront 服务器会联系 FAS 服务器以获取一次性票证,Citrix Virtual Delivery Agent (VDA) 需要此票证才能登录用户。
-
StoreFront 使用基于 HTTP 的 SOAP 连接到 FAS。默认情况下,它使用端口 80。
-
它使用相互 Kerberos 进行身份验证,其中包含 FAS 服务器的 Kerberos HOST/fqdn 身份和 StoreFront 服务器的 Kerberos 计算机帐户身份。
- 数据通过使用消息级安全性进行加密。无需额外配置即可启用加密。
VDA 与 FAS 之间的通信
- 当 HDX™ 会话连接到 VDA 时,VDA 会联系 FAS 服务器以请求证书。
- VDA 使用基于 HTTP 的 SOAP 连接到 FAS 服务器。默认情况下,它使用端口 80。
- 它使用相互 Kerberos 进行身份验证,其中包含 FAS 服务器的 Kerberos HOST/fqdn 身份和 VDA 的 Kerberos 计算机身份。此外,VDA 必须提供“凭据句柄”才能访问证书和私钥。
- 数据通过使用消息级安全性进行加密。无需额外配置即可启用加密。
FAS 与 Microsoft 证书颁发机构之间的通信
- 当用户启动 VDA 时,如果 FAS 服务器尚未拥有该用户的证书,则它会与证书颁发机构通信以请求证书。证书颁发机构要求 FAS 服务器提供由受信任的注册代理证书签名的 CMC 数据包。
-
FAS 服务器使用 DCOM 与 Microsoft 证书颁发机构通信。有关所需端口的信息,请参阅 Microsoft 文档。
- 它使用 Kerberos 进行身份验证。
Citrix 联合身份验证服务与 Citrix Cloud™ 之间的连接
如果您要将 FAS 连接到 Citrix Cloud,则您的 FAS 服务器必须能够通过 HTTPS 端口 443 访问以下地址。
Citrix Cloud:
- 在用户帐户下运行的 FAS 管理控制台
- `*.cloud.com`
- `*.citrixworkspacesapi.net`
- 如果您的环境中使用了第三方身份提供程序,则需要其地址
- 在网络服务帐户下运行的 FAS 服务:
*.citrixworkspacesapi.net*.citrixnetworkapi.net
Citrix Cloud Japan:
- 在用户帐户下运行的 FAS 管理控制台
*.citrixcloud.jp*.citrixworkspacesapi.jp- 如果您的环境中使用了第三方身份提供程序,则需要其地址
- 在网络服务帐户下运行的 FAS 服务:
*.citrixworkspacesapi.jp*.citrixnetworkapi.jp
如果您的环境包含代理服务器,请使用 FAS 管理控制台的地址配置用户代理。此外,请确保使用 netsh 或类似工具配置网络服务帐户的地址。
更多信息
有关保护其他 Citrix 组件之间通信的信息,请参阅以下文章:
安全注意事项
FAS 拥有一个注册机构证书,允许它为您的域用户自主颁发证书。这有助于制定和实施安全策略,以保护 FAS 服务器并限制其权限。
委派的注册代理
FAS 通过充当注册代理来颁发用户证书。Microsoft 证书颁发机构允许您限制注册代理、证书模板以及注册代理可以为其颁发证书的用户。

您可以使用给定的对话框来确保:
- “注册代理”列表仅包含 FAS 服务器。
- “证书模板”列表仅包含 FAS 模板。
- “权限”列表包含允许使用 FAS 的用户。例如,建议不要向 Administrators 或 Protected Users 组颁发证书。
访问控制列表配置
如配置规则部分所述,您必须配置 StoreFront 服务器列表。颁发证书时,这些 StoreFront 服务器会向 FAS 断言用户身份。同样,您可以限制向哪些用户颁发证书以及他们可以向哪些 VDA 计算机进行身份验证。此功能是对您配置的任何标准 Active Directory 或证书颁发机构安全功能的补充。
-
防火墙设置
- FAS 服务器必须接受来自 StoreFront 和 VDA 的传入连接,除非另行配置,否则使用端口 80。有关网络通信的详细信息,请参阅网络体系结构和安全性。
FAS 安装程序可以选择配置 Windows 防火墙。有关详细信息,请参阅 FAS 安装程序选项。
更改 FAS 服务器端口
FAS 服务器默认使用端口 80。您可以自定义端口:
注意:
您可以将 FAS 服务器端口更改为端口 443,但这不会更改 FAS 使用的协议。即使在端口 443 上配置,FAS 也不使用 HTTPS。
-
在 FAS 服务器上运行以下命令行:
"C:\Program Files\Citrix\Federated Authentication Service\Citrix.Authentication.FederatedAuthenticationService.exe" /SVCPORT [port] /CONFIGUREFIREWALL <!--NeedCopy-->将
[port]替换为您希望使用的端口号。/CONFIGUREFIREWALL开关会更新 Windows 防火墙,以允许在指定端口上建立传入连接。
-
- 重新启动 FAS 服务。
-
在 FAS 组策略对象中,更新 FAS 服务器列表以包含端口(例如
fas.example.com:[port])。 -
将更改传播到 FAS 服务器、StoreFront 和 VDA(例如,使用
gpupdate /force)。
事件日志监控
FAS 和 VDA 会将信息写入 Windows 事件日志。此日志可用于监控和审计信息。事件日志部分列出了可以生成的事件日志条目。
硬件安全模块
所有私钥(包括 FAS 颁发的用户证书密钥)都由 Network Service 帐户存储为不可导出私钥。如果您的安全策略要求,FAS 支持使用加密硬件安全模块。
可以使用 PowerShell 命令进行低级别加密配置。FAS 授权证书私钥和用户证书密钥可以使用不同的设置。有关详细信息,请参阅私钥保护。
管理职责
环境管理可分为以下几组:
| 名称 | 职责 |
|---|---|
| 企业管理员 | 在林中安装并保护证书模板 |
| 域管理员 | 配置组策略设置 |
| 证书颁发机构管理员 | 配置证书颁发机构 |
| FAS 管理员 | 安装并配置 FAS 服务器 |
| StoreFront/Citrix Gateway 管理员 | 配置用户身份验证 |
| Citrix Virtual Desktops™ 管理员 | 配置 VDA 和控制器 |
每个管理员控制整体安全模型的不同方面,从而实现纵深防御方法来保护系统。
组策略设置
受信任的 FAS 计算机通过组策略配置的“索引号 -> FQDN”查找表进行标识。当联系 FAS 服务器时,客户端会验证 FAS 服务器的 HOST\<fqdn\> Kerberos 身份。所有访问 FAS 服务器的服务器都必须具有相同索引的相同 FQDN 配置;否则,StoreFront 和 VDA 可能会联系不同的 FAS 服务器。
Citrix 建议对环境中的所有计算机应用单个策略,以避免配置错误。修改 FAS 服务器列表时务必小心,尤其是在删除或重新排序条目时。
此 GPO 的控制必须仅限于安装和停用 FAS 服务器的 FAS 管理员(和/或域管理员)。请注意避免在停用 FAS 服务器后不久重用计算机 FQDN 名称。
证书模板
如果您不想使用 FAS 随附的 Citrix_SmartcardLogon 证书模板,可以修改其副本。支持以下修改。
重命名证书模板
如果您想重命名 Citrix_SmartcardLogon 以匹配您的组织模板命名标准,则必须:
- 创建证书模板的副本并将其重命名以匹配您的组织模板命名标准。
- 使用 FAS PowerShell 命令管理 FAS,而不是管理用户界面。(管理用户界面仅适用于 Citrix 默认模板名称。)
- 使用 Microsoft MMC 证书模板管理单元或 Publish-FasMsTemplate 命令发布您的模板,并且
- 使用 New-FasCertificateDefinition 命令配置 FAS,并指定您的模板名称。
修改“常规”属性
默认情况下,用户证书的有效期为七天。您可以在证书模板中修改有效期。
请勿修改“续订期”。FAS 会忽略证书模板中的此设置。FAS 会在证书有效期过半时自动续订证书。
修改“请求处理”属性
请勿修改这些属性。FAS 会忽略证书模板中的这些设置。FAS 始终取消选择允许导出私钥并取消选择使用相同密钥续订。
有关 FAS 提供的等效设置,请参阅私钥保护。
修改“密钥证明”属性
请勿修改这些属性。FAS 不支持密钥证明。
修改“取代的模板”属性
请勿修改这些属性。FAS 不支持取代模板。
修改“扩展”属性
您可以修改这些设置以符合您的组织策略。
注意:
不当的“扩展”设置可能会导致安全问题,或导致证书无法使用。
修改“安全”属性
Citrix 建议您修改这些设置,以仅允许 FAS 服务器的计算机帐户拥有读取和注册权限。FAS 服务不需要任何其他权限。但是,与其他证书模板一样,您可以:
- 允许管理员读取或写入模板
- 允许经过身份验证的用户读取模板

修改“使用者名称”属性
Citrix 建议您不要修改这些属性。
模板已选择“从此 Active Directory 信息生成”,这会导致证书颁发机构在证书扩展中包含用户的 SID,从而提供与用户 Active Directory 帐户的强映射。
修改“服务器”属性
尽管 Citrix 不建议这样做,但如果需要,您可以修改这些设置以符合您的组织策略。
修改“颁发要求”属性
请勿修改这些设置。这些设置必须如下所示:

修改“兼容性”属性
您可以修改这些设置。该设置必须至少为 Windows Server 2003 CA(架构版本 2)。但是,FAS 仅支持 Windows Server 2008 及更高版本的 CA。此外,如上所述,FAS 会忽略通过选择 Windows Server 2008 CA(架构版本 3)或 Windows Server 2012 CA(架构版本 4)可用的其他设置。
证书颁发机构管理
证书颁发机构管理员负责配置证书颁发机构服务器及其使用的颁发证书私钥。
发布模板
要使证书颁发机构根据企业管理员提供的模板颁发证书,证书颁发机构管理员必须选择发布该模板。
一个简单的安全实践是在安装 FAS 服务器时仅发布注册机构证书模板,或者坚持完全脱机颁发过程。在这两种情况下,证书颁发机构管理员都必须完全控制授权注册机构证书请求,并制定授权 FAS 服务器的策略。
防火墙设置
证书颁发机构管理员可以控制证书颁发机构的网络防火墙设置,从而控制传入连接。证书颁发机构管理员可以配置 DCOM TCP 和防火墙规则,以便只有 FAS 服务器才能请求证书。
限制注册
默认情况下,任何注册机构证书的持有者都可以使用允许访问的任何证书模板向任何用户颁发证书。必须使用“限制注册代理”证书颁发机构属性将此证书颁发限制为一组非特权用户。

策略模块和审计
对于高级部署,可以使用自定义安全模块来跟踪和否决证书颁发。
FAS 管理
FAS 具有多项安全功能。
通过 ACL 限制 StoreFront、用户和 VDA
FAS 安全模型的核心是控制哪些 Kerberos 帐户可以访问功能:
| 访问向量 | 描述 |
|---|---|
| StoreFront [IdP] | 这些 Kerberos 帐户受信任,可声明用户已正确通过身份验证。如果其中一个帐户遭到入侵,则可以为 FAS 配置允许的用户创建和使用证书。 |
| VDA [信赖方] | 这些是允许访问证书和私钥的计算机。还需要 IdP 检索的凭据句柄,因此此组中遭到入侵的 VDA 帐户对攻击系统的范围有限。 |
| 用户 | 此选项控制 IdP 可以断言哪些用户。请注意,这与证书颁发机构的“受限注册代理”配置选项存在重叠。通常,建议在此列表中仅包含非特权帐户。这可以防止受损的 StoreFront 帐户将权限提升到更高的管理级别。特别是,此 ACL 不得允许域管理员帐户。 |
配置规则
如果多个独立的 Citrix Virtual Apps™ 或 Citrix Virtual Desktops 部署使用相同的 FAS 服务器基础结构,则规则会很有用。每个规则都有一组单独的配置选项;特别是,Kerberos 访问控制列表 (ACL) 可以独立配置。
配置证书颁发机构和模板
可以为不同的访问权限配置不同的证书模板和 CA。高级配置可以选择使用功能较弱或较强的证书,具体取决于环境。例如,被识别为“外部”的用户可以拥有比“内部”用户权限更少的证书。
会话内和身份验证证书
FAS 管理员可以控制用于身份验证的证书是否可在用户会话中使用。 例如,用户只能在会话中拥有“签名”证书,而功能更强大的“登录”证书仅在登录时使用。
私钥保护和密钥长度
FAS 管理员可以将 FAS 配置为将私钥存储在硬件安全模块 (HSM) 或可信平台模块 (TPM) 中。Citrix 建议至少通过将 FAS 授权证书私钥存储在 TPM 中来保护它。
同样,用户证书私钥可以存储在 TPM 或 HSM 中。如果使用 RSA,所有密钥都必须生成为不可导出,并且长度至少为 2048 位。
注意:
尽管 FAS 可以在 TPM 或 HSM 中生成和存储用户证书密钥,但对于大型部署,硬件可能太慢或受大小限制。
有关更多详细信息,请参阅 私钥保护。
事件日志
FAS 服务器提供详细的配置和运行时 事件日志,可用于审计和入侵检测。
管理访问和管理工具
FAS 包括远程管理功能(相互身份验证的 Kerberos)和工具。“本地管理员组”的成员对 FAS 配置拥有完全控制权。必须妥善维护 FAS 配置。
Citrix Virtual Apps、Citrix Virtual Desktops 和 VDA 管理员
FAS 的使用不会改变 Delivery Controller 和 VDA 管理员的安全模型,因为 FAS“凭据句柄”只是替换了“Active Directory 密码”。Controller 和 VDA 管理组必须仅包含受信任的用户。必须维护审计和事件日志。
常规 Windows 服务器安全性
所有服务器都必须完全打补丁,并提供标准防火墙和防病毒软件。安全关键型基础结构服务器必须保存在物理安全的位置,并注意磁盘加密和虚拟机维护选项。
审计和事件日志必须安全地存储在远程计算机上。
RDP 访问必须仅限于授权管理员。Citrix 建议对用户帐户使用智能卡登录,特别是对于证书颁发机构和域管理员帐户。
联邦信息处理标准 (FIPS) 支持
FAS 在启用 FIPS 的 Windows 计算机上使用 FIPS 验证的加密算法。如果您将 FAS 配置为使用 TPM 或 HSM 进行密钥存储,请咨询您的硬件供应商以获取 FIPS 合规性信息。