EPA 扫描作为 nFactor 身份验证的一个因素

Last published : Oct 14, 2026
重要提示:
端点分析旨在根据预定的合规性标准分析用户设备,而不是强制执行或验证最终用户设备的安全性。建议使用端点安全系统来保护设备免受本地管理员攻击。
以下是 nFactor EPA 的一些基本实体。
EPA 操作: EPA 操作是为 nFactor EPA 引入的一种操作类型。它包含以下内容:
  • 客户端设备检查表达式:此表达式将发送到网关 EPA 插件进行评估。
  • 成功组:如果配置了此组,并且 EPA 结果为 true,则此组将继承到网关会话。
  • 隔离组:如果配置了此组,并且 EPA 结果为 false,则此组将继承到网关会话。
  • killProcess:这表示 EPA 进程必须终止的进程名称。
  • deleteFiles:指定 EPA 进程必须删除的文件的逗号分隔路径。
组可以在会话生命周期内用于确定客户端是否满足特定的 EPA 条件。 如果在给定因素下,EPA 失败且上次操作不包含“隔离组”,则该用户的身份验证将终止。 如果存在“隔离组”,则身份验证将继续,管理员可以检查该组以授予有限访问权限。有关更多详细信息,请参阅EPA 执行。
要使用 GUI 配置身份验证 EPA 操作:
  • 导航到 安全 > AAA - 应用程序流量 > 策略 > 身份验证 > 高级策略 > 操作 > 身份验证 EPA 操作。
  • 配置以下参数:
    • 名称:EPA 操作的名称。
    • 默认组:当 EPA 检查成功时选择的默认组。
    • 隔离组:当 EPA 检查失败时选择的隔离组。
    • 终止进程:一个字符串,指定要由 EPA 工具终止的进程名称。多个进程之间用逗号分隔。
    • 删除文件:一个字符串,指定要由 EPA 工具删除的文件的路径和名称。多个文件之间用逗号分隔。
    • 表达式:要发送到客户端的客户端安全表达式。
要使用 CLI 配置身份验证 EPA 操作:
add authentication epaAction CWA version check scan -csecexpr sys.client_expr("sys_0_MAC-CWA_version_>=_23.9.0.99")
前面的 CLI 示例表示一个 EPA 扫描,用于验证 macOS 计算机上的 Citrix Workspace™ 应用程序版本。
EPA 策略: 在 nFactor 中,所有策略都使用相同的语法“add authentication policy”添加。但是,操作类型将策略限定为 EPA 策略。
EPA 因子: EPA 因子是一个常规策略标签。没有名为 EPA 因子 的实体。一旦 EPA 策略绑定到某个因子,它就会继承某些属性,使其成为 EPA 因子。
注意:
本文档中,“EPA 因子”一词通常用于指代具有 EPA 策略的因子。
EPA – 隔离: 当设备未能通过端点分析 (EPA) 扫描时,配置的隔离组会授予有限访问权限,而不是立即拒绝访问。
如果 EPA 检查失败且上次 EPA 操作包含隔离组,则用户将被添加到隔离组,并且不会评估下一个因子。将隔离组配置为独立的受限访问级别。
隔离用户的访问权限由绑定到隔离组的策略控制。这些策略可以限制应用程序或资源访问,强制执行仅修复工作流,或与合规用户相比降低权限。
如果 EPA 检查失败,并且在上次操作中未配置隔离组,则身份验证将失败,并且访问将被拒绝。
nFactor 中的 EPA 还使用以下实体:
  • LoginSchema: 登录表单的 XML 表示。它定义了登录表单的“视图”,并且还具有“因子”的属性。
  • 策略标签或策略因子: 它是在身份验证的给定阶段尝试的一组策略。
  • 虚拟服务器标签: 虚拟服务器也是一个策略标签,可以将策略绑定到虚拟服务器。但是,虚拟服务器是各种策略标签的集合,因为它是用户访问的入口点。
  • 下一个因子: 它用于指定在给定身份验证策略成功后要采用的策略标签/因子。
  • NO_AUTHN 策略: 其操作始终成功的特殊策略。
  • 直通因子: 是一种登录架构不包含视图的策略标签/因子。它指示 NetScaler 设备在给定因子处继续身份验证,无需用户干预。
有关更多信息,请参阅 nFactor 概念、实体和术语。

EPA 因子互斥

EPA 因子包含一个或多个 EPA 策略。一旦 EPA 策略绑定到某个因子,该因子上就不允许使用常规身份验证策略。此限制旨在提供最佳用户体验和端点分析的清晰分离。此规则的唯一例外是 NO_AUTHN 策略。由于 NO_AUTHN 策略是用于模拟“失败跳转”的特殊策略,因此它在 EPA 因子中是允许的。

EPA 执行

