Citrix Gateway

nFactor 用于网关身份验证

nFactor 身份验证为身份验证提供了一系列全新的可能性。使用 nFactor 的管理员在为虚拟服务器配置身份验证因素时可以享受身份验证、授权和审核

两个保单银行或两个因素不再限制管理员。可以扩大保单银行的数量以适应不同的需求。根据以前的因素,nFactor 确定了一种身份验证方法。使用 nFactor 可以实现动态登录表单和失败时的操作。

重要

  • 自版本 13.0 Build 67.x 起,只有网关/VPN 虚拟服务器的 Standard 许可证支持 nFactor 身份验证。在标准许可证中,nFactor 可视化工具 GUI 不能用于在 nFactor 流程中创建 EPA。此外,您不能编辑登录架构,但必须按原样使用出厂设置的登录架构。
  • 要使 Citrix ADC 支持 nFactor 身份验证,需要高级许可证或高级许可证。有关使用 Citrix ADC 进行 nFactor 身份验证的更多信息,请参阅 nFactor 身份验证

身份验证、授权和审核功能许可要求

下表列出了可用身份验证、授权和审核功能的许可要求。

  标准许可证 高级许可证 高级许可证
本地验证
LDAP 身份验证
RADIUS 身份验证
TACACS 身份验证
Web 身份验证
客户端证书身份验证
协商身份验证
SAML 身份验证
OAuth 身份验证
本机 OTP
电子邮件 OTP
OTP 的推送通知
基于知识的问答(KBA 身份验证)
自助服务密码重置 (SSPR)
nFactor 可视化工具

注意

  • 有关为 Citrix ADC 标准许可证配置 nFactor 的步骤,请参阅 Citrix ADC Standard 许可证中的为 nFactor 身份验证创建网关虚拟服务器部分。
  • 在 Citrix ADC Standard 许可证中,只有不可寻址的身份验证、授权和审核虚拟服务器才能绑定到网关/VPN 虚拟服务器。
  • Citrix ADC 标准许可证中不允许自定义 LoginSchema。nFactor 支持是基本的,只有默认且已经添加了设备随附的登录架构。管理员可以在其配置中使用它们,但不能添加登录架构。因此,GUI 选项被禁用。

用例

nFactor 身份验证启用基于用户配置文件的动态身份验证流。有时,流程对用户来说可能很简单直观。在其他情况下,它们可以与保护活动目录或其他身份验证服务器结合使用。以下是 Gateway 的一些特定要求:

  1. 动态选择用户名和密码。传统上,Citrix 客户端(包括浏览器和接收器)使用活动目录 (AD) 密码作为第一个密码字段。第二个密码保留给一次性密码 (OTP)。但是,为了保护 AD 服务器,必须首先验证 OTP。nFactor 可以在不需要客户端修改的情况下完成此操作。

  2. 多租户身份验证端点。一些组织为证书用户和非证书用户使用不同的网关服务器。当用户使用自己的设备登录时,Citrix ADC 设备的用户访问级别因所使用的设备而异。网关可以满足不同的身份验证需求。

  3. 基于组成员身份的身份验证。一些组织从 AD 服务器获取用户属性以确定身份验证要求。个人用户的身份验证要求可能有所不同。

  4. 身份验证协同因素。有时,不同的身份验证策略对用于对不同的用户组进行身份验证。提供配对策略可提高身份验证的效从属策略可以从一个流程中创建。通过这种方式,独立的策略集成为自己的流程,从而提高效率并降低复杂性。

身份验证响应处理

Citrix Gateway 回调寄存器处理身份验证响应。AAAD(身份验证守护程序)响应和成功/失败/错误/对话代码将提供给回调句柄。成功/失败/错误/对话代码指示 Gateway 采取适当的措施。

客户支持

下表详细介绍了配置详细信息。

客户端 nFactor 支持 身份验证策略绑定点 EPA
浏览器 身份验证
Citrix Workspace 应用程序 VPN
网关插件 VPN

注意:

  • 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 是身份验证虚拟服务器的名称。AuthnVsName 虚拟服务器必须配置高级身份验证策略并用于 nFactor 身份验证。

