Citrix ADC

首先配置基于电子邮件 ID(或用户名)输入的群组提取,以决定下一因素身份验证流程

考虑一个拥有以下三个部门(组)的组织:员工、合作伙伴和供应商。可以将 Citrix ADC 设备配置为根据电子邮件 ID 或用户在第一因素登录表单中提供的 AD 用户名提取用户组。基于用户所属的组,Citrix ADC 提供了身份验证方法(LDAP、SAML、OAuth 等),如下表所示,作为示例。

组名 因数
员工 单一身份验证(用户名/密码)
合伙人 OAuth(重定向到不同的 IdP)
供应商 SAML(重定向到不同的 IdP)

下图显示了用户与 Citrix ADC 设备之间对于上述用例的高级交互。

Email-1

  1. 用户登录 Citrix Workspace 并被重定向到身份验证虚拟服务器。
  2. Citrix ADC 提供了一个登录表单以输入电子邮件 ID(或用户名)。

    Email-2

  3. 用户输入电子邮件 ID(或用户名)。
  4. Citrix ADC 根据使用提供的电子邮件 ID(或用户名)提取的群组提供登录表单。

首先配置基于输入的组提取电子邮件 ID(或用户名),以便使用 CLI 决定下一因素身份验证

必备条件

配置了启用身份验证的负载平衡虚拟服务器。

为基于电子邮件的群组提取配置身份验证

注意

在这种情况下,您可以修改 OnlyUsername.xml 架构以创建自定义登录架构(email OnLylSchema)。

使用在上一步中创建的电子邮件登录模式创建登录模式策略并绑定到身份验证虚拟服务器

add authentication loginSchema lschema_only_email -authenticationSchema "/nsconfig/loginschema/only_email.xml"

add authentication loginSchemaPolicy lschema_only_email_pol -rule true -action lschema_only_email

bind authentication vserver abs_sp_auth_vs -policy lschema_only_email_pol -priority 100 -gotoPriorityExpression END

为组提取创建 LDAP 身份验证策略

注意

LDaPLOGINName 是基于电子邮件 ID 的登录的 “邮件”,而-ldaPloginName 是 “samAccountName” 对于基于用户名的登录。

add authentication ldapAction aaa_local_grp_extraction -serverIP 90.1.187.40 -ldapBase "OU=ABSOU,dc=aaa,dc=local" -ldapBindDn administrator@aaa.local -ldapBindDnPassword xxxx -ldapLoginName mail -groupAttrName memberOf -subAttributeName CN -secType TLS -authentication DISABLED

add authentication Policy aaa_local_grp_extraction_pol -rule true -action aaa_local_grp_extraction

提取的基于组的策略配置

使用策略标签为员工、合作伙伴、供应商组创建下一个因素

add authentication loginSchema lschema_noschema -authenticationSchema noschema
add authentication policylabel plabel_noauth_Employee_Partner_Vendor -loginSchema lschema_noschema

add authentication Policy noauth_Employee_pol -rule "AAA.USER.IS_MEMBER_OF(\"Employee\")" -action NO_AUTHN
add authentication Policy noauth_Partner_pol -rule "AAA.USER.IS_MEMBER_OF(\"Partner\")" -action NO_AUTHN
add authentication Policy noauth_Vendor_pol -rule "AAA.USER.IS_MEMBER_OF(\"Vendor\")" -action NO_AUTHN

创建单个身份验证策略因子(使用 LDAP 作为此配置的示例)

add authentication loginSchema lschema_singleauth_Employee -authenticationSchema "/nsconfig/loginschema/LoginSchema/SingleAuth.xml"

add authentication policylabel plabel_singleauth_Employee -loginSchema lschema_singleauth_Employee

add authentication ldapAction aaa_local_pwd_act -serverIP 90.196.17.40 -ldapBase "OU=ABSOU,dc=aaa,dc=local" -ldapBindDn administrator@aaa.local -ldapBindDnPassword xxxx -ldapLoginName samAccountName -groupAttrName memberOf -subAttributeName CN -secType TLS -ssoNameAttribute userPrincipalName -passwdChange ENABLED -nestedGroupExtraction ON -maxNestingLevel 7 -groupNameIdentifier sAMAccountName -groupSearchAttribute memberOf -groupSearchSubAttribute CN -defaultAuthenticationGroup ldapDefaultAuthGroup -Attribute1 userPrincipalName -Attribute2 mail

add authentication Policy aaa_local_pwd_pol -rule true -action aaa_local_pwd_act

bind authentication policylabel plabel_singleauth_Employee -policyName aaa_local_pwd_pol -priority 100 -gotoPriorityExpression NEXT

创建 OAuth 策略以重定向到 OAuth IdP

add authentication policylabel plabel_oauth_Partner -loginSchema

add authentication OAuthAction oauth_sp_act -authorizationEndpoint "https://absauthidp.aaa.local/oauth/idp/login?response_type=code&scope=openid&client_id=netscaler" -tokenEndpoint "https://absauthidp.aaa.local/oauth/idp/token" -clientID netscaler -clientSecret 1e1155e92ad926dea4fa05a46e1dfa7e10063ad6fe2086394e9e435b19b28a5e -encrypted -encryptmethod ENCMTHD_3 -kek -suffix 2021_02_18_11_22 -CertEndpoint "https://absauthidp.aaa.local/oauth/idp/certs" -audience absauthidp.aaa.

