Citrix ADC

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

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

基于 SAML 断言属性提取的第一因素 SAML 认证

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

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

    SAML 设置身份验证

  2. Citrix ADC 设备接收 SAML 响应时,它会按照 SAML 操作中配置的方式解析和提取属性。SAML 断言已验证,并移动到第二个因素。

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

    注意

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

  4. 例如,假设 SAML 操作配置为将 UPN 提取为 attribute1,并且 UPN 的值为 john@citrix.com。现在,NO_AUTN 策略规则之一已配置为验证字符串“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. 创建一个策略来检查属性“Citrix.com”并使用操作 NO_AUTN。

    策略无身份验证

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

    添加策略

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

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

    绑定属性销售

  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 流中指定的选项绑定和解除绑定 nFactor 流。

取消绑定 nFactor 流程

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

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

    取消绑定身份验证服务器

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