在任何给定因子(包括虚拟服务器因子)中,在提供登录表单之前,NetScaler 设备会检查该因子是否配置了 EPA。如果是,它会向客户端 (UI) 发送特定响应,从而触发 EPA 序列。此序列包括客户端请求客户端设备检查表达式并发送结果。 因子中所有策略的客户端设备检查表达式会一次性发送给客户端。一旦 NetScaler 设备获得结果,所有操作中的每个表达式都会按顺序进行评估。第一个导致 EPA 成功的操作会终止该因子,并且如果配置了 DefaultGroup,则会将其继承到会话中。如果遇到 NO_AUTHN 策略,则视为自动成功。如果指定了 nextFactor,设备将继续使用该因子。否则,身份验证终止。 此条件也适用于第一个因子。如果在虚拟服务器上的 EPA 之后没有身份验证策略因子,则身份验证终止。这与经典策略行为不同,在经典策略行为中,用户在 EPA 后总是会看到登录页面。 但是,如果没有成功的 EPA 策略,则 NetScaler Gateway 会查看为该因子或级联中的最后一个 EPA 策略配置的隔离组。如果最后一个策略配置了隔离组,则该组将添加到会话中并检查 nextFactor。如果存在 nextFactor,则身份验证将继续到该因子。否则,身份验证完成。

配置 EPA 扫描在身份验证后运行

您可以配置 EPA 扫描在身份验证后运行。在以下示例中,EPA 扫描用作 nFactor 或多因素身份验证中的最终检查。在此设置中,如果 EPA 扫描在此类检查期间失败,则会话将终止。
注意:
在配置具有多个 EPA 策略的 nFactor 身份验证时,建议不要将它们顺序放置,因为这可能会导致用户多次提示启动 EPA 插件。相反,建议将 EPA 策略与其他身份验证方法交替使用。
示例:
  • 推荐: EPA 因素 1 > LDAP > EPA 因素 2
  • 不推荐: LDAP > EPA 因素 1 > EPA 因素 2
nFactor 流程序列中的 EPA
  • 用户尝试连接到 NetScaler® Gateway 虚拟 IP。
  • 系统会向用户呈现一个包含用户名和密码字段的登录页面,供用户提供登录凭据。使用这些凭据,将在后端执行 LDAP 或基于 AD 的身份验证。如果成功,系统会向用户显示一个弹出窗口,以授权 EPA 扫描。
  • 用户授权后,将执行 EPA 扫描,并根据用户客户端设置的成功或失败情况提供访问权限。
  • 如果扫描成功,将定期执行 EPA 扫描,以确认配置的设备检查要求仍然满足。
  • 如果在任何此类检查期间 EPA 扫描失败,会话将被终止。

先决条件

假定已完成以下配置:
  • VPN 虚拟服务器、网关和身份验证虚拟服务器配置
  • LDAP 服务器配置和相关策略。
以下部分介绍了所需的策略和策略标签配置,以及策略和策略标签到身份验证配置文件的映射。
nFactor 策略和策略标签映射中的 EPA(/en-us/netscaler-gateway/media/epa-in-nfactor-policy-labels.png)

在 CLI 上

  1. 创建操作以在 LDAP 身份验证之前执行 EPA 扫描,并将其与 EPA 扫描策略关联。
    add authentication epaAction pre-ldap-epa-action -csecexpr "sys.client_expr (\"proc_2_firefox\")"

    add authentication Policy pre-ldap-epa-pol -rule true -action pre-ldap-epa-action
    上述表达式扫描进程“Firefox”是否正在运行。EPA 客户端每 2 分钟检查一次进程是否存在,这由扫描表达式中的数字“2”表示。
  2. 配置策略标签 pre-ldap-epa-label,该标签承载 EPA 扫描策略。
    add authentication policylabel pre-ldap-epa-label -loginSchema LSCHEMA_INT
    注意:
    LSCHEMA_INT 是一个内置的无架构(noschema)架构,这意味着在此步骤中不会向用户显示额外的网页。
  3. 将步骤 1 中配置的策略与步骤 2 中配置的策略标签关联。这完成了身份验证机制。
    bind authentication policylabel pre-ldap-epa-label -policyName pre-ldap-epa-pol -priority 100 -gotoPriorityExpression END
  4. 配置 LDAP 操作和策略。
    add authentication ldapAction ldap-act -serverIP 192.0.2.0 -ldapBase "dc=example,dc=net" -ldapBindDn user1@example.net -ldapBindDnPassword 1.cloud -ldapLoginName samAccountName -groupAttrName memberOf -subAttributeName CN -passwdChange ENABLED

    add authentication Policy ldap-pol -rule true -action ldap-act
  5. 创建启用 SSO 的登录架构。
    add authentication loginSchema ldap-schema -authenticationSchema "/nsconfig/loginschema/LoginSchema/SingleAuth.xml" -SSOCredentials Yes
  6. 配置策略标签 ldap-pol-label,该标签承载 LDAP 身份验证策略。
    add authentication policylabel ldap-pol-label -loginSchema ldap-schema
  7. 将步骤 5 中配置的登录架构绑定到步骤 6 中配置的策略标签。
    bind authentication policylabel ldap-pol-label -policyName ldap-pol -priority 100 -gotoPriorityExpression NEXT
  8. 创建操作以在 LDAP 身份验证后执行 EPA 扫描,并将其与 EPA 扫描策略关联。
    add authentication epaAction post-ldap-epa-action -csecexpr "sys.client_expr (\"proc_2_chrome\")"

    add authentication Policy post-ldap-epa-pol -rule true -action post-ldap-epa-action

    add authentication policylabel post-ldap-epa-label -loginSchema LSCHEMA_INT

    bind authentication policylabel post-ldap-epa-label -policyName post-ldap-epa-pol -priority 100 -gotoPriorityExpression
  9. 总而言之,将策略 pre-ldap-epa-pol 与身份验证虚拟服务器关联,下一步指向策略标签 ldap-pol-label 以执行 EPA 扫描。
    bind authentication vserver user.auth.test -policy pre-ldap-epa-pol -priority 100 -nextFactor ldap-pol-label -gotoPriorityExpression NEXT

    bind authentication policylabel ldap-pol-label -policyName ldap-pol -priority 100 -gotoPriorityExpression NEXT -nextFactor post-ldap-epa-label
