nFactor 身份验证的重新验证码配置
NetScaler Gateway 支持一种新的第一类操作 captchaAction
,它可以简化 reCaptcha 配置。由于 reCaptcha 是第一类操作,因此它可以成为其自身的一个因素。您可以在 nFactor 流程中的任何位置注入 reCaptcha。
以前,您还必须编写自定义的 WebAuth 策略,并对 RFWeBUI 进行更改。在引入 captchaAction
之后,您不必修改 JavaScript。
重要:
如果 reCaptcha 与架构中的用户名或密码字段一起使用,则在满足reCaptcha之前,提交按钮将被禁用。
reCaptcha 配置
reCaptcha 配置包括两个部分。
- 在 Google 上注册 reCaptcha 的配置。
- 在 NetScaler 设备上进行配置,以便在登录流程中使用 reCaptcha。
在 Google 上重新配置 reCaptcha
在 https://www.google.com/recaptcha/admin#llist 上注册 reCaptcha 的域。
-
导航到此页面时,将显示以下屏幕。
注意
仅使用 reCaptcha v2。隐形 reCaptcha 仍在预览中。
-
注册域后,将显示“SiteKey”和“SecretKey”。
注意
出于安全原因,“SiteKey”和“SecretKey”将显示为灰色。必须保持“SecretKey”的安全。
在 NetScaler 设备上重新配置 reCaptcha
NetScaler 设备上的 reCaptcha 配置可分为三个部分:
- 显示 reCaptcha 屏幕
- 将 reCaptcha 响应发布到 Google 服务器
- LDAP 配置是用户登录的第二个因素(可选)
显示 reCaptcha 屏幕
登录表单自定义是通过 SingleAuthCaptcha.xml 登录架构完成的。此自定义在身份验证虚拟服务器上指定,并被发送到 UI 以呈现登录表单。内置登录架构 SingleAuthCaptcha.xml 位于 NetScaler 设备上的 /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-->
管理员需要添加相应的虚拟服务器,具体取决于是使用负载平衡虚拟服务器还是 NetScaler Gateway 设备进行访问。如果需要负载平衡虚拟服务器,管理员必须配置以下命令:
add lb vserver lbtest HTTP <IP> <Port> -authentication ON -authenticationHost nssp.aaatm.com
<!--NeedCopy-->
**nssp.aaatm.com**
— 解析为身份验证虚拟服务器。
reCaptcha 的用户验证
配置了前面部分中提到的所有步骤后,必须看到以下 UI。
-
身份验证虚拟服务器加载登录页面后,将显示登录屏幕。在 reCaptcha 完成之前,登录处于禁用状态。
-
选择“I’m not a robot”(我不是机器人)选项。此时将显示 reCaptcha 小组件。
- 在显示完成页面之前,您将浏览一系列 reCaptcha 图像。
-
输入 AD 凭据,选中 I’m not a robot(我不是机器人)复选框,然后单击 Log On(登录)。如果身份验证成功,您将被重定向到所需的资源。
备注:
- 如果 reCaptcha 与 AD 身份验证一起使用,则在 reCaptcha 完成之前,凭据的提交按钮将被禁用。
- reCaptcha 的发生本身就是一个因素。因此,任何后续验证(例如 AD)都必须在 reCaptcha 的
nextfactor
中进行。