ADC

根据 nFactor 身份验证中的 SAML 属性提取配置 SAML,然后配置 LDAP 或证书身份验证

以下部分介绍了 nFactor 身份验证中基于 SAML 属性提取的 LDAP 或证书身份验证的用例。

从 SAML 断言中提取属性的第一要素是 SAML 身份验证

假设管理员在第一个因素中使用从 SAML 断言中提取属性来配置 SAML 身份验证的用例。根据在第一个因素期间提取的属性,您可以配置下一个因素,这些因素可以具有 LDAP 身份验证或证书身份验证。

  1. 访问流量管理虚拟服务器后,您将被重定向到外部 SAML IdP 进行登录(在本例中为 Shibboleth,如图所示)。输入您的登录凭据。如果登录成功,SAML IdP 将发送包含这些属性的 SAML 响应。

    SAML Shibboleth 身份验证

  2. 在 Citrix ADC 设备上收到 SAML 响应时,它会按照 SAML 操作中的配置解析和提取属性。SAML 断言已经过验证,然后转到第二个因素。

  3. 第二个因素配置为具有 2 个 NO_AUTHN 策略的直通(此因素没有登录页面)。根据策略评估,您已配置跳转到 LDAP 身份验证因子或证书身份验证因子。

    注意

    NO_AUTHN 策略意味着,如果为此策略配置的规则评估为 true,则 Citrix ADC 设备不会执行任何身份验证。它指向配置的下一个因素。

  4. 例如,假设 SAML 操作配置为提取 UPN 作为属性 1,而 UPN 的值为 john@citrix.com。现在,其中一个 NO_AUTHN 策略规则配置为验证字符串 “citrix.com” 是否存在。如果策略的评估结果为 true,则可以将跳转配置为具有 LDAP 身份验证的下一个因素。同样,可以将策略配置为将下一个因素作为证书。

  5. 在 SAML 身份验证之后选择 LDAP 因子时,将显示登录页面。

    LDAP 身份验证登录

    注意

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

  6. 下图显示了用于此登录表单表示形式的示例。

    登录表单

    注意

    根据要求,管理员可以修改登录表单的值。

  7. 如果在 SAML 之后选择了证书因素,则会显示选择证书页面。

    选择证书

注意

也可以通过 Citrix ADC 版本 13.0 及更高版本中提供的 nFactor 可视化工具创建安装程序。

nFactor 可视化工具 SAML 和 LDAP

