Citrix ADC

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

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

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

重要:

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

reCAPTCHA 配置

reCAPTCHA 配置包括两个部分。

  1. 在 Google 上注册 reCAPTCHA 的配置。
  2. 在 Citrix ADC 设备上进行配置,以便在登录流程中使用 reCAPTCHA。

在 Google 上重新配置 reCAPTCHA

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

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

    注册站点

    注意

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

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

    站点密钥和密钥

    注意

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

在 Citrix ADC 设备上重新配置 reCAPTCHA

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

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

显示 reCAPTCHA 屏幕

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

重要

  • 当 LDAP 配置为第一个因素时,可以使用 SingleAuthCaptcha.xml 登录架构。
  • 可以修改现有架构,具体取决于您的用例和不同的架构。例如,如果您只需要 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
<!--NeedCopy-->

将 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
<!--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 身份验证发生在 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
<!--NeedCopy-->

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

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

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

reCAPTCHA 的用户验证

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

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

    输入凭据

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

    机器人选项

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

    系列图片

    备注:

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

在本文中