Citrix ADC

为第一个因素中的用户输入配置域下拉列表,以决定下一因素身份验证流

考虑一个拥有以下三个部门(组)的组织:员工、合作伙伴和供应商。可以将 Citrix ADC 设备配置为根据用户所属的部门向用户提供登录表单。管理员可以为各个部门配置不同的身份验证流程,如下表所示,作为示例。

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

下图显示了用户与为前面提到的用例配置的 Citrix ADC 设备之间的高级交互。

Dropdown-1

  1. 用户登录 Citrix Workspace 并被重定向到身份验证虚拟服务器。
  2. Citrix ADC 提供带有域下拉列表的登录表单。

    Dropdown-2

  3. 用户从域(分区)下拉列表中选择一个值。

  4. Citrix ADC 根据用户对下拉列表的输入提供了登录表单。

为第一个因素中的用户输入配置域下拉列表,以便使用 CLI 决定下一因素身份验证流

必备条件

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

为域下拉列表值配置身份验证虚拟服务器

注意:

在这种情况下,您可以修改 OnlyDomainDropdown.xml 模式以创建自定义登录模式 (divisionDropdown.xml)。

创建第一个因素作为 NO_AUTHN

add authentication Policy noauth_division_select_pol -rule true -action NO_AUTHN

使用策略标签为员工、合作伙伴、供应商部门/部门创建下一

add authentication loginSchema lschema_division_dropdown -authenticationSchema "/nsconfig/loginschema/devisionDropdown.xml"

add authentication policylabel plabel_noauth_Employee_Partner_Vendor -loginSchema lschema_division_dropdown

add authentication Policy noauth_Employee_pol -rule "AAA.LOGIN.DOMAIN.EQ("Employee")" -action NO_AUTHN

add authentication Policy noauth_Partner_pol -rule "AAA.LOGIN.DOMAIN.EQ("Partner")" -action NO_AUTHN

add authentication Policy noauth_Vendor_pol -rule "AAA.LOGIN.DOMAIN.EQ("Vendor")" -action

创建单个身份验证策略因素(使用 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 lschema_noschema

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.local

add authentication Policy oauth_sp_pol -rule true -action oauth_sp_act

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

创建用于重定向到 SAML IdP 的 SAML 策略

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 saml_sp_act

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

将之前创建的三个策略因素绑定到 PLABEL_NOAUTH_LOYE_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 plabel_oauth_Partner

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 noauth_division_select_pol -priority 100 -nextFactor plabel_noauth_Employee_Partner_Vendor -gotoPriorityExpression NEXT

为第一个因素中的用户输入配置域下拉列表,以便使用 GUI 决定下一因素身份验证流

  1. 导航到 Security(安全)> AAA-Application Traffic(AAA - 应用程序流量)> nFactor Visualizer(nFactor 可视化工具)> nFactor Flow(nFactor 流程),然后单击 Add(添加)。
  2. 单击 + 以添加 nFactor 流。
  3. 添加一个因素。输入的名称是 nFactor 流的名称,然后单击 创建
  4. 创建基于下拉菜单的身份验证流程的因素。

    下拉菜单 -3

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

    下拉菜单 -4

  6. 根据从最终用户收到的域创建基于部门的决策块,并为每个决策块创建身份验证因素。

    下拉菜单 -5

  7. nFactor 流完成后,将此流绑定到身份验证、授权和审核虚拟服务器。单击 绑定到验证服务器 ,然后单击 创建

    下拉菜单 -6

  8. 选择身份验证虚拟服务器并单击 nFactor Flow

    下拉菜单 7

  9. 在 “选择 nactor Flow” 字段下选择 nFactor 流程 ,然后单击 绑定

    下拉菜单 8

取消绑定 nFactor 流程

  1. 选择 nFactor 流程,然后单击 Show Bindings(显示绑定)。
  2. 选择身份验证虚拟服务器并单击 Unbind(取消绑定)。
为第一个因素中的用户输入配置域下拉列表,以决定下一因素身份验证流