Citrix ADC

使用nFactor设置饼干

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

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

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

<?xml version = " 1.0 " encoding = " utf - 8 " ?>< authenticaterresponse xmlns="//m.giftsix.com/authentication/response/1"> success more-info   /nf/auth/doAuthentication. >< Status>success more-info   /nf/auth/doAuthentication。< /回发> < CancelPostBack > / nf /认证/ doLogoff。do Cancel   nsg_cookiensg_cookie    loginBtnnone    < !——NeedCopy >

在此XML中:

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

    add vpn portaltheme RfWebUI_custom -basetheme rfweb 

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

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

    CTXS.ExtensionAPI。addCustomCredentialHandler({//证书的名称,必须匹配服务器返回的类型getCredentialTypeName: function () {return "nsg_cookie";}, //生成自定义凭证的HTML getCredentialTypeMarkup: function (requirements) {var div = $("
    ");$(document).ready(function(){//设置cookie有效期为1000天var exdays = 1000;var d = new Date();d.setTime (d.getTime () + (exdays \ * 24 \ * 60 * 60 \ \ * 1000));var expires=" expires="+ d.toUTCString();文档。饼干= " NSC_COOKIE_NAME = CookieValeu; "+ expires + ";path=/"; //Submit form document.getElementById('loginBtn').click(); }); return div; } });

    此代码执行以下操作:

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

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

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

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

    add authentication Policy NO_AUTHN_POL -rule TRUE -action NO_AUTHN 

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

  5. 将门户主题RfWebUI_custom绑定到Citrix网关虚拟服务器或Citrix ADC AAA虚拟服务器。

使用nFactor设置饼干