Citrix ADC

在 Citrix ADC nFactor 身份验证中将证书身份验证配置为第一因素,并将 LDAP 配置为第二因素

以下部分介绍第一个因素中的证书身份验证的使用案例,然后在第二个因素中介绍 LDAP。否则,LDAP 和 OTP,如果用户证书不存在于第一个因素中。

使用案例:第一因素的证书身份验证,然后是下一因素的 LDAP

假设管理员在第一个因素中配置证书身份验证的用例。如果证书存在,则在下一个因素中配置 LDAP 身份验证。如果不存在用户证书,请配置 LDAP 和 OTP。

  1. 访问流量管理虚拟服务器后,您将被重定向到登录页面。

  2. 如果客户端设备中存在用户证书,您将显示以下屏幕。

    用户证书

  3. 提交用户证书后,身份验证将进入下一个因素。此因素配置为 LDAP。

    用户证书

  4. 如果第一个因素中不存在用户证书,然后继续 LDAP 和 OTP。你有两个选项可以实现。

    • LDAP 和 OTP 作为单独的登录页面,用户名从 LDAP 因素预填充。

      用户证书

      使用表达式 ${http.req.user.name} 预填充用户名,该表达式从第一个因素中提取用户名。其他字段,例如,用户名和密码的标签也可以自定义。

    • 包含两个密码字段的双身份验证页面。此时将显示用于此特定表示的示例。

      用户证书

注意

此设置也可以通过 Citrix ADC 13.0 及更高版本中提供的 nFactor 可视化工具进行创建。

nFactor 可视化工具 LDAP 和 OTP

使用 CLI 执行以下操作

  1. 配置身份验证虚拟服务器。

    • add lb vserver lbvs1 HTTP 10.217.28.152 80 -AuthenticationHost auth1.nsi-test.com -Authentication ON
    • bind ssl vserver auth_vserver -certkeyName gateway.angiras.lab
  2. 将根证书绑定到虚拟服务器并启用客户端身份验证。

    • bind ssl vserver auth_vserver -certkeyName Root_Cert -CA -ocspCheck Optional
    • set ssl vserver auth_vserver -clientAuth ENABLED -clientCert Optional
  3. 配置身份验证操作和策略。

    • LDAP 身份验证
      • add authentication ldapAction LDAP_Action -serverIP XX.XX.XX.XX -ldapBase "dc=citrix,dc=lab" -ldapBindDn administrator@citrix.lab -ldapBindDnPassword 97526a31c6e2e380f7b3a7e5aa53dc498c5b25e9b84e856b438b1c61624b5aad -encrypted -encryptmethod ENCMTHD_3 -ldapLoginName sAMAccountName -groupAttrName memberOf -subAttributeName cn
      • add authentication Policy LDAP_Pol -rule true -action LDAP_Action
    • 设备管理
      • add authentication ldapAction OTP_manage_Act -serverIP XX.XX.XX.XX -ldapBase "dc=citrix,dc=lab" -ldapBindDn administrator@citrix.lab -ldapBindDnPassword 3e10c1df11a9cab239cff2c9305743da76068600a0c4359603abde04f28676ae -encrypted -encryptmethod ENCMTHD_3 -ldapLoginName sAMAccountName -groupAttrName memberOf -subAttributeName cn -authentication DISABLED -OTPSecret userParameters
      • add authentication Policy manage_OTP -rule TRUE -action OTP_manage_Act
    • OTP 验证
      • add authentication ldapAction LDAP_OTP_Act -serverIP XX.XX.XX.XX -ldapBase "dc=citrix,dc=lab" -ldapBindDn administrator@citrix.lab -ldapBindDnPassword e79a8ebf93fdb7e7438f44c076350c6ec9ad1269ef0528d55640c7c86d3490dc -encrypted -encryptmethod ENCMTHD_3 -ldapLoginName sAMAccountName -searchFilter "userParameters>=#@" -groupAttrName memberOf -subAttributeName cn -authentication DISABLED -OTPSecret userParameters
      • add authentication Policy OTP_Pol -rule true -action LDAP_OTP_Act
    • 证书身份验证
      • add authentication certAction Certificate_Profile -twoFactor ON -userNameField SubjectAltName:PrincipalName
      • add authentication policy Cert_Pol -rule true -action Certificate_Profile
    • 当证书身份验证失败或证书不存在时,没有身份验证的策略。
      • add authentication Policy Cert_Pol_NOAUTH_ -rule true -action NO_AUTHN
  4. 为第二个因素配置策略标签和架构。

    • 设备管理
      • add authentication policylabel manage_otp_label -loginSchema LSCHEMA_INT
      • bind authentication policylabel manage_otp_label -policyName manage_OTP -priority 100 -gotoPriorityExpression END
    • 证书身份验证成功后的 LDAP 身份验证
      • add authentication loginSchema lschema_LDAP_Only -authenticationSchema "/nsconfig/loginschema/LoginSchema/PrefilUserFromExpr.xml"
      • add authentication policylabel LDAP_Only -loginSchema lschema_LDAP_Only
      • bind authentication policylabel LDAP_Only -policyName LDAP_Pol -priority 100 -gotoPriorityExpression END
    • 当证书不存在或证书身份验证失败时,双重身份验证
      • add authentication loginSchema lschema_dual_auth -authenticationSchema "/nsconfig/loginschema/LoginSchema/DualAuth.xml"
      • add authentication policylabel Dual_Auth_Label -loginSchema lschema_dual_auth
      • bind authentication policylabel Dual_Auth_Label -policyName LDAP_Pol -priority 100 -gotoPriorityExpression END
      • bind authentication policylabel Dual_Auth_Label -policyName OTP_Pol -priority 110 -gotoPriorityExpression END
  5. 绑定在上述步骤中创建的策略。

    • bind authentication vserver auth_vserver -policy Manage_OTP -priority 100 -nextFactor manage_otp_label -gotoPriorityExpression NEXT
    • bind authentication vserver auth_vserver -policy Cert_Pol -priority 110 -nextFactor LDAP_Only -gotoPriorityExpression NEXT
    • bind authentication vserver auth_vserver -policy Cert_Pol_NOAUTH_ -priority 120 -nextFactor Dual_Auth_Label -gotoPriorityExpression NEXT