add vpn vserver <name> <serviceType> <IP> <PORT> -authnProfile <name-of-profile>
set vpn vserver <name> -authnProfile <name-of-profile>
<!--NeedCopy-->

其中 AuthnProfile 是以前创建的身份验证配置文件。

互操作挑战

除 RFWeb 客户端外,大多数旧版网关客户端都是基于 Gateway 发送的响应建模的。例如,预计许多客户端对 /vpn/index.html 的响应为 302。这些客户端还依赖于各种网关 cookie,例如“pwcount”、“NSC_CERT”。

端点分析 (EPA)

Citrix ADC 身份验证、授权和审核模块不支持 nFactor 中的 EPA。因此,Citrix Gateway 虚拟服务器执行 EPA。在 EPA 之后,登录凭据将使用前面提到的 API 发送到身份验证虚拟服务器。身份验证完成后,网关将继续进行身份验证后流程,并建立用户会话。

错误配置注意事项

Gateway 客户端只发送一次用户凭证。Gateway 通过登录请求从客户端获取一个或两个凭证。在旧模式下,最多有两个因素。获得的密码用于这些因素。但是,使用 nFactor,可以配置的因子数量实际上是无限的。从 Gateway 客户端获取的密码将根据配置的因素重复使用(根据配置)。必须注意不要多次重复使用一次性密码(OTP)。同样,管理员必须确保在某个因素下重复使用的密码确实适用于该因素。

定义 Citrix 客户端

提供配置选项是为了帮助 Citrix ADC 确定浏览器客户端与 Receiver 等胖客户端。

为管理员提供了一个模式集 ns_vpn_client_useragent,用于为所有 Citrix 客户端配置模式。

同样,将 “Citrix Receiver” 字符串绑定到 patset 上面的字符串可以忽略用户代理中包含“Citrix Receiver”的所有 Citrix 客户端。

限制网关的 nFactor

如果存在以下条件,则不会发生用于网关身份验证的 nFactor。

  1. authnProfile 未设置为 Citrix Gateway。

  2. 高级身份验证策略未绑定到身份验证虚拟服务器,并且在中提到了同一身份验证虚拟服务器 authnProfile

  3. HTTP 请求中的用户代理字符串与 patset ns_vpn_client_useragent 中配置的用户代理匹配。

如果不满足这些条件,则使用绑定到 Gateway 的经典身份验证策略。

如果用户代理或其中的一部分绑定到前面提到的 patset,则来自这些用户代理的请求不会参与 nFactor 流程。例如,以下命令限制所有浏览器的配置(假设所有浏览器的用户代理字符串中都包含“Mozilla”):

bind patset ns_vpn_client_useragents Mozilla
<!--NeedCopy-->

LoginSchema

LoginSchema 是登录表单的逻辑表示形式。XML 语言对其进行了定义。LoginSchema 的语法符合 Citrix 的通用表单协议规范。

LoginSchema 定义了产品的 “视图”。管理员可以提供表单的自定义说明、辅助文本等。登录架构包括表单本身的标签。客户可以提供成功或失败消息来描述在给定时刻显示的表单。

使用以下命令配置登录架构。

add authentication loginSchema <name> -authenticationSchema <string> [-userExpression <string>] [-passwdExpression <string>] [-userCredentialIndex <positive_integer>]
[-passwordCredentialIndex <positive_integer>] [-authenticationStrength <positive_integer>] [-SSOCredentials ( YES | NO )]
<!--NeedCopy-->

参数说明

  • name-新登录架构的名称。这是一个强制性的论点。最大长度:127

  • AuthenticationSchema-用于读取要为登录页面 UI 发送的身份验证架构的文件的名称。此文件包含按照 Citrix Forms 身份验证协议的元素的 xml 定义,以便能够呈现登录表单。如果管理员不想提示用户输入其他凭据,但继续使用先前获取的凭据,则 noschema 可以作为参数提供。这仅适用于与用户定义因子一起使用的 LoginSchemas,而不适用于虚拟服务器因子。

