ADC
ご意見をお寄せいただきありがとうございました

この記事は機械翻訳されています.免責事項

多要素(nFactor)を使用してCookieを設定する

nFactor カスタムラベルを適用し、認証フローの要素として Cookie を設定できます。カスタムラベルを使用すると、JavaScript を使用してログインスキーマを操作できます。

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 テーマに基づいた新しいポータルテーマです。

nFactor を使用してクッキーを設定する手順

  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 という名前のクッキーを cookieValue という値で設定します。1000 日間有効です。
    • フォームを自動送信します。

    クッキーが作成され、ユーザーはページを操作する必要がありません。

  3. ログインスキーマを作成して、set 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

    このポリシーは常に true と評価され、ユーザは次の要素に移動するか、認証フローを完了します。

  5. ポータルテーマRFWebUI_CustomをNetScaler Gateway仮想サーバーまたはNetScaler AAA仮想サーバーにバインドします。

このコンテンツの正式なバージョンは英語で提供されています。Cloud Software Groupドキュメントのコンテンツの一部は、お客様の利便性のみを目的として機械翻訳されています。Cloud Software Groupは機械翻訳されたコンテンツを管理していないため、誤り、不正確な情報、不適切な用語が含まれる場合があります。英語の原文から他言語への翻訳について、精度、信頼性、適合性、正確性、またはお使いのCloud Software Group製品またはサービスと機械翻訳されたコンテンツとの整合性に関する保証、該当するライセンス契約書またはサービス利用規約、あるいはCloud Software Groupとのその他すべての契約に基づき提供される保証、および製品またはサービスのドキュメントとの一致に関する保証は、明示的か黙示的かを問わず、かかるドキュメントの機械翻訳された範囲には適用されないものとします。機械翻訳されたコンテンツの使用に起因する損害または問題について、Cloud Software Groupは責任を負わないものとします。
多要素(nFactor)を使用してCookieを設定する