注意:
  • 在配置为多个因素的周期性 EPA 中,将考虑具有周期性 EPA 配置的最新因素。
  • 周期性扫描只能使用 EPA 插件运行,而不能在浏览器上运行。
  • 在第一个示例中,EPA 是第一个因素,扫描会查找进程“Firefox”。
  • 如果 EPA 扫描成功,它将导致 LDAP 身份验证,然后是下一个 EPA 扫描,该扫描会查找进程“Chrome”。
  • 当多个周期性扫描配置为不同因素时,最新的扫描优先。在这种情况下,EPA 插件会在登录成功后每 2 分钟扫描一次进程“Chrome”。

在 GUI 上(使用 nFactor Visualizer)

您可以使用 GUI 上的 nFactor visualizer 将高级 EPA 扫描配置为一个因素。在以下示例中,我们使用 LDAP 作为第一个因素,EPA 作为下一个因素。
  1. 为 nFactor 流创建第一个因素。
    • 导航到“安全 > AAA - 应用程序流量 > nFactor Visualizer > nFactor 流”,然后单击“添加”。
    • 单击“+”以添加 nFactor 流。
    • 添加一个因素,然后单击“创建”。
    nFactor 流序列中的 EPA(/en-us/netscaler-gateway/media/nfactor-add-factor.png)
  2. 为第一个因素创建登录架构和策略。
    • 在第一个因素磁贴上,单击“添加架构”以添加登录架构。您可以从下拉列表中选择现有身份验证登录架构,或创建登录架构。
    • 要创建身份验证登录方案,请单击 添加。有关身份验证登录方案的详细信息,请参阅 配置 nFactor 身份验证。
      nFactor 流程序列中的 EPA
    • 单击 添加策略 以添加 LDAP 策略。如果 LDAP 策略已创建,您可以选择该策略。单击 添加。
      注意:
      如果未创建 LDAP 策略,您可以创建一个。单击 选择策略 下拉列表旁边的 添加 按钮。在 操作 字段中,选择 LDAP。有关添加身份验证 LDAP 服务器的详细信息,请参阅 https://support.citrix.com/article/CTX123782。
      nFactor 流程序列中的 EPA
  3. 创建下一个因子并将其连接到第一个因子。
    • 单击绿色或红色的 + 图标,将 EPA 添加为下一个因子。
    • 在 要连接的下一个因子 页面上创建下一个因子。
    • 将 添加方案 部分留空,以便此因子应用默认的无方案。
  4. 为下一个因子添加策略。
    • 单击 添加策略 以添加身份验证后 EPA 策略和操作。
    • 您可以从现有策略列表中选择,也可以创建策略。要从现有策略中选择,请从 选择策略 下拉列表中选择一个策略,提供绑定详细信息,然后单击 添加。
    • 要创建策略,请单击 选择策略 下拉列表旁边的 添加 按钮。
    nFactor 流程序列中的 EPA
  5. nFactor 流程完成后,单击 Done。
  6. 将 nFactor 流程绑定到身份验证服务器。
    • 导航到 安全 AAA - 应用程序流量 > nFactor 可视化工具 > nFactor 流程。
    • 选择 nFactor,然后单击 Bind to Authentication Server。
    nFactor 流程序列中的 EPA

参考