ADC
感谢您提供反馈

这篇文章已经过机器翻译.放弃

使用 nFactor 设置 cookie

您可以应用 nFactor 自定义标签并将 cookie 设置为身份验证流程的一个因素。通过自定义标签,您可以使用 JavaScript 来操纵登录架构。

要将 cookie 设置为一个因素,您无需向用户显示任何信息,这是在无模式登录的情况下执行的。相反,您必须与用户的浏览器进行交互,以指示登录架构存储所需的数据。加载页面时需要登录架构才能设置 cookie。cookie 使用自定义标签和 JavaScript 代码进行设置。

要实现设置 cookie 的因素,请创建一个名为 cookie.xml 的 XML 文件,将架构存储在 /nsconfig/LoginSchema/ 目录中,其中包含以下内容:

<?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><ID>nsg_cookie</ID><Type>nsg_cookie</Type></Credential> <Label><Text>Logon Type:</Text><Type>Plain</Type></Label> </Requirement> <Requirement> <Credential><ID>loginBtn</ID><Type>none</Type></Credential> <Label><Type>none</Type></Label><Input><Button>Log On</Button></Input> </Requirement> </Requirements> </AuthenticationRequirements> </AuthenticateResponse>

在此 XML 中:

  • 自定义标签 nsg_cookie 用于创建 cookie 并提交表单和表单按钮。
  • RfWebUI_custom 是基于 RfWebUI 主题的新门户主题。
  1. 基于 RfWebUI 主题创建门户主题。

    add vpn portaltheme RfWebUI_custom -basetheme RfWebUI

    此命令在 /var/netscaler/logon/themes/RfWebUI_custom 处为此主题创建一个文件夹

  2. 编辑文件 /var/netscaler/logon/themes/RfWebUI_custom/script.js 并添加以下脚本:

    CTXS.ExtensionAPI.addCustomCredentialHandler({ // The name of the credential, must match the type returned by the server getCredentialTypeName: function () { return "nsg_cookie"; }, // Generate HTML for the custom credential getCredentialTypeMarkup: function (requirements) { var div = $("<div></div>"); $(document).ready(function() { //Set cookie valid for 1000 days var exdays = 1000; var d = new Date(); d.setTime(d.getTime() + (exdays\*24\*60\*60\*1000)); var expires = "expires="+ d.toUTCString(); document.cookie = "NSC_COOKIE_NAME=CookieValue;" + expires + ";path=/"; //Submit form document.getElementById('loginBtn').click(); }); return div; } });

    此代码执行以下操作:

    • 等待浏览器完成加载页面
    • 设置一个名为 NSC_COOKIE_NAME 的 cookie,其值为 CookieValue,有效期为 1000 天
    • 自动提交表单。

    cookie 已创建,用户无需与页面进行交互。

  3. 创建一个登录架构以绑定到表示设置的 cookie 因素的策略标签。

    add authentication loginSchema Cookie_LS -authenticationSchema "/nsconfig/loginschema/cookie.xml"
  4. 创建 NO_AUTHN 身份验证策略以绑定到表示设置的 cookie 因素的策略标签。

    add authentication Policy NO_AUTHN_POL -rule TRUE -action NO_AUTHN

    此策略的评估始终为真,从而将用户移至下一个因素或完成身份验证流程。

  5. 将门户主题 rfwebui_custom 绑定到 NetScaler Gateway 虚拟服务器或 NetScaler AAA 虚拟服务器。

本内容的正式版本为英文版。部分 Cloud Software Group 文档内容采用了机器翻译,仅供您参考。Cloud Software Group 无法控制机器翻译的内容,这些内容可能包含错误、不准确或不合适的语言。对于从英文原文翻译成任何其他语言的内容的准确性、可靠性、适用性或正确性,或者您的 Cloud Software Group 产品或服务沿用了任何机器翻译的内容,我们均不作任何明示或暗示的保证,并且适用的最终用户许可协议或服务条款或者与 Cloud Software Group 签订的任何其他协议(产品或服务与已进行机器翻译的任何文档保持一致)下的任何保证均不适用。对于因使用机器翻译的内容而引起的任何损害或问题,Cloud Software Group 不承担任何责任。
使用 nFactor 设置 cookie