使用 nFactor 可视化工具进行配置

  1. 导航到安全 > AAA-应用程序流量 > nFactor 可视化工具 > nFactor 流,然后单击添加

  2. 单击 + 以添加 nFactor 流。

    添加流

  3. 添加一个因素。您输入的名称是 nFactor 流的名称。单击创建

    为流添加名称

  4. 在第一个因素中,需要架构,因为您绑定不需要架构的策略。

  5. 单击添加策略以添加第一个因素身份验证策略。您可以创建身份验证策略或从列表中选择现有身份验证策略。

    添加本地策略

  6. 添加用于注册检查的策略。在这种情况下,操作将是 NO_AUTHN。

  7. 表达式字段中,键入 HTTP.REQ.COOKIE.VALUE(“NSC_TASS”).EQ(“manageotp”),然后单击创建

    表达式字段

  8. 单击添加策略以创建策略。单击创建并单击添加

    注册策略

  9. 单击绿色 + 以在管理设备之前添加 LDAP 身份验证的下一个因素。

  10. 选择创建因素并键入此因素的名称,然后单击创建

    注册策略

  11. 单击添加架构,然后添加以创建用于管理设备的架构。

    寄存器模式

  12. 选择在之前创建的架构,然后单击添加以创建该架构。

    添加 LDAP 身份验证策略

  13. 单击添加策略,然后选择 LDAP 身份验证策略进行初始 LDAP 身份验证。

    注意

    有关详细信息,请参阅使用配置实用程序配置 LDAP 身份验证

  14. 按照步骤 9 和 10 创建另一个因素来注册设备。

  15. 在这个因素中不需要架构。单击添加策略以添加设备注册策略。(在 CLI 配置步骤 4 点 b 中创建的策略)。

  16. 按照步骤 9 和 10 创建另一个因素来测试注册的设备。

  17. 单击添加策略以添加身份验证策略(在 CLI 配置步骤 4 点 c 中创建的策略)。

    添加 LDAP 身份验证策略

  18. 单击“注册策略”下的绿色 + 以添加证书身份验证策略。

    添加 LDAP 身份验证策略

  19. 单击添加以添加证书策略。

    添加 LDAP 身份验证策略

    注意

    有关客户端证书身份验证的更多信息,请参阅如何在 NetScaler 上启用 SSL 客户端证书身份验证

  20. 单击证书策略旁边的绿色符号以创建 LDAP 身份验证的下一个因素。

    添加 LDAP 因素

  21. 单击添加架构以添加预填充用户名、单一身份验证的登录架构。

    添加 LDAP 身份验证策略

  22. 选择创建的架构,然后单击确定

    选择 LDAP 架构

  23. 单击添加策略并添加 LDAP 身份验证。

    LDAP 政策

  24. 单击证书策略旁边的红色 + 以添加失败案例的下一个因素。失败案例适用于证书身份验证失败或设备上没有证书时。

  25. 选择创建因素并键入因素名称

    LDAP OTP 因素

  26. 单击添加架构以添加双重身份验证架构。

    双身份验证模式

  27. 选择创建的架构并单击确定

    模式双身份验证

  28. 单击添加策略并添加 LDAP 身份验证。

    LDAP 政策

  29. 选择验证策略以验证 OTP,然后单击确定

    LDAP 政策

  30. 单击完成以保存配置。

  31. 选择创建的 nFactor Flow 并将其绑定到身份验证、授权和审核虚拟服务器。单击绑定到身份验证服务器,然后单击创建

    LDAP 政策

    注意

    您可以通过仅显示绑定选项使用 nFactor 流页面绑定和取消绑定 nFactor。

取消绑定 nFactor 流

  1. 在“nFactor 流”页面上,单击汉堡包图标中的显示绑定。

  2. 在“身份验证服务器绑定”页上,选择要取消绑定的身份验证服务器,然后单击“取消绑定”。单击关闭。

    LDAP 政策

在 Citrix ADC nFactor 身份验证中将证书身份验证配置为第一因素,并将 LDAP 配置为第二因素