add authentication Policy oauth_sp_pol -rule true -action

bind authentication policylabel plabel_oauth_Partner -policyName oauth_sp_pol -priority 100 -gotoPriorityExpression NEXT

创建 SAML 策略以重定向到 SAML IdP

add authentication policylabel plabel_saml_Vendor -loginSchema lschema_noschema

add authentication samlAction saml_sp_act -samlIdPCertName server_certkey -samlSigningCertName server_certkey -samlRedirectUrl "https://absauthidp.aaa.local/saml/login" -samlUserField nameid -samlIssuerName "https://abssamlissuer.aaa.local"

add authentication Policy saml_sp_pol -rule true -action

bind authentication policylabel plabel_saml_Vendor -policyName saml_sp_pol -priority 100 -gotoPriorityExpression NEXT

将所有三个策略因素绑定到 PLABEL_NOAUTH_雇员_Partner_供应商

bind authentication policylabel plabel_noauth_Employee_Partner_Vendor -policyName noauth_Employee_pol -priority 100 -gotoPriorityExpression NEXT -nextFactor plabel_singleauth_Employee

bind authentication policylabel plabel_noauth_Employee_Partner_Vendor -policyName noauth_Partner_pol -priority 110 -gotoPriorityExpression NEXT -nextFactor

bind authentication policylabel plabel_noauth_Employee_Partner_Vendor -policyName noauth_Vendor_pol -priority 120 -gotoPriorityExpression NEXT -nextFactor plabel_saml_Vendor

将基于组的策略标签绑定为 NextFactor,用于组提取身份验证

bind authentication vserver abs_sp_auth_vs -policy aaa_local_grp_extraction_pol -priority 100 -nextFactor plabel_noauth_Employee_Partner_Vendor -gotoPriorityExpression NEXT

首先配置基于电子邮件 ID(或用户名)输入的群组提取,以便使用 nFactor Visualizer 决定下一因素身份验证

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

  3. 使用 EmailOnlyLoginSchema 使用 LDAP 组提取策略添加用于组提取的因素。您输入的名称为 nFactor 流的名称。单击创建

    电子邮件 -3

  4. 单击 nFactor 块上的 添加架构 。要创建自定义登录架构(在本例中为 email OnlySchema),可以编辑内置的 OnlyUsername.xml 架构。

    电子邮件 -4

  5. 使用创建的登录模式文件创建身份验证登录架构。

    电子邮件 -5

  6. 身份验证登录架构列表中选择登录 架构,然 后单击确定

    电子邮件 -6

  7. 创建 LDAP 服务器以进行组提取,禁用身份验证以用于创建身份验证策略。有关创建 LDAP 身份验证的详细信息,请参阅 配置 LDAP 身份验证

    电子邮件 -7

  8. 单击 其他设置 为 LDAP 服务器指定以下值。 LDAP 登录名 — 邮件;组属性- memberOf; 子属性名称- cn

    Email-8

  9. 单击 添加策略 ,然后单击 添加 以创建组提取身份验证策略。

    电子邮件 -9

  10. 单击 EmailBaseBaseGroupDroups 区块上的绿色 + 号,为下一个因素创建决策块。

    电子邮件 -10

  11. 要连接的下一个因素 屏幕上,选择 创建决策块,输入决策块的名称,然后单击 创建

    电子邮件 -11

  12. 为各自决策块的每个目标组创建身份验证策略。例如,AD 组 “员工” 的基于组的身份验证因素。

    电子邮件 -12

  13. 下图显示了创建所有决策块后的 nFactor 流程。

    电子邮件 -13

  14. 创建所有决策块后,将所有基于组的决策块绑定到相应的身份验证因素。例如,员工组可以具有用户名和密码身份验证因素。

    电子邮件 -14

  15. 从身份验证登录模式下拉菜单中选择登录模式,然后单击 添加

    电子邮件 -15

  16. 选择身份验证策略,然后单击 添加

    电子邮件 -16

  17. 一旦所有基于组的决策块都以身份验证策略作为因素配置,nFactor 流程如下图所示。

    电子邮件 -17

  18. 单击 绑定到验证服务器 ,然后单击 创建

    电子邮件 -18

  19. 选择身份验证虚拟服务器,然后单击 nFactor Flow。

    电子邮件 -19

  20. 在 “选择 nactor Flow” 字段下选 择 nFactor 流程 ,然后单击 添加

    电子邮件 -20

  21. 将此流程绑定到身份验证、授权和审核虚拟服务器。

    电子邮件 -21

解绑 nFactor

  1. 选择 nFactor 流程,然后单击 Show Bindings(显示绑定)。
  2. 选择身份验证虚拟服务器并单击 Unbind(取消绑定)。
首先配置基于电子邮件 ID(或用户名)输入的群组提取,以决定下一因素身份验证流程