高级概念

Citrix 联合身份验证服务登录证据概述

简介

联合身份验证服务 (FAS) 是与 Active Directory 证书颁发机构 (CA) 集成的 Citrix 组件,允许用户在 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 通常是第三方网站,如 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 提供的证据来加强信任链,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 时,必须配置回调 URL,因为登录证据是通过回调传输的:

回调 URL

Citrix 建议您将 登录类型 配置为“智能卡”,以帮助本机客户端执行 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 管理控制台为 Gateway 服务器启用“存储 SAML 响应”选项,请参阅 SAML 身份验证

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

注意:

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

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

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 中或 https://developer-docs.citrix.com/ 中提供的文档“自定义联合登录服务示例 1811.pdf”。

相关信息

Citrix 联合身份验证服务登录证据概述