Citrix ADC

nFactor 身份验证的 reCaptcha 配置

Citrix Gateway 支持新的一级操作“captchaAction”,该操作可以简化 reCaptcha 配置。由于 reCaptcha 是一级操作,因此它可以是其本身的一个因素。您可以在 nFactor 流中的任何位置注入 reCaptcha。

以前,您必须编写自定义 WebAuth 策略,并对 RfWeb UI 进行更改。推出 captchaAction 后,您无需修改 JavaScript。

重要

如果 reCaptcha 与架构中的用户名或密码字段一起使用,提交按钮将处于禁用状态,直到满足 reCaptcha。

reCaptcha 配置

reCaptcha 配置涉及两个部分。

  1. Google 上用于注册 reCaptcha 的配置。
  2. 在 Citrix ADC 设备上配置使用 reCaptcha 作为登录流程的一部分。

Google 上的 reCaptcha 配置

在以下位置为 reCaptcha 注册域名:https://www.google.com/recaptcha/admin

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

    本地化后的图片

    注意

    仅使用 reCAPTCHA v2。不可见 reCAPTCHA 仍处于测试阶段。

  2. 注册域后,将显示“SiteKey”和“SecretKey”。

    本地化后的图片

    注意

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

Citrix ADC 设备上的 reCaptcha 配置

Citrix ADC 设备上的 reCaptcha 配置可以分为三个部分:

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

显示 reCaptcha 屏幕

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

重要

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

使用 CLI 配置 reCaptcha 的显示

  • 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

将 reCaptcha 响应发布到 Google 服务器

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

验证来自浏览器的 reCaptcha 响应
  • 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

需要使用以下命令来配置是否需要 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

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

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

  • 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

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

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

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

reCaptcha 的用户验证

配置完前面各部分中提到的所有步骤后,您必须看到如下所示的 UI 屏幕截图。

  1. 身份验证虚拟服务器加载登录页面后,将显示登录屏幕。Log On(登录)在 reCaptcha 完成之前处于禁用状态。

    本地化后的图片

  2. 选择“I’m not a robot”(我不是机器人)选项。此时将显示 reCaptcha 小组件。

    本地化后的图片

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

    本地化后的图片

    备注

    • 如果 reCaptcha 与 AD 身份验证一起使用,则在 reCaptcha 完成之前,凭据的“Submit”(提交)按钮将处于禁用状态。
    • reCaptcha 是在其本身的一个因素中发生的。因此,像 AD 这样的任何后续验证都必须在 reCaptcha 的“下一个因素”中进行。
nFactor 身份验证的 reCaptcha 配置