ADC

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

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

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

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

Dropdown-1

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

    Dropdown-2

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

  4. NetScaler 根据用户输入的下拉列表提供登录表单。

为第一个因素中的用户输入配置域下拉列表,以便使用 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. 为基于下拉列表的身份验证流程创建因子。

    创建一个因子

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

    添加架构

    注意: 您可以使用现有的 DomainDropdown.xml 架构来创建新域。在“选择域”标签中,根据需要添加域名,然后保存 XML 文件。然后,您必须在下拉列表中找到您添加的域。

    自定义域名

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

    创建分区块

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

    将流程绑定到虚拟服务器

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

    选择服务器

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

    将流程绑定到服务器

取消绑定 nFactor 流程

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