这是一个强制性的论点。最大长度:255

  • useXpression-用于在登录期间提取用户名的表达式。这可以是任何相关的高级策略表达式。最大长度:127

  • passwdExpression-用于在登录期间提取密码的表达式。这可以是任何相关的高级策略表达式。最大长度:127

  • userCredentialIndex-用户输入的用户名必须存储在会话中的索引。最小值:1,最大值:16

  • passwordCredentialIndex-用户输入密码的索引必须存储在会话中。最小值:1,最大值:16

  • 身份验证强度-当前身份验证的权重最小值:0,最大值:65535

  • SSOCredentials -此选项指示当前因素凭证是否为默认 SSO (singlesIGNON) 凭据。可能的值:YES, NO。默认值:NO

需要 loginSchema 和 nFactor 知识

预构建的 Login Schema 文件位于以下 Citrix ADC 位置 /nsConfig /loginSchema/。这些预先构建的 LoginSchema 文件适合常见的使用案例,必要时可以进行修改以进行细微的变化。

此外,大多数具有很少自定义设置的单因素用例不需要登录架构配置。

建议管理员查看文档以获取使 Citrix ADC 能够发现因素的其他配置选项。用户提交凭据后,管理员可以配置多个因素来灵活选择和处理身份验证因素。

在不使用 LoginSchema 的情况下配置双重身份验证

Citrix ADC 会根据配置自动确定双因素要求。用户提供这些凭据后,管理员就可以在虚拟服务器上配置第一组策略。对于每个策略,都可以有一个 “NextFactor” 配置为 “直通”。“ “直通” 意味着 Citrix ADC 必须使用现有凭据集处理登录,而无需访问用户。通过使用 “直通” 因素,管理员可以编程方式推动身份验证流程。建议管理员阅读 nFactor 规范或部署指南以了解更多详细信息。请参阅 多因素 (nFactor) 身份验证

用户名和密码表达式

要处理登录凭据,管理员必须配置 LoginSchema。具有很少 LoginSchema 自定义项的单因素或双因素用例不需要指定的 XML 定义。LoginSchema 具有其他属性,例如用户表达式和 passwDExpression,这些属性可用于更改用户显示的用户名或密码。

登录架构是高级策略表达式,也可用于覆盖用户输入。这可以通过在 -AuthenticationSchem a 中为参数附加一个字符串来实现,如以下示例所示。

以下是分别修改用户输入的用户名和密码的示例。

  • 将用户名的用户输入从更改 username@citrix.comusername@xyz.com

     add authentication loginSchema user_schema -authenticationSchema LoginSchema/DualAuth.xml -userExpression "AAA.LOGIN.USERNAME.BEFORE_STR("@").APPEND("@xyz.com")"
     <!--NeedCopy-->
    
  • 考虑一个场景,即用户在配置的登录架构中首先提供密码和通行码。要使用用户在第一个因素中提供的通行 ,在第二个因素中使用 码,可以使用以下命令修改现有的登录架构。

     add authentication loginSchema user_schema -authenticationSchema LoginSchema/DualAuth.xml -passwdExpression "AAA.LOGIN.PASSWORD2"
     <!--NeedCopy-->
    
     add authentication loginSchema user_schema_second -authenticationSchema noschema  -passwdExpression "AAA.LOGIN.PASSWORD"
     <!--NeedCopy-->
    

nFactor 配置中的高级步骤

下图说明了 nFactor 配置中涉及的高级步骤。

工作流

GUI 配置

本节介绍以下主题:

  • 创建虚拟服务器

  • 创建身份验证虚拟服务器

  • 创建验证 CERT 配置文件

  • 创建身份验证策略

  • 添加 LDAP 身份验证服务器

  • 添加 LDAP 身份验证策略

  • 添加 RADIUS 认证服务器

  • 添加 RADIUS 身份验证策略

  • 创建身份验证登录架构

  • 创建策略标签