使用 CLI 执行以下操作

  1. 配置流量管理虚拟服务器和验证服务器。

    • add lb vserver lb_ssl SSL 10.217.28.166 443 -persistenceType NONE -cltTimeout 180 -AuthenticationHost auth.nsi-test.com -Authentication ON -authnVsName avn
    • add authentication vserver avn SSL 10.217.28.167 443 -AuthenticationDomain nsi-test.com
  2. 使用绑定到身份验证虚拟服务器的属性提取配置 SAML 策略。

    • add authentication samlAction shibboleth -samlIdPCertName shib-idp-242 -samlSigningCertName nssp-cert -samlRedirectUrl "https://idp.wi.int/idp/profile/SAML2/POST/SSO" -samlUserField samaccountname -samlRejectUnsignedAssertion OFF -samlIssuerName nssp.nsi-test.com -Attribute1 UserPrincipalName –Attribute2 department
    • add authentication Policy saml -rule true -action shibboleth
    • bind authentication vserver avn -policy saml -priority 1 -nextFactor label1 -gotoPriorityExpression NEXT
  3. 配置第二个因素。

    • add authentication loginSchema login2 -authenticationSchema noschema
    • add authentication Policy no_ldap -rule "http.req.user.attribute(1).contains(\"citrix.com\")" -action NO_AUTHN
    • add authentication Policy no_cert -rule "http.req.user.attribute(2).contains(\"Sales\")" -action NO_AUTHN
    • add authentication policylabel label1 -loginSchema login2
    • bind authentication policylabel label1 -policyName no_ldap -priority 1 -gotoPriorityExpression NEXT -nextFactor ldapfactor
    • bind authentication policylabel label1 -policyName no_cert -priority 2 -gotoPriorityExpression NEXT -nextFactor certfactor
  4. 配置 LDAP 身份验证因子。

    • add authentication loginSchema login3 -authenticationSchema login1.xml
    • add authentication policylabel ldapfactor -loginSchema login3
    • bind authentication policylabel ldapfactor -policyName <LDAP Auth Policy> -priority 10 -gotoPriorityExpression END
  5. 配置证书因素身份验证。

    • add authentication loginSchema login4 -authenticationSchema noschema
    • add authentication policylabel certfactor -loginSchema login4
    • bind authentication policylabel certfactor -policyName <Certificate Auth Policy> -priority 10 -gotoPriorityExpression END
  6. 将根证书绑定到虚拟服务器并启用客户端身份验证。

    • bind ssl vserver avn -certkeyName <root cert name>-CA -ocspCheck Optional
    • set ssl vserver avn -clientAuth ENABLED -clientCert Optional

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

  1. 导航到 Security(安全)> AAA-Application Traffic(AAA - 应用程序流量)> nFactor Visualizer(nFactor 可视化工具)> nFactor Flows(nFactor 流程),然后单击 Add(添加)。

  2. 单击 + 以添加 nFactor 流。

    添加流程

  3. 添加一个因素。您输入的名称为 nFactor 流的名称。

    为流程添加名称

  4. SAML 身份验证不需要模式。单击 添加策略 为第一个因素创建 SAML 策略。

    添加架构

    注意: 有关 SAML 作为 SP 的更多信息,请参阅 Citrix ADC 作为 SAML SP

  5. 添加 SAML 策略。

    添加 SAML 策略

  6. 单击绿色 + 添加下一个因子。

    添加下一个因素

  7. 创建一个决策框来检查 SAML 属性。

    选中决策框

  8. 单击 Add Policy(添加策略)以创建策略。

    添加策略

  9. 使用操作 NO_AUTHN 创建一个策略以检查属性 “citrix.com”。

    策略没有身份验证

  10. 选择之前创建的策略,然后单击 添加

    添加策略

  11. 单击绿色 + 号添加第二个策略。

  12. 按照步骤 9 和 10 进行操作。绑定策略以检查属性销售额。

    绑定属性 sales

  13. 要为属性 “citrix.com” 添加第二个因素,请单击 no_ldap 策略旁边的绿色 + 号。

    添加第二个因素

  14. 为 LDAP 身份验证创建下一个因素。

    LDAP 因素

  15. 单击 添加架构 获取第二个因素。

    第二个模式

  16. 使用模式 “PrefilUserFormExpr.xml” 为预填用户名的第二个因素创建身份验证登录架构。

    创建验证架构

  17. 单击 添加策略 以添加 LDAP 策略。

    添加 LDAP 策略

    注意

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

  18. 遵循步骤 13。要为属性销售添加第二个因素,请单击 no_cert 旁边的绿色 + 号。

    不添加证书策略

  19. 为证书身份验证创建下一个因素。

    添加证书身份验证

  20. 按照步骤 15、16 和 17 进行操作。为证书身份验证和添加证书身份验证策略添加架构。

    添加证书策略

    注意

    有关证书身份验证的详细信息,请参阅 配置和绑定客户端证书身份验证策略

  21. 单击 Done(完成)保存配置。

  22. 要将创建的 nFactor 流绑定到身份验证、授权和审核虚拟服务器,请单击 绑定到身份验证服务器 ,然后单击 创建

    绑定身份验证服务器

    注意

    通过仅 显示绑定下的 nFactor Flow 中给出的选项绑定和取消绑 定 nFactor 流。

取消绑定 nFactor 流程

  1. 选择 nFactor 流程,然后单击 Show Bindings(显示绑定)。

  2. 选择身份验证虚拟服务器并单击 Unbind(取消绑定)。

    取消绑定身份验证服务器

根据 nFactor 身份验证中的 SAML 属性提取配置 SAML,然后配置 LDAP 或证书身份验证