Citrix ADC

nFactor 身份验证的 reCaptcha 配置

Citrix Gateway 支持简化 reCaptcha 配置的新的第一类操作 captchaAction。由于 reCaptcha 是第一级操作,它可以是自身的一个因素。可以在 nFactor 流中的任何位置注入 reCaptcha。

以前,您必须编写自定义 WebAuth 策略并对 RFWeb UI 进行更改。随着引入的卡普查操作,您不必修改 JavaScript。

重要

如果 reCaptcha 与架构中的用户名或密码字段一起使用,则提交按钮将被禁用,直到满足 reCaptcha 的条件。

reCaptcha 配置

reCaptcha 配置涉及两个部分。

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

Google 上的 reCaptcha 配置

注册 reCaptcha 的域,网址为 https://www.google.com/recaptcha/admin#llist

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

    本地化后的图片

    注意

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

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

    本地化后的图片

    注意

    出于安全原因,“站点密钥”和“秘密密钥”显示为灰色。“密钥” 必须保存安全。

Citrix ADC 设备上的 reCaptcha 配置

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

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

显示 reCaptcha 屏幕

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

重要

  • 根据您的用例和不同的架构,您可以修改现有架构。例如,如果您只需要 reCaptcha 因素(无用户名或密码)或使用 reCaptcha 的双重身份验证。
  • 如果执行了任何自定义修改或重命名了文件,Citrix 建议将所有登录模式从 /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. 身份验证虚拟服务器加载登录页面后,将显示登录屏幕。登录被禁用,直到 reCaptcha 完成。

    本地化后的图片

  2. 选择我不是一个机器人的选项。将显示 reCaptcha 小组件。

    本地化后的图片

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

    本地化后的图片

    注意

    • 如果 reCaptcha 与 AD 身份验证一起使用,则会禁用凭据的提交按钮,直到 reCaptcha 完成。
    • reCaptcha 发生在其自身的一个因素中。因此,像 AD 这样的任何后续验证都必须发生在 reCaptcha 的“下一个因素”中。

nFactor 身份验证的 reCaptcha 配置