创建虚拟服务器

  1. 导航到 Citrix Gateway-> 虚拟服务器。

  2. 单击 加按钮以创建网关虚拟服务器。

  3. 输入以下信息。

    参数名称 参数说明
    输入虚拟服务器的名称。 Citrix Gateway 虚拟服务器的名称。必须以 ASCII 字母或下划线 (_) 字符开头,并且必须仅包含 ASCII 字母数字、下划线、哈希 (#)、句点 (.)、空格、冒号 (:)、at (@)、等于 (=) 和连字符 (-)。可以在创建虚拟服务器后进行更改。以下要求仅适用于 Citrix ADC CLI:如果名称包含一个或多个空格,请将名称用双引号或单引号括起来(例如,“我的服务器” 或 “我的服务器”)。
    输入虚拟服务器的 IP 地址类型 从下拉菜单中选择 IP 地址或不可寻址选项。
    输入虚拟服务器的 IP 地址。 互联网协议地址(IP 地址)是分配给加入使用 Internet 协议进行通信的计算机网络的每台设备的数字标签。
    输入虚拟服务器的端口号。 输入端口号。
    输入身份验证配置文件。 虚拟服务器上的验证配置文件实体此实体可用于将身份验证卸载到身份验证、授权和审核虚拟服务器以进行多因素 (nFactor) 身份验证
    输入 RDP 服务器配置文件。 与虚拟服务器关联的 RDP 服务器配置文件的名称。
    输入最大用户数。 此虚拟服务器上允许的最大并发用户会话数。允许登录此虚拟服务器的实际用户数取决于用户许可证的总数。
    输入最大登录尝试次数。 最大登录尝试次数。
    输入失败的登录超时。 如果用户超过允许的最大尝试次数,则帐户被锁定的分钟数。
    输入 Windows EPA 插件升级。 用于为 Win 设置插件升级行为的选项。
    输入 Linux EPA 插件升级。 用于设置 Linux 的插件升级行为的选项。
    进入 MAC EPA 插件升级 用于为 Mac 设置插件升级行为的选项。
    一次登录 此选项启用/禁用此虚拟服务器的无缝 SSO。
    仅限 ICA 如果设置为开,则表示基本模式,用户可以使用 Citrix Workspace 应用程序或浏览器登录,并访问在 Wihome 参数指出的 Citrix Virtual Apps and Desktops 环境中配置的已发布应用程序。不允许用户使用 Citrix Secure Access 代理进行连接,并且无法配置端点扫描。在此模式下,可以登录和访问应用程序的用户数量不受许可证的限制。- 设置为“关”时,表示用户可以使用 Citrix Workspace 应用程序或浏览器或 Citrix Secure Access 代理登录的 SmartAccess 模式。管理员可以将端点扫描配置为在客户端系统上运行,然后使用结果控制对已发布应用程序的访问。在此模式下,客户端可以在其他客户端模式下连接到网关,即 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 一部分的设备证书检查是打开还是关闭。

    基本设置

  4. 选择页面的 “ 无服务器证书 ” 部分。

  5. 单击 > 选择服务器证书。

    选择服务器证书

  6. 选择 SSL 证书,然后单击 “选择” 按钮。

  7. 单击 Bind(绑定)。

  8. 如果看到关于 没有可用密码的警告,请单击 确定

    没有可用密码时发出警告

  9. 单击 “ 继续 ” 按钮。

  10. 在 “身份验证” 部分中,单击右上角的 + 图标。

创建身份验证虚拟服务器

  1. 导航到 安全-> Citrix ADC AAA — 应用程序流量-> 虚拟服务器。

  2. 单击添加按钮。

  3. 完成以下基本设置以创建身份验证虚拟服务器。

    注意: 设置名称右侧的 * 符号表示必填字段。

    • 输入新身份验证虚拟服务器的 名称

    • 输入 IP 地址类型。IP 地址类型可以配置为不可寻址。

    • 输入 IP 地址。IP 地址可以为零。

    • 输入身份验证虚拟服务器的 协议 类型。

    • 输入虚拟服务器接受连接的 TCP 端口

    • 输入身份验证虚拟服务器设置的身份验证 Cookie 的

  4. 单击确定

  5. 单击 无服务器证书

  6. 从列表中选择所需的服务器证书。

  7. 选择所需的 SSL 证书,然后单击 “选择” 按钮。

    注意:身份验证虚拟服务器不需要绑定到它的证书。

    ![选择 ssl 证书] (/en-us/citrix-gateway/media/figure_9-ssl_certificate.png)

  8. 配置 服务器证书绑定

    • 选中 SNI 的服务器证书 框以绑定用于 SNI 处理的一个或多个证书密钥。

    • 单击 “ 绑定 ” 按钮。

    绑定证书

创建身份验证 CERT 配置文件

  1. 导航到 安全-> Citrix ADC AAA — 应用程序流量-> 策略-> 身份验证-> 基本策略-> CERT。

  2. 选择配置文件选项卡,然后选择 添加

  3. 完成以下字段以创建身份验证证书配置文件。设置名称右侧的 * 符号表示必填字段。

    • 名称 -客户端证书身份验证服务器配置文件(操作)的名称。

    • 两个因素 — 在这种情况下,双因素身份验证选项是 NOOP。

    • 用户名字段 — 输入从中提取用户名的客户端证书字段。必须设置为“使用者”或“颁发者”(包括两组双引号)。

    • 组名称字段 -输入从中提取组的客户端证书字段。必须设置为“使用者”或“颁发者”(包括两组双引号)。

    • 默认身份验证组 -这是除提取的组之外,在身份验证成功时选择的默认组。

  4. 单击创建

创建身份验证策略

注意

如果使用 AAA.Login 配置具有策略规则的第一因素策略,则必须使用 OR 条件配置以下表达式,Citrix Workspace 应用程序才能支持 nFactor 部署。

|| HTTP.REQ.URL.CONTAINS("/cgi/authenticate")

  1. 导航到 安全-> Citrix ADC AAA — 应用程序流量-> 策略-> 身份验证-> 高级策略-> 策略。

  2. 选择 “ 加” 按钮

  3. 完成以下信息以创建身份验证策略。设置名称右侧的 * 符号表示必填字段。

    a) 名称 — 输入高级身份验证策略的名称。必须以字母、数字或下划线字符 (_) 开头,并且必须仅包含字母、数字和连字符 (-)、句点 (.) 磅 (#)、空格 ()、at (@)、等于 (=)、冒号 (:) 和下划线字符。创建身份验证策略后无法更改。

    以下要求仅适用于 Citrix ADC CLI:如果名称包含一个或多个空格,请将名称用双引号或单引号括起来(例如,“我的身份验证策略” 或 “我的身份验证策略”)。

    b) 操作类型 -输入身份验证操作的类型。

    c) 操作 -输入策略匹配时要执行的身份验证操作的名称。

    d) 日志操作 -输入请求与此策略匹配时要使用的消息日志操作的名称。

    e) 表达式 -输入策略用于确定是否尝试使用身份验证服务器对用户进行身份验证的 Citrix ADC 命名规则的名称或默认语法表达式。

    f) 备 — 输入任何注释以保留有关此策略的信息。

  4. 单击创建

