用于网关身份验证的 nFactor
nFactor 身份验证为身份验证提供了一系列全新的可能性。使用 nFactor 的管理员在为虚拟服务器配置身份验证因素时可以灵活地进行身份验证、授权和审核 (Citrix ADC AAA)。
两个保单银行或两个因素不再限制管理员。可以扩大保单银行的数量以适应不同的需求。根据以前的因素,nFactor 确定了一种身份验证方法。使用 nFactor 可以实现动态登录表单和失败时的操作。
注意:
Citrix ADC 标准版不支持nFactor。它支持 Citrix ADC 企业版和 Citrix ADC 白金版。
用例
nFactor 身份验证可根据用户配置文件启用动态身份验证流程。有时,这些流程可能很简单,便于用户直观。在其他情况下,它们可以与保护活动目录或其他身份验证服务器结合使用。以下是 Gateway 的一些特定要求:
-
动态选择用户名和密码。传统上,Citrix 客户端(包括浏览器和 Receiver)使用活动目录 (AD) 密码作为第一个密码字段。第二个密码保留给一次性密码 (OTP)。但是,为了保护 AD 服务器,必须首先验证 OTP。nFactor 可以在不需要客户端修改的情况下完成此操作。
-
多租户身份验证端点。一些组织为证书用户和非证书用户使用不同的网关服务器。当用户使用自己的设备登录时,Citrix ADC 设备上用户的访问级别会根据所使用的设备而有所不同。网关可以满足不同的身份验证需求。
-
基于组成员身份的身份验证。一些组织从 AD 服务器获取用户属性以确定身份验证要求。个人用户的身份验证要求可能有所不同。
-
身份验证辅助因素。有时,不同的身份验证策略对用于对不同的用户组进行身份验证。提供配对策略可提高身份验证的效从属策略可以从一个流程中创建。因此,独立的策略集成为其自身的流程,可以提高效率和降低复杂性。
身份验证响应处理
Citrix Gateway 回调寄存器处理身份验证响应。AAAD(身份验证守护程序)响应和成功/失败/错误/对话代码将提供给回调句柄。成功/失败/错误/对话代码指示 Gateway 采取适当的措施。
客户端支持
下表详细介绍了配置详细信息。
客户端 | nFactor 支持 | 身份验证策略绑定点 | EPA |
---|---|---|---|
浏览器 | 是 | 身份验证 | 是 |
Citrix Workspace 应用程序 | 是 | VPN | 是 |
网关插件 | 是 | VPN | 是 |
注意:
-
Citrix Gateway 插件支持 12.1 版本 49.37 中的 nFactor 身份验证。
-
Citrix Workspace 应用程序支持以下列出的版本中受支持的操作系统的 nFactor 身份验证。
- Windows 4.12
- Linux 13.10
- Mac 1808
- iOS 2007
- Android 1808
- HTML5:通过应用商店网络支持
- Chrome 浏览器:通过商店网络支持
命令行配置
Gateway 虚拟服务器需要一个名为属性的身份验证虚拟服务器。这是该模型所需的唯一配置。
add authnProfile <name-of-profile> -authnVsName <name-of-auth-vserver>
<!--NeedCopy-->
authnVsName 是身份验证虚拟服务器的名称。此虚拟服务器必须使用高级身份验证策略进行配置,并用于 nFactor 身份验证。
add vpn vserver <name> <serviceType> <IP> <PORT> -authnProfile <name-of-profile>
set vpn vserver <name> -authnProfile <name-of-profile>
<!--NeedCopy-->
其中 authnProfile 是以前创建的身份验证配置文件。
互操作挑战
大多数传统网关客户端和 RFWeb 客户端都是以网关发送的响应为模型的。例如,预计许多客户端对 /vpn/index.html 的响应为 302。此外,这些客户端依赖于各种网关 Cookie,例如 pwcount
、“NSC_CERT”等
终点分析 (EPA)
Citrix ADC 身份验证、授权和审核模块不支持 nFactor 中的 EPA。因此,Citrix Gateway 虚拟服务器执行 EPA。在 EPA 之后,登录凭据将使用前面提到的 API 发送到身份验证虚拟服务器。身份验证完成后,Gateway 将继续执行身份验证后过程并建立用户会话。
错误配置注意事项
Gateway 客户端只发送一次用户凭据。Gateway 通过登录请求从客户端获取一个或两个凭据。在旧模式下,最多有两个因素。获得的密码用于这些因素。但是,使用 nFactor,可以配置的因素数量实际上是无限的。从 Gateway 客户端获取的密码可重复用于配置因素(根据配置)。必须注意不要多次重复使用一次性密码(OTP)。同样,管理员必须确保在某个因素下重复使用的密码确实适用于该因素。
定义 Citrix 客户端
提供配置选项是为了帮助 Citrix ADC 确定浏览器客户端与粗客户端(例如 Receiver)。
为管理员提供了一个模式集 ns_vpn_client_useragent,用于为所有 Citrix 客户端配置模式。
同样,将“Citrix Receiver”字符串绑定到上面的内容 patset
以忽略用户代理中具有“Citrix Receiver”的所有 Citrix 客户端。
限制网关的 nFactor
如果存在以下条件,则不会发生用于网关身份验证的 nFactor。
-
Citrix Gateway 未设置 AuthnProfile。
-
高级身份验证策略不绑定到身份验证虚拟服务器,AuthnProfile 中提到了相同的身份验证虚拟服务器。
-
HTTP 请求中的用户代理字符串与在
patset ns_vpn_client_useragents
中配置的用户代理相匹配。
如果不满足这些条件,则使用绑定到 Gateway 的经典身份验证策略。
如果用户代理或其中的一部分绑定到前面提到的 patset
,则来自这些用户代理的请求不会参与 nFactor 流程。例如,以下命令限制所有浏览器的配置(假设所有浏览器的用户代理字符串中都包含“Mozilla”):
bind patset ns_vpn_client_useragents Mozilla
<!--NeedCopy-->
LoginSchema
LoginSchema 是登录表单的逻辑表示形式。XML 语言对其进行了定义。LoginSchema 的语法符合 Citrix 的通用表单协议规范。
LoginSchema 定义了产品的“视图”。管理员可以提供表单的自定义说明、辅助文本等。这包括表单本身的标签。客户可以提供成功或失败消息,描述在给定时刻呈现的表格。
需要 LoginSchema 和 nFactor 知识
预构建的 Login Schema 文件位于以下 Citrix ADC 位置 /nsConfig /loginSchema/。这些预先构建的 loginSchema 文件适合常见的使用案例,必要时可以进行修改以进行细微的变化。
此外,大多数自定义项很少的单因素用例不需要登录架构配置。
建议管理员查看 Citrix 产品文档,了解使 Citrix ADC 能够发现因素的其他配置选项。用户提交凭据后,管理员可以配置多个因素来灵活选择和处理身份验证因素。
在不使用 LoginSchema 的情况下配置双重身份验证
Citrix ADC 会根据配置自动确定双因素要求。用户提供这些凭据后,管理员就可以在虚拟服务器上配置第一组策略。对于每个策略,都可以有一个“NextFactor”配置为“直通”。“直通”意味着 Citrix ADC 设备必须使用现有凭据集处理登录,而无需交给用户。通过使用“直通”因素,管理员可以以编程方式驱动身份验证流程。建议管理员阅读 nFactor 规范或部署指南以了解更多详细信息。请参阅 https://docs.citrix.com/en-us/netscaler/12-1/aaa-tm/multi-factor-nfactor-authentication.html。
用户名密码表达式
要处理登录凭据,管理员必须配置 loginSchema。具有很少 loginSchema 自定义项的单因素或双因素用例不需要指定的 XML 定义。LoginSchema 具有其他属性,例如 userExpression 和 passwdExpression,这些属性可用于更改用户显示的用户名或密码。这些是高级策略表达式,也可用于覆盖用户输入。
nFactor 配置中的高级步骤
下图说明了 nFactor 配置中涉及的高级步骤。
GUI 配置
本节介绍以下主题:
-
创建虚拟服务器
-
创建身份验证虚拟服务器
-
创建验证 CERT 配置文件
-
创建身份验证策略
-
添加 LDAP 身份验证服务器
-
添加 LDAP 身份验证策略
-
添加 RADIUS 身份验证服务器
-
添加 RADIUS 身份验证策略
-
创建身份验证登录架构
-
创建策略标签
创建虚拟服务器
-
导航到 Citrix Gateway-> 虚拟服务器。
-
单击 添 加按钮以创建网关虚拟服务器。
-
输入以下信息。
参数名称 参数说明 输入虚拟服务器的名称。 Citrix Gateway 虚拟服务器的名称。必须以 ASCII 字母或下划线 (_) 字符开头,并且必须仅包含 ASCII 字母数字、下划线、哈希 (#)、句点 (.)、空格、冒号 (:)、at (@)、等于 (=) 和连字符 (-)。可以在创建虚拟服务器后进行更改。以下要求仅适用于 Citrix ADC CLI:如果名称包含一个或多个空格,请将名称用双引号或单引号括起来(例如,“我的服务器”或“我的服务器”)。 输入虚拟服务器的 IP 地址类型 从下拉菜单中选择 IP 地址或不可寻址选项。 输入虚拟服务器的 IP 地址。 互联网协议地址(IP 地址)是分配给加入使用 Internet 协议进行通信的计算机网络的每台设备的数字标签。 输入虚拟服务器的端口号。 输入端口号。 输入身份验证配置文件。 虚拟服务器上的验证配置文件实体。此实体可用于将身份验证转移到 Citrix ADC AAA 虚拟服务器以进行多重 (nFactor) 身份验证 输入 RDP 服务器配置文件。 与虚拟服务器关联的 RDP 服务器配置文件的名称。 输入最大用户数。 此虚拟服务器上允许的最大并发用户会话数。允许登录此虚拟服务器的实际用户数取决于用户许可证的总数。 输入最大登录尝试次数。 最大登录尝试次数。 输入失败的登录超时。 如果用户超过允许的最大尝试次数,则帐户被锁定的分钟数。 进入 Windows EPA 插件升级。 用于为 Win 设置插件升级行为的选项。 输入 Linux EPA 插件升级。 用于设置 Linux 的插件升级行为的选项。 进入 MAC EPA 插件升级 用于为 Mac 设置插件升级行为的选项。 一次登录 此选项启用/禁用此虚拟服务器的无缝 SSO。 仅限 ICA 如果设置为 ON,则表示基本模式,用户可以使用Citrix Workspace应用程序或浏览器登录,并访问在 Wihome
参数指出的Citrix Virtual Apps and Desktops环境中配置的已发布应用程序。不允许用户使用 Citrix Gateway 插件进行连接,并且无法配置端点扫描。在此模式下,可以登录和访问应用程序的用户数量不受许可证的限制。-设置为“关”时,表示智能访问模式,在该模式下,用户可以使用 Citrix Workspace 应用程序、浏览器或 Citrix Gateway 插件登录。管理员可以将端点扫描配置为在客户端系统上运行,然后使用结果控制对已发布应用程序的访问。在此模式下,客户端可以在其他客户端模式下连接到网关,即 VPN 和无客户端 VPN。在此模式下,可以登录和访问资源的用户数量受 CCU 许可证的限制。启用验证 要求连接到 Citrix Gateway 的用户进行身份验证 双跃点 在双跃点配置中使用 Citrix Gateway 设备。双跃点部署通过使用三个防火墙将 DMZ 分为两个阶段,为内部网络提供了额外的安全层。这样的部署可以在 DMZ 中有一台设备,在安全网络中可以有一台设备。 向下状态刷新 将虚拟服务器标记为 DOWN 时关闭现有连接,这意味着服务器可能已超时。断开现有连接可以释放资源,在某些情况下可以加快过载负载平衡设置的恢复速度。在服务器上启用此设置,当连接被标记为 DOWN 时,可以安全地关闭这些连接。不要在必须完成事务的服务器上启用 DOWN 状态刷新。 DTLS 此选项启动/停止虚拟服务器上的转弯服务 AppFlow 记录 记录包含标准 NetFlow 或 IPFIX 信息的 AppFlow 记录,例如流的开始和结束的时间戳、数据包计数和字节计数。还记录包含应用程序级信息的记录,例如 HTTP Web 地址、HTTP 请求方法和响应状态代码、服务器响应时间和延迟。 ICA 代理会话迁移 此选项确定当用户从另一台设备登录时是否传输现有 ICA 代理会话。 状态 虚拟服务器的当前状态,如 UP、DOWN、BUSY 等。 启用设备证书 指示作为 EPA 一部分的设备证书检查是打开还是关闭。 -
选择页面的“无服务器证书”部分。
-
单击 > 选择服务器证书。
-
选择 SSL 证书,然后单击“选择”按钮。
-
单击绑定。
-
如果看到关于 没有可用密码的警告,请单击 确定
-
单击“继续”按钮。
-
在“身份验证”部分中,单击右上角的 + 图标。
创建身份验证虚拟服务器
-
导航到 安全-> AAA — 应用程序流量-> 虚拟服务器。
-
单击添加按钮。
-
完成以下基本设置以创建身份验证虚拟服务器。
注意: 设置名称右侧的 * 符号表示必填字段。
-
输入新身份验证虚拟服务器的 名称 。
-
输入 IP 地址类型。IP 地址类型可以配置为不可寻址。
-
输入 IP 地址。IP 地址可以为零。
-
输入身份验证虚拟服务器的 协议 类型。
-
输入虚拟服务器接受连接的 TCP 端口 。
-
输入身份验证虚拟服务器设置的身份验证 Cookie 的 域 。
-
-
单击确定。
-
单击 无服务器证书。
-
从列表中选择所需的服务器证书。
-
选择所需的 SSL 证书,然后单击“选择”按钮。
注意:身份验证虚拟服务器不需要绑定到它的证书。
-
配置 服务器证书绑定。
-
选中 SNI 的服务器证书 框以绑定用于 SNI 处理的一个或多个证书密钥。
-
单击“绑定”按钮。
-
创建验证 CERT 配置文件
-
导航到 安全-> AAA — 应用程序流量-> 策略-> 身份验证-> 基本策略-> CERT。
-
选择配置文件选项卡,然后选择 添加。
-
完成以下字段以创建身份验证证书配置文件。设置名称右侧的 * 符号表示必填字段。
-
名称 -客户端证书身份验证服务器配置文件(操作)的名称。
-
两个因素 — 在这种情况下,双因素身份验证选项是 NOOP。
-
用户名字段 — 输入从中提取用户名的客户端证书字段。必须设置为“主题”或“发行者”(包括两组双引号)。
-
组名称字段 -输入从中提取组的客户端证书字段。必须设置为“主题”或“发行者”(包括两组双引号)。
-
默认身份验证组 -这是除提取的组之外,在身份验证成功时选择的默认组。
-
-
单击创建。
创建身份验证策略
-
导航到安全 -> AAA — 应用程序流量 -> 策略 -> 身份验证 -> 高级策略 -> 策略。
-
选择“添 加”按钮
-
完成以下信息以创建身份验证策略。设置名称右侧的 * 符号表示必填字段。
a) 名称 - 输入高级身份验证策略的名称。必须以字母、数字或下划线字符 (_) 开头,并且必须仅包含字母、数字和连字符 (-)、句点 (.) 磅 (#)、空格 ()、at (@)、等于 (=)、冒号 (:) 和下划线字符。创建身份验证策略后无法更改。
以下要求仅适用于 Citrix ADC CLI:如果名称包含一个或多个空格,请将名称用双引号或单引号括起来(例如,“我的身份验证策略”或“我的身份验证策略”)。
b) 操作类型 -输入身份验证操作的类型。
c) 操作 -输入策略匹配时要执行的身份验证操作的名称。
d) 日志操作 -输入请求与此策略匹配时要使用的消息日志操作的名称。
e) 表达式 -输入策略用于确定是否尝试使用身份验证服务器对用户进行身份验证的 Citrix ADC 命名规则的名称或默认语法表达式。
f) 备 注 — 输入任何注释以保留有关此策略的信息。
-
单击创建
添加 LDAP 身份验证服务器
-
导航到 安全-> AAA — 应用程序流量-> 策略-> 身份验证-> 基本策略-> LDAP。
-
通过选择“服务器”选项卡并选择“添加”按钮来 添 加 LDAP 服 务器。
添加 LDAP 身份验证策略
-
导航到安全 -> AAA — 应用程序流量 -> 策略 -> 身份验证 -> 高级策略 -> 策略。
-
单击 添加 以添加身份验证策略。
-
完成以下信息以创建身份验证策略。设置名称右侧的 * 符号表示必填字段。
a) 名称 - 高级身份验证策略的名称。 必须以字母、数字或下划线字符 (_) 开头,并且必须仅包含字母、数字和连字符 (-)、句点 (.) 磅 (#)、空格 ()、at (@)、等于 (=)、冒号 (:) 和下划线字符。创建身份验证策略后无法更改。
以下要求仅适用于 Citrix ADC CLI:如果名称包含一个或多个空格,请将名称用双引号或单引号括起来(例如,“我的身份验证策略”或“我的身份验证策略”)。
b) 操作类型 -身份验证操作的类型。
c) 操作 -策略匹配时要执行的身份验证操作的名称。
d) 日志操作 -请求与此策略匹配时要使用的消息日志操作的名称。
e) 表达式 -策略用于确定是否尝试使用身份验证服务器对用户进行身份验证的 Citrix ADC 命名规则或默认语法表达式的名称。
f) 评论 -保留有关此策略的信息的任何评论。
-
单击创建
添加 RADIUS 身份验证服务器
-
导航到 安全-> AAA — 应用程序流量-> 策略-> 身份验证-> 基本策略-> RADIUS。
-
要添加服务器,请选择服务 器 选项卡,然后选择 添加 按钮。
-
输入以下命令以创建身份验证 RADIUS 服务器。设置名称右侧的 * 符号表示必填字段。
a) 输入 RADIUS操作的 名称 。
b) 输入分配给 RADIUS 服务器的服务器 名称 或服务器 IP 地址。
c) 输入 RADIUS 服务器监听连接的 端口 号。
d) 在几秒钟 后输入超时 值。这是 Citrix ADC 设备等待 RADIUS 服务器响应的值。
e) 输入 RADIUS 服务器和 Citrix ADC 设备之间共享的 密钥 。需要密钥才能允许 Citrix ADC 设备与 RADIUS 服务器进行通信。
f) 确认密钥。
-
单击创建
添加 RADIUS 身份验证策略
-
导航到安全 -> AAA — 应用程序流量 -> 策略 -> 身份验证 -> 高级策略 -> 策略。
-
单击 添加 创建身份验证策略。
-
完成以下信息以创建身份验证策略。设置名称右侧的 * 符号表示必填字段。
a) 名称 - 高级身份验证策略的名称。 必须以字母、数字或下划线字符 (_) 开头,并且必须仅包含字母、数字和连字符 (-)、句点 (.) 磅 (#)、空格 ()、at (@)、等于 (=)、冒号 (:) 和下划线字符。创建身份验证策略后无法更改。
以下要求仅适用于 Citrix ADC CLI:如果名称包含一个或多个空格,请将名称用双引号或单引号括起来(例如,“我的身份验证策略”或“我的身份验证策略”)。
b) 操作类型 -身份验证操作的类型。
c) 操作 -策略匹配时要执行的身份验证操作的名称。
d) 日志操作 -请求与此策略匹配时要使用的消息日志操作的名称。
e) 表达式 -策略用于确定是否尝试使用身份验证服务器对用户进行身份验证的 Citrix ADC 命名规则或默认语法表达式的名称。
f) 评论 -保留有关此策略的信息的任何评论。
-
单击 OK(确定)
-
验证您的身份验证策略是否已列出。
创建身份验证登录架构
-
导航到 安全-> AAA — 应用程序流量-> 登录架构。
-
选择配置文件选项卡,然后单击 添加 按钮。
-
填写以下字段以创建身份验证登录架构:
a) 输入 名称 — 这是新登录架构的名称。
b) 输入 身份验证架构 -这是用于读取要发送到登录页面 UI 的身份验证架构的文件名。该文件必须包含符合 Citrix 表单身份验证协议的元素的 xml 定义,才能呈现登录表单。如果管理员不想提示用户输入其他凭据,而是继续使用先前获得的证书,则
noschema
可以将其作为参数。这仅适用于与用户定义因素一起使用的 loginSchema,而不适用于虚拟服务器因素c) 输入 用户表达式 -登录期间提取用户名的表达式
d) 输入 密码表达式 -这是登录期间提取密码的表达式
e) 输入 用户凭据索引 -这是必须将用户输入的用户名存储在会话中的索引。
f) 输入 密码凭据索引 -这是用户输入的密码必须存储在会话中的索引。
g) 输入 身份验证强度 -这是当前身份验证的权重。
-
单击创建
- 验证您的登录架构配置文件是否已列出。
创建策略标签
策略标签指定特定因素的身份验证策略。每个策略标签对应于一个因素。策略标签指定必须向用户显示的登录表单。必须将策略标签绑定为身份验证策略或另一个身份验证策略标签的下一个因素。通常情况下,策略标签包括特定身份验证机制的身份验证策略。但是,您也可以拥有针对不同身份验证机制的身份验证策略的策略标签。
-
导航到 安全-> AAA — 应用程序流量-> 策略-> 身份验证-> 高级策略-> 策略标签。
-
单击添加按钮。
-
填写以下字段以创建身份验证策略标签:
a) 输入新的身份验证策略标签的 Name(名称)。
b) 输入与身份验证策略标签关联的 登录架构 。
c) 单击 Continue(继续)。
-
从下拉菜单中选择策略 。
-
选择所需的 身份验证策略 ,然后单击选 择 按钮。
-
填写以下字段:
a) 输入策略绑定的 Priority(优先级)。
b) 输入 Goto 表达式 — 该表达式指定在当前策略规则评估为 TRUE 时将要评估的下一个策略的优先级。
-
选择所需的身份验证策略,然后单击 选择 按钮。
-
单击“绑定”按钮。
-
单击 Done(完成)。
-
查看身份验证策略标签。
在本文中
- 用例
- 身份验证响应处理
- 客户端支持
- 命令行配置
- 互操作挑战
- 终点分析 (EPA)
- 错误配置注意事项
- 定义 Citrix 客户端
- 限制网关的 nFactor
- LoginSchema
- 需要 LoginSchema 和 nFactor 知识
- 在不使用 LoginSchema 的情况下配置双重身份验证
- 用户名密码表达式
- nFactor 配置中的高级步骤
- GUI 配置
- 创建虚拟服务器
- 创建身份验证虚拟服务器
- 创建验证 CERT 配置文件
- 创建身份验证策略
- 添加 LDAP 身份验证服务器
- 添加 LDAP 身份验证策略
- 添加 RADIUS 身份验证服务器
- 添加 RADIUS 身份验证策略
- 创建身份验证登录架构
- 创建策略标签