FAS 登录证据

简介

联合身份验证服务 (FAS) 是一个 Citrix 组件,与 Active Directory 证书颁发机构 (CA) 相集成,允许用户在 Citrix 环境中无缝执行身份验证。有关 FAS 体系结构和部署的信息,请参阅联合身份验证服务文档

您可以部署联合身份验证服务 (FAS),以允许用户单点登录到 VDA(或已发布的应用程序),而无需密码或智能卡。FAS 登录证据功能提供由 Citrix Gateway 和 StoreFront 传递给 FAS 的登录证据。FAS 可以验证证据,以确保其是由受信任的身份提供程序 (IdP) 颁发的。

本文介绍了如何配置 FAS 登录证据功能。

概述

FAS 信任

FAS 基础结构涉及 Citrix Gateway (NSG)、StoreFront (SF) 与 FAS 之间的“信任链”;每个箭头从信任组件指向可信组件:

fas-logon-evidence-overview

每个组件之间值得信赖的关键数据是访问系统的用户的用户主体名称 (UPN)。UPN 流经链路(方向与箭头相反)。UPN 在流经系统时也可以转化为不同的 UPN,但这与本主题没有直接关系。

身份提供程序 (IdP) 是用户进行身份验证的地方。IdP 通常是第三方 Web 站点,例如 Okta 或 Azure。用户通过提供一组证书(例如密码或更复杂的内容)在 IdP 进行身份验证。由于组件之间存在信任链,因此,链上的组件接受 UPN 是真实的。

信任是通过以下方式建立的,在上图中标记为 1、2、3:

(1) Citrix Gateway 或 StoreFront 使用涉及已签名声明的协议(例如,陈述用户 UPN 的声明)信任 IdP。信任方可以验证 IdP 提出的声明,因为它配置了用于检查签名是否有效的证书。有两种主要协议用于验证:SAML(安全声明标记语言)和 OpenID Connect。登录证据功能目前仅支持 SAML。

(2) 这种信任是通过使用可信的 Citrix Gateway 的详细信息配置 StoreFront 来建立的。这些组件之间的协议“CitrixAgBasic”允许 StoreFront 确认它正在被可信的 Citrix Gateway 调用。

(3) 这种信任是使用 Kerberos 建立的。FAS 配置了可信 StoreFront 服务器列表。Kerberos 用于检查调用 StoreFront 服务器的身份是否在此列表中。

安全性

安全身份验证依赖于正确建立的信任链。通过验证 IdP 提供的证据(安全身份验证的信任根源),可以强化信任链。这很重要,因为通过信任链提供给 FAS 的用户凭证包括用户名 (UPN),但不包括 FAS 本身可以验证的密钥(例如密码)。因此,密码的泄露仅限于 IdP。包括 FAS 在内的大多数联合身份验证系统都以这种方式运行。

登录证据

FAS 登录证据功能在 FAS 部署中提供了额外的安全保障。它允许您定义允许或拒绝访问 FAS 的规则。

登录证据(或只是“证据”)是 IdP 在用户进行身份验证时创建的一条数据。这些数据与 UPN 一起在整个系统中传输。在 VDA 启动时,FAS 可以在允许启动之前检查证据是否有效。

仅支持支持 SAML 的 IdP。证据是 SAML 响应,它是一个 XML 文档,其中包含由 IdP 签署的一组声明。(IdP 是身份验证的信任根源)。

FAS 插件

FAS 没有任何内置功能来检查登录证据是否有效。相反,您需要使用 FAS 断言 SDK 编写自己的 FAS 插件。您的插件负责检查提供的 UPN 和证据(SAML 响应)。

配置登录证据收集

第 1 步 - 创建部署

请照常使用 Citrix Gateway、StoreFront 和 FAS 创建部署。配置 Citrix Gateway 或 StoreFront 以对您的 IdP 使用 SAML 身份验证

重要:

如果您使用的是 Citrix Gateway,则在使用 Citrix Gateway 的详细信息配置 StoreFront 时,必须配置 Callback URL(回调 URL),因为登录证据是通过回调传输的:

回调 URL

Citrix 建议您将 Logon type(登录类型)配置为“Smart card”(智能卡),这有助于本地客户端执行 SAML 身份验证。

检查您的部署是否正常运行。换句话说,请检查您是否可以登录并启动 VDA 会话,而无需在 VDA 提示输入凭据。

步骤 2 - 安装示例 FAS 断言插件

FAS 断言 SDK 包含一个示例插件,您可以将其用作自己的插件的基础。

注意:

Citrix 强烈建议您首先安装示例插件,不要进行任何更改。

有关安装插件的说明,请参阅 FAS 断言 SDK 提供的 Readme.txt 文件。

步骤 3 - 检查 FAS 断言插件是否正常运行

安装插件后,额外的事件将写入 FAS 服务器事件日志的 Windows 日志/应用程序部分。有关日志记录和跟踪的说明,请参阅“FAS 断言 SDK”。

步骤 4 - 在 Citrix Gateway 上启用证据收集

如果您使用 Citrix Gateway 进行身份验证,则必须启用证据收集功能,以便将证据从 Citrix Gateway 传输到 StoreFront。为此,请使用 Citrix ADC 管理控制台为网关服务器启用“Store SAML Response”(存储 SAML 响应)选项,请参阅 SAML 身份验证

步骤 5 - 在 StoreFront 上启用证据收集

注意:

如果启用了登录证据,则必须在 FAS 服务器上部署 FAS 断言插件模块。

默认情况下,StoreFront 不会向 FAS 发送证据(即使配置了 SAML 身份验证)。要在 StoreFront 中启用登录证据,请使用以下 PowerShell 为与名为 Store 的存储关联的身份验证服务启用登录证据。

Get-Module "Citrix.StoreFront.* –ListAvailable | Import-Module

$StoreName = "Store" $StoreVirtualPath = "/Citrix/" + $StoreName $store = Get-STFStoreService –VirtualPath $StoreVirtualPath $auth = Get-STFAuthenticationService –StoreService $store

$auth.AuthenticationOptions.CollectFasEvidence = $true

$auth.Save()
<!--NeedCopy-->

步骤 6 - 修改示例 FAS 断言插件

示例插件中的框架代码接受任何证据。请更新示例中的代码以检查提供的登录证据(SAML 响应)是否有效。

您有责任确保所提供的证据得到核对。请注意:

  • 检查 SAML 声明是否具有加密有效的签名

  • 检查 SAML 声明是否使用 IdP 的证书签名

  • 检查 SAML 声明中的 UPN 是否与提交的 UPN 相对应

  • 检查声明是否是在可接受的时间段内提出的(“可接受”的定义由您决定)

StoreFront 身份验证 SDK

可以使用 StoreFront 身份验证 SDK 对证据数据执行高级自定义。有关详细信息,请参阅 SDK 中提供的文档“Custom Federated Logon Service Sample 1811.pdf”,或在 https://developer-docs.citrix.com/ 上查找。

相关信息

FAS 登录证据