添加 LDAP 身份验证服务器

  1. 导航到 安全-> Citrix ADC AAA — 应用程序流量-> 策略-> 身份验证-> 基本策略-> LDAP。

  2. 通过选择 “服务器” 选项卡并选择 “添加” 按钮来 加 LDAP 务器。

添加 LDAP 身份验证策略

  1. 转到 安全 > Citrix ADC AAA — 应用程序流量 > 策略 > 身份验证 > 高级策略 > 策略

  2. 单击 添加 以添加身份验证策略。

  3. 完成以下信息以创建身份验证策略。设置名称右侧的 * 符号表示必填字段。

    a) 名称 -高级身份验证策略的名称。 必须以字母、数字或下划线字符 (_) 开头,并且必须仅包含字母、数字和连字符 (-)、句点 (.) 磅 (#)、空格 ()、at (@)、等于 (=)、冒号 (:) 和下划线字符。创建身份验证策略后无法更改。

    以下要求仅适用于 Citrix ADC CLI:如果名称包含一个或多个空格,请将名称用双引号或单引号括起来(例如,“我的身份验证策略” 或 “我的身份验证策略”)。

    b) 操作类型 -身份验证操作的类型。

    c) 操作 -策略匹配时要执行的身份验证操作的名称。

    d) 日志操作 -请求与此策略匹配时要使用的消息日志操作的名称。

    e) 表达式 -策略用于确定是否尝试使用身份验证服务器对用户进行身份验证的 Citrix ADC 命名规则或默认语法表达式的名称。

    f) 评论 -保留有关此策略的信息的任何评论。

  4. 单击创建

