在 NetScaler nFactor 系统中将 EULA 配置为身份验证因子
下图显示了最终用户使用 EULA 的登录流程。在此流程中,现有的第一个因素将移至 EULA 之后。EULA 成为第一个/虚拟服务器配置文件,之前的第一个因素成为第二个因素。
nFactor 流程演示
也可以通过 ADC 13.0 及更高版本中的 nFactor 可视化工具创建该设置。
使用 CLI 进行配置
- 将 eula.xml 复制到 NetScaler 上的 /nsconfig/LoginSchema。本示例中使用的登录架构存在于 NetScaler 版本 13.0 中,无需单独创建。有关登录架构的详细信息,请参阅本页的最后一部分。
-
为 EULA 添加登录架构。
add authentication loginSchema eulaschema -authenticationSchema eula.xml add authentication loginSchemaPolicy eula_schema -rule true -action eulaschema bind authentication vserver auth -policy eula_schema -priority 5 <!--NeedCopy-->
-
添加身份验证因素作为二级因素。
add authentication loginSchema single_auth -authenticationSchema "LoginSchema/SingleAuth.xml" add authentication policylabel single_factor -loginSchema single_auth bind authentication policylabel single_factor -policyName ldap-adv -priority 5 <!--NeedCopy-->
-
在虚拟服务器级联中添加无身份验证策略。
add authentication Policy noauth_pol -rule "http.req.url.contains("/nf/auth/doAuthentication.do")" -action NO_AUTHN bind authentication vserver auth -policy noauth_pol -priority 1 -nextFactor single_factor -gotoPriorityExpression NEXT <!--NeedCopy-->
以下屏幕截图是作为一个因素在虚拟服务器上配置的 EULA。
使用 nFactor 可视化工具进行配置
-
导航到安全 > AAA 应用程序流量 > nFactor Visualizer > nFactor Flow ,然后单击添加。
-
单击 + 符号以添加 nFactor 流程。
-
添加一个因素。您输入的名称为 nFactor 流的名称。
-
单击 Add Schema(添加架构)为第一个因素添加架构,然后单击 Add(添加)。
-
通过选择 eula.xml 登录架构来创建 EULA_Schema。
-
选择第一个因素的架构,即 EULA。
-
单击 Add Policy(添加策略)为 NO_AUTHN 创建身份验证策略,然后单击 Add(添加)。
-
单击绿色 + 符号添加下一个因素,即 single_auth。
-
再次单击 Add Schema(添加架构)为第二个因素添加架构,然后单击 Add(添加)。
-
通过选择 Single_Auth.xml 登录架构,然后单击 Create(创建)来创建 single_auth 架构。
-
单击 Add Policy(添加策略)以选择 LDAP 身份验证策略,然后单击 Add(添加)。
有关创建 LDAP 验证的详细信息,请参阅 配置 LDAP 身份验证。
-
单击 Done(完成)。配置将保存。
-
单击 Bind to Authentication Server(绑定到身份验证服务器),选择刚创建的 nFactor 以将流程绑定到身份验证、授权和审核虚拟服务器,然后单击 Create(创建)。
注意: 请仅通过 Show Bindings(显示绑定)下的 nFactor 流程中给定的选项绑定和取消绑定 nFactor 流程。
取消绑定 nFactor 流程
-
选择 nFactor 流程,然后单击 Show Bindings(显示绑定)。
-
选择 nFactor 流程绑定到的身份验证虚拟服务器,然后单击 Unbind(取消绑定)。
本示例中使用的登录架构
从 Web 浏览器中复制文本时,某些引号的呈现方式有所差别。建议您在文本编辑器中复制该架构以将引号规范化。
注意: 此登录架构存在于 NetScaler 版本 13.0 中,无需单独创建。
<?xml version="1.0" encoding="UTF-8"?>
<AuthenticateResponse xmlns="http://citrix.com/authentication/response/1">
<Status>success</Status>
<Result>more-info</Result>
<StateContext></StateContext>
<AuthenticationRequirements>
<PostBack>/nf/auth/doAuthentication.do</PostBack>
<CancelPostBack>/nf/auth/doLogoff.do</CancelPostBack>
<CancelButtonText>Cancel</CancelButtonText>
<Requirements>
<Requirement><Credential><Type>none</Type></Credential><Label><Text>End User License Agreement</Text><Type>heading</Type></Label><Input /></Requirement>
<Requirement><Credential><Type>none</Type></Credential><Label><Text>Protecting Gateway's information and information systems is the responsibility of every user of Gateway.</Text><Type>plain</Type></Label><Input /></Requirement>
<Requirement><Credential><Type>none</Type></Credential><Label><Text>This computer, including any devices attached to this computer and the information systems accessed from this point contain information which is confidential to Organization. Your activities and use of these facilities are monitored and recorded. They are not private and may be reviewed at any time. Unauthorised or inappropriate use of Organization's Information Technology facilities, including but not limited to Electronic Mail and Internet services, is against company policy and can lead to disciplinary outcomes, including termination and/or legal actions. Use of these facilities confirms that you accept the conditions detailed in Organization's Group Information Security Policy and Organization's Code of Conduct.</Text><Type>plain</Type></Label><Input /></Requirement>
<Requirement><Credential><Type>none</Type></Credential><Label><Text>Use of these facilities confirms that you accept the conditions detailed in Organization's Group Information Security Policy and Organization's Code of Conduct.</Text><Type>plain</Type></Label><Input /></Requirement>
<Requirement><Credential><ID>loginBtn</ID><Type>none</Type></Credential><Label><Type>none</Type></Label><Input><Button>Continue</Button></Input></Requirement>
</Requirements>
</AuthenticationRequirements>
</AuthenticateResponse>
<!--NeedCopy-->