为第一个因素中的用户输入配置域下拉列表,以决定下一因素身份验证流
考虑一个拥有以下三个部门(组)的组织:员工、合作伙伴和供应商。可以将 NetScaler 设备配置为根据用户所属的部门向用户提供登录表单。管理员可以为各个部门配置不同的身份验证流程,如下表所示,作为示例。
组名 | 因数 |
---|---|
员工 | 单个 Auth (用户名/密码) |
合伙人 |
OAuth (重定向到其他 IdP) |
供应商 | SAML(重定向到另一个 IdP) |
下图显示了用户与为前面提到的用例配置的 NetScaler 设备之间的高级别交互。
- 用户登录 Citrix Workspace 并被重定向到身份验证虚拟服务器。
-
NetScaler 提供带有域下拉列表的登录表单。
-
用户从域(分区)下拉列表中选择一个值。
- 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 决定下一因素身份验证流
- 导航到 Security(安全)> AAA-Application Traffic(AAA - 应用程序流量)> nFactor Visualizer(nFactor 可视化工具)> nFactor Flow(nFactor 流程),然后单击 Add(添加)。
- 单击 + 以添加 nFactor 流。
- 添加一个因素。输入的名称是 nFactor 流的名称,然后单击 创建。
-
为基于下拉列表的身份验证流程创建因子。
-
单击 nFactor 块上的 添加架构 。要创建自定义登录架构(本例中为 DivisionDropdown),可以编辑内置的 DomainDropdown.xml 架构。
注意: 您可以使用现有的 DomainDropdown.xml 架构来创建新域。在“选择域”标签中,根据需要添加域名,然后保存 XML 文件。然后,您必须在下拉列表中找到您添加的域。
-
根据从最终用户收到的域创建基于划分的决策块,并为每个决策块创建一个身份验证因子。
-
nFactor 流完成后,将此流绑定到身份验证、授权和审核虚拟服务器。单击 绑定到验证服务器 ,然后单击 创建。
-
选择身份验证虚拟服务器并单击 nFactor Flow。
-
在“选择 nactor Flow”字段下选择 nFactor 流程 ,然后单击 绑定。
取消绑定 nFactor 流程
- 选择 nFactor 流程,然后单击 Show Bindings(显示绑定)。
- 选择身份验证虚拟服务器并单击 Unbind(取消绑定)。