添加 RADIUS 认证服务器

  1. 导航到 安全 > Citrix ADC AAA — 应用程序流量 > 策略 身份验证 > 基本策略 > RADIUS

  2. 要添加服务器,请选择服务 选项卡,然后选择 添加 按钮。

  3. 输入以下命令以创建身份验证 RADIUS 服务器。设置名称右侧的 * 符号表示必填字段。

    1. 输入 RADIUS 操作的 名称

    2. 输入分配给 RADIUS 服务器的 服务器名称服务器 IP 地址。

    3. 入 RADIUS 服务器侦听连接的端口号。

    4. 在几秒钟内输入 时值。Citrix ADC 设备将等待 RADIUS 服务器的响应,直到配置的超时值到期。

    5. 输入 RADIUS 服务器和 Citrix ADC 设备之间共享的 密钥 。需要密钥才能允许 Citrix ADC 设备与 RADIUS 服务器进行通信。

    6. 确认密钥

  4. 单击创建

添加 RADIUS 身份验证策略

  1. 导航到 安全 > Citrix ADC AAA — 应用程序流量 > 策略 > 身份验证 > 高级策略 > 策略。

  2. 单击 添加 创建身份验证策略。

  3. 完成以下信息以创建身份验证策略。设置名称右侧的 * 符号表示必填字段。

    1. 名称 -高级身份验证策略的名称。 必须以字母、数字或下划线字符 (_) 开头,并且必须仅包含字母、数字和连字符 (-)、句点 (.) 磅 (#)、空格 ()、at (@)、等于 (=)、冒号 (:) 和下划线字符。创建身份验证策略后无法更改。

    以下要求仅适用于 Citrix ADC CLI:如果名称包含一个或多个空格,请将名称用双引号或单引号括起来(例如,“我的身份验证策略” 或 “我的身份验证策略”)。

    1. 操作类型 -身份验证操作的类型。

    2. 操作 -策略匹配时要执行的身份验证操作的名称。

    3. 日志操作 -请求与此策略匹配时要使用的消息日志操作的名称。

    4. 表达式 -策略用于确定是否尝试使用身份验证服务器对用户进行身份验证的 Citrix ADC 命名规则或默认语法表达式的名称。

    5. 评论 -用于保留有关此策略的信息的任何评论。

  4. 单击确定。您创建的身份验证策略将列在策略列表中。

    创建策略 1

创建身份验证登录架构

  1. 导航到 安全 > Citrix ADC AAA — 应用程序流量 > 登录架构。

  2. 选择配置文件选项卡,然后单击 添加 按钮。

  3. 填写以下字段以创建身份验证登录架构:

    1. 输入 名称 — 新登录架构的名称。

    2. 输入 身份验证架构 -用于读取要为登录页面 UI 发送的身份验证架构的文件的名称。根据 Citrix Forms 身份验证协议,此文件必须包含元素的 xml 定义,才能呈现登录表单。如果管理员不想提示用户输入更多凭据,但继续使用先前获取的凭据,则可以将noschema“” 作为参数提供。这仅适用于与用户定义因子一起使用的 LoginSchemas,而不适用于虚拟服务器因子

    3. 输入 用户表达式 -登录期间用户名提取的表达式

    4. 输入 密码表达式 -登录时提取密码的表达式

    5. 输入 用户凭据索引 -用户输入的用户名存储在会话中的索引。

    6. 输入 密码凭据索引 -用户输入的密码必须存储在会话中的索引。

    7. 输入 身份验证强度 -当前身份验证的权重。

  4. 单击创建。您创建的登录架构配置文件必须出现在登录架构配置文件列表中。

    创建登录架构

创建策略标签

策略标签指定特定因素的身份验证策略。每个策略标签对应于一个因素。策略标签指定必须向用户显示的登录表单。必须将策略标签绑定为身份验证策略或另一个身份验证策略标签的下一个因素。通常情况下,策略标签包括特定身份验证机制的身份验证策略。但是,您也可以拥有针对不同身份验证机制的身份验证策略的策略标签。

  1. 导航到 安全 > Citrix ADC AAA — 应用程序流量 > 策略 > 身份验证 > 高级策略 > 策略标签。

  2. 单击添加按钮。

  3. 填写以下字段以创建身份验证策略标签:

    1. 输入新身份验证策略标签的 名称

    2. 输入与身份验证策略标签关联的 登录架构

    3. 单击继续

  4. 从下拉菜单中选择策略
  5. 选择所需的 身份验证策略 ,然后单击选 按钮。

  6. 填写以下字段:

    1. 输入策略绑定的 优先级

    2. 输入 Gto 表达式 — 表 达式指定当前策略规则的计算结果为 TRUE 时将评估的下一个策略的优先级。

    添加表达式

  7. 选择所需的身份验证策略,然后单击 选择 按钮。

  8. 单击 “ 绑定 ” 按钮。

  9. 单击完成

  10. 查看身份验证策略标签。

nFactor 身份验证的重新验证码配置

从 Citrix ADC 版本 12.1 build 50.x 开始,Citrix Gateway 支持新的头等舱操作 “captchaAction”,该操作可简化验证码配置。由于 CAPTCHA 是一流的诉讼,因此它可能是其自身的一个因素。你可以在 nFactor 流程中的任何地方注入验证码。

以前,您还必须编写自定义的 WebAuth 策略,并对 RFWeBUI 进行更改。随着 CaptchaAcction 的引入,你不必修改 JavaScript。

重要

如果在架构中将验证码与用户名或密码字段一起使用,则在满足验证码之前,“提交” 按钮将被禁用。

验证码配置

验证码配置涉及两个部分。

  1. 谷歌上用于注册验证码的配置。
  2. Citrix ADC 设备上的配置以将验证码用作登录流程的一部分。

谷歌上的验证码配置

在以下位置注册验证码的域名 https://www.google.com/recaptcha/admin#list

  1. 导航到此页面时,将显示以下屏幕。

    recaptcha 注册 1

    注意

    只能使用 reCAPTCHA v2。“不 reCAPTCHA 可见” 仍在预览中。

  2. 注册域名后,将显示 “SiteKey” 和 “密钥”。

    recaptcha 注册 1

    注意

    出于安全原因,“SiteKey” 和 “SecretKey” 显示为灰色。“SecretKey” 必须保持安全。

Citrix ADC 设备上的验证码配置

Citrix ADC 设备上的验证码配置可分为三个部分:

  • 显示验证码屏幕
  • 将验证码响应发布到谷歌服务器
  • LDAP 配置是用户登录的第二个因素(可选)

显示验证码屏幕

登录表单自定义是通过 SingleAuthCaptcha.xml 登录架构完成的。此自定义在身份验证虚拟服务器上指定,并发送到 UI 以呈现登录表单。内置登录架构 SingleAuthCaptcha.xml 位于 Citrix ADC 设备上的 /nsconfig/loginSchema/LoginSchema 目录中。

重要

  • 可以修改现有架构,具体取决于您的用例和不同的架构。例如,如果你只需要验证码因素(没有用户名或密码)或使用 CAPTCHA 进行双重身份验证。
  • 如果执行了任何自定义修改或重命名了文件,Citrix 建议将所有登录架构从 /nsconfig/loginSchema/loginSchema 目录复制到父目录 /nsconfig/loginschema。

使用 CLI 配置验证码的显示

-  add authentication loginSchema singleauthcaptcha -authenticationSchema /nsconfig/loginschema/SingleAuthCaptcha.xml

-  add authentication loginSchemaPolicy singleauthcaptcha -rule true -action singleauthcaptcha

-  add authentication vserver auth SSL <IP> <Port>

-  add ssl certkey vserver-cert -cert <path-to-cert-file> -key <path-to-key-file>
-  bind ssl vserver auth -certkey vserver-cert
-  bind authentication vserver auth -policy singleauthcaptcha -priority 5 -gotoPriorityExpression END
<!--NeedCopy-->

将验证码响应发布到谷歌服务器

配置必须向用户显示的验证码后,管理员会将配置发布到 Google 服务器,以验证来自浏览器的验证码响应。

验证来自浏览器的验证码响应
-  add authentication captchaAction myrecaptcha -sitekey <sitekey-copied-from-google> -secretkey <secretkey-from-google>

-  add authentication policy myrecaptcha -rule true -action myrecaptcha
-  bind authentication vserver auth -policy myrecaptcha -priority 1
<!--NeedCopy-->

需要使用以下命令来配置是否需要 AD 身份验证。否则,您可以忽略此步骤。

-  add authentication ldapAction ldap-new -serverIP x.x.x.x -serverPort 636 -ldapBase "cn=users,dc=aaatm,dc=com" -ldapBindDn adminuser@aaatm.com -ldapBindDnPassword <password> -encrypted -encryptmethod ENCMTHD_3 -ldapLoginName sAMAccountName -groupAttrName memberof -subAttributeName CN -secType SSL -passwdChange ENABLED -defaultAuthenticationGroup ldapGroup

-  add authenticationpolicy ldap-new -rule true -action ldap-new
<!--NeedCopy-->

LDAP 配置是用户登录的第二个因素(可选)

LDAP 身份验证发生在 CAPTCHA 之后,您将其添加到第二个因素中。

-  add authentication policylabel second-factor
-  bind authentication policylabel second-factor -policy ldap-new -priority 10
-  bind authentication vserver auth -policy myrecaptcha -priority 1 -nextFactor second-factor
<!--NeedCopy-->

管理员需要添加适当的虚拟服务器,具体取决于是使用负载平衡虚拟服务器还是 Citrix Gateway 设备进行访问。如果需要负载平衡虚拟服务器,管理员必须配置以下命令:

add lb vserver lbtest HTTP <IP> <Port> -authentication ON -authenticationHost nssp.aaatm.com`
<!--NeedCopy-->

nssp.aaatm.com - 解析为身份验证虚拟服务器。

验证码的用户验证

配置完上述部分中提到的所有步骤后,请参阅前面的用户界面屏幕截图。

  1. 身份验证虚拟服务器加载登录页面后,将显示登录屏幕。在验证码完成之前,登录 将被禁用。

    验证 recaptcha

  2. 选择 “我不是机器人” 选项。此时将显示验证码小部件。

    验证 recpatcha2

  3. 在显示完成页面之前,您将浏览一系列验证码图像。
  4. 输入 AD 凭据,选中 I’m not a robot(我不是机器人)复选框,然后单击 Log On(登录)。如果身份验证成功,您将被重定向到所需的资源。

    验证 recpatcha2

    注意:

    • 如果验证码与 AD 身份验证一起使用,则在验证码完成之前,凭据的 “提交” 按钮将被禁用。
    • 验证码发生在其自身的一个因素中。因此,任何后续验证(如 AD)都必须在验证码中进 nextfactor 行。

在 Citrix ADC 标准许可证中创建用于 nFactor 身份验证的网关虚拟服务器

  1. 导航到 Citrix Gateway > 虚拟服务器
  2. Citrix Gateway 虚拟服务器 页面上,单击 添加

    标准许可证 VS

  3. 在 “ VPN 虚拟服务器 ” 页面上输入以下详细信息,单击 确定,然后单击 继续
    • 名称-Citrix Gateway 虚拟服务器的名称
    • 协议-选择 SSL
    • IP 地址-Citrix Gateway 虚拟服务器的 IP 地址
    • 端口-输入 443

    创建标准许可证 VS

  4. VPN 虚拟服务器 页面上,单击 身份验证配置文件旁边的加号图标。

  5. 单击 添加 以配置身份验证配置文件。

    配置身份验证档

  6. 输入身份验证配置文件的名称,然后单击 添加

    输入验证配置文件名

  7. VPN 虚拟服务器页面上输入以下详细信息,单击确定, 然后单击继续
    • 名称 — 身份验证、授权和审核虚拟服务器的名称
    • 协议-选择 不可寻址。在 Citrix ADC Standard 许可证中,只有不可寻址的身份验证、授权和审核虚拟服务器才能绑定到网关/VPN 虚拟服务器。

    标准许可证 VS

    注意:

    • 在 Citrix ADC 标准许可证中,创建策略的步骤与支持的策略类型的高级许可证相同。
    • Citrix ADC 标准许可证不支持在 nFactor 配置中添加新的登录架构。

引用

有关端到端 nFactor 配置示例,请参阅 配置 nFactor 身份验证