ADC

nFactor 身份验证的 re-Captcha 配置

NetScaler Gateway 支持一种新的第一类操作 captchaAction,它可以简化 re-Captcha 配置。由于 re-Captcha 是第一类操作,因此它可以成为其自身的一个因素。您可以在 nFactor 流程中的任何位置注入 re-Captcha。

以前,您还必须编写自定义的 WebAuth 策略,并对 RfWebUI 进行更改。在引入 captchaAction 之后,您不必修改 JavaScript。

重要:

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

re-Captcha 配置

re-Captcha 配置包括两个部分。

  1. 在 Google 上注册 re-Captcha 的配置。
  2. 在 NetScaler 设备上进行配置,以便在登录流程中使用 re-Captcha。

在 Google 上重新配置 re-Captcha

https://www.google.com/recaptcha/admin#llist 上注册 re-Captcha 的域。

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

    注册站点

    注意

    仅使用 reCAPTCHA v2。隐形 re-Captcha 仍在预览中。

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

    站点密钥和密钥

    注意

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

在 NetScaler 设备上重新配置 re-Captcha

NetScaler 设备上的 re-Captcha 配置可分为三个部分:

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

显示 re-Captcha 屏幕

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

重要

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

使用 CLI 配置 re-Captcha 的显示

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-->

将 re-Captcha 响应发布到 Google 服务器

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

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

NetScaler 会联系 https://www.google.com/recaptcha/api/siteverify 以验证 Captcha 信息。因此,请确保可以从 NetScaler 访问该站点。

要验证是否可以访问 Google 网站,请运行脚本 curl -vvv https://www.google.com/recaptcha/api/siteverify

需要使用以下命令来配置是否需要 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 身份验证发生在 re-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-->

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

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

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

re-Captcha 的用户验证

配置了前面部分中提到的所有步骤后,必须看到以下 UI。

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

    输入凭据

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

    机器人选项

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

    系列图片

    备注:

    • 如果 re-Captcha 与 AD 身份验证一起使用,则在 re-Captcha 完成之前,凭据的提交按钮将被禁用。
    • re-Captcha 的发生本身就是一个因素。因此,任何后续验证(例如 AD)都必须在 re-Captcha 的 nextfactor 中进行。
nFactor 身份验证的 re-Captcha 配置