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

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

ADCで生成されたCookieに属性を挿入する

Web管理者は、NetScalerアプライアンスによって生成されたCookieに他のCookie属性を挿入できます。これらの追加のCookie属性は、アプリケーションのアクセスパターンに基づいてADCが生成したCookieに必要なポリシーを適用するのに役立ちます。

以下の機能は、ADC が生成した Cookie を使用して永続性を実現します。

  • ロードバランシングCookie パーシステンス
  • 負荷分散グループの Cookie パーシステンス
  • GSLB サイトパーシスタンス
  • コンテンツスイッチングクッキーの永続性

次のパラメータを使用して、ADC が生成した Cookie に他の Cookie 属性を挿入できます。

  • literaladcCookieAttribute: ADC が生成したクッキーに、他のクッキー属性を文字列として追加します。

  • ComputedADCCookieAttribute: ADC ns変数を使用して、クライアントまたはサーバーの属性(ユーザーエージェントのバージョンなど)に基づいて、ADCで生成されたCookieにCookie属性を条件付きで追加します。

リテラル ADC Cookie 属性と計算された ADC Cookie 属性の両方を、ロードバランシングパラメータまたは単一のロードバランシングプロファイルで同時に設定することはできません。

すべてのCookie にはドメインが関連付けられています。クッキーのドメインがユーザーのアドレスバーのウェブサイトドメインと一致する場合、同じサイト(またはファーストパーティ)のコンテキストと見なされます。Cookie に関連付けられたドメインが外部サービスと一致し、ユーザーのアドレスバーにあるウェブサイトと一致しない場合、これはクロスサイト(またはサードパーティ)コンテキストと見なされます。

SameSite 属性は、Cookie をクロスサイトコンテキストに使用できるか、同一サイトコンテキストにのみ使用できるかをブラウザに示します。また、アプリケーションにクロスサイトコンテキストでアクセスする場合は、HTTPS 接続を介してのみアクセスすることができます。詳細については、 RFC6265を参照してください。

2020年2月まで、 SameSiteプロパティはCitrix ADCで明示的に設定されていませんでした。ブラウザはデフォルト値を「なし」とし、Citrix ADCの展開には影響しませんでした。

ただし、Google Chrome 80などの特定のブラウザをアップグレードすると、Cookieのデフォルトのクロスドメイン動作が変更されます。 SameSite 属性は、次のいずれかの値に設定できます。Google Chromeのデフォルト値はLaxに設定されています。

  • なし: 安全な接続でのみクロスサイトコンテキストで Cookie を使用するようブラウザに指示します。
  • Lax: ブラウザが同じサイトコンテキストでのリクエストに Cookie を使用するように指示します。クロスサイトコンテキストでは、GETリクエストなどの安全なHTTPメソッドのみがCookieを使用できます。
  • Strict: 同じサイトのコンテキストでのみCookieを使用します。

Cookie に SameSite 属性がない場合、Google Chrome は SameSite=LAX の機能を引き継ぎます。

他のブラウザーの特定のバージョンでは、SameSite 属性のデフォルト値が Noneに設定されることがあります。一部のブラウザバージョンでは、「SameSite = 「なし」は別の方法で扱うことができます。たとえば、以下のブラウザは「SameSite = none」の付いたCookie を拒否します。

  • Chrome51からChrome66までのChromeのバージョン(両端を含む)
  • Android の UC ブラウザのバージョン 12.13.2 より前のバージョン

ADCで生成されたCookieを構成する

ADC が生成する Cookie 属性を設定するには、以下を実行する必要があります。

  1. 負荷分散仮想サーバーを作成する
  2. LB パラメータまたは LB プロファイルを使用して、負荷分散仮想サーバの ADC Cookie 属性を設定します。
  3. LB プロファイルを使用する場合は、LB プロファイルを負荷分散仮想サーバーに設定します。
  4. Computed ADC Cookie 属性を使用する場合は、関連する書き換えポリシーを設定してください。

LB プロファイルが LB 仮想サーバーにバインドされている場合、グローバル LB パラメータ設定の代わりにプロファイルパラメータ設定が考慮されます。

ADC が生成する Cookie 属性は、次の方法で設定できます。

  • ロードバランシングパラメータの ADC Cookie 属性の設定
  • ロードバランシングプロファイルの ADC Cookie 属性の設定

NetScalerアプライアンスで構成されたすべてのアプリケーションのADC生成Cookieにポリシーを均一に適用するには、グローバルLBパラメータでADC Cookie属性を設定します。

リテラルADCCookie属性 設定を使用すると、ADCで生成されたCookieにCookie属性を無条件に挿入できます。

コマンドプロンプトで入力します:

set lb parameter -LiteralADCCookieAttribute <string>

例:

set lb parameter -LiteralADCCookieAttribute SameSite=None

計算された ADC Cookie 属性設定では 、クライアントまたはサーバーの属性に基づいて、ADC が生成する Cookie に条件付きで Cookie 属性を挿入できます。

コマンドプロンプトで入力します:

set lb parameter -ComputedADCCookieAttribute <ns variable>

例:

add ns variable cookieattribute_var -type "text(100)" -scope transaction set lb parameter -ComputedADCCookieAttributE "$cookieattribute_var" add ns assignment samesiteassign -variable "$cookieattribute_var" -set ""SameSite=None"" add policy expression pol_iphone "(HTTP.REQ.HEADER("User-Agent").CONTAINS("iP") && (HTTP.REQ.HEADER("User-Agent").REGEX_SELECT(re/OS \d+\\_/).REGEX_SELECT(re/\d+/).TYPECAST_NUM_T(DECIMAL).EQ(12).typecast_text_t ALT "false").eq("true"))" add policy expression pol_chrome "(HTTP.REQ.HEADER("User-Agent").CONTAINS("Chrom") && (HTTP.REQ.HEADER("User-Agent").REGEX_SELECT(re/Chrom.*\d+./).REGEX_SELECT(re/\d+/).TYPECAST_NUM_T(DECIMAL).BETWEEN(51,66).typecast_text_t ALT "false").eq("true"))" add rewrite policy exception_samesite_attribute "pol_iphone || pol_chrome " NOREWRITE add rewrite policy append_samesite_attribute true samesiteassign bind rewrite global exception_samesite_attribute 90 110 -type RES_OVERRIDE bind rewrite global append_samesite_attribute 100 110 -type RES_OVERRIDE

GUI を使用して変数を設定する

  1. AppExpert > 変数に移動し、「 追加」をクリックします。
  2. 変数の作成 」ページで、ドロップダウンメニューから「 スコープ」を「トランザクションとしてスコープ** 」を選択し、「テキストとしてタイプ** 」を選択します。

    ADC クッキー用の変数を作成

  3. その他の詳細を入力して、[ 作成] をクリックします。

GUI を使用して課題を作成する

変数を設定したら、値を割り当てるか、代入を作成して変数に対して実行する操作を指定できます。

  1. AppExpert > Assignmentsに移動してAddをクリックします。
  2. [ 割り当ての作成] ページで、詳細を入力し、[ 作成] をクリックします。
  1. [トラフィック管理] > [負荷分散] > [負荷分散パラメータの変更] に移動します。

    change lb parameters

  2. [ 負荷分散パラメータの設定 ] ペインで、要件に基づいていずれかのフィールドに適切な値を入力します。

    • リテラル ADC クッキー属性
    • 計算された ADC クッキー属性

    lb parameters.png を設定

  3. [OK] をクリックします。

NetScalerアプライアンスで構成された特定のアプリケーションにポリシーを適用するには、アプリケーション固有のLB仮想サーバーにバインドされたLBプロファイルのCookie属性パラメータを設定できます。

LBプロファイルの リテラルADCCookie属性 設定を使用すると、仮想サーバーに固有のADC生成CookieにCookie属性を無条件に挿入できます。

コマンドプロンプトで入力します:

add lb profile <profile name> -LiteralADCCookieAttribute <string>

例:

add lb profile LB-Vserver-Profile-1 -LiteralADCCookieAttribute SameSite=None add lb vserver LB-VServer-1 SSL 10.102.148.37 443 -persistenceType COOKIEINSERT -lbprofilename LB-Vserver-Profile-1

LB プロファイルの Computed ADC Cookie 属性設定を使用すると 、クライアントまたはサーバーの属性に基づいて、ADC が生成する Cookie に条件付きで Cookie 属性を挿入できます。次に、この LB プロファイルを LB 仮想サーバーに設定します。

コマンドプロンプトで入力します:

add lb profile <profile name> -ComputedADCCookieAttribute <ns variable>

例:

add ns variable cookieattribute_var -type "text(100)" -scope transaction add ns assignment samesiteassign -variable "$cookieattribute_var" -set ""SameSite=None"" add lb profile LB-Vserver-Profile-1 -ComputedADCCookieAttributE "$cookieattribute_var" add policy expression pol_iphone "(HTTP.REQ.HEADER("User-Agent").CONTAINS("iP") && (HTTP.REQ.HEADER("User-Agent").REGEX_SELECT(re/OS \d+\\_/).REGEX_SELECT(re/\d+/).TYPECAST_NUM_T(DECIMAL).EQ(12).typecast_text_t ALT "false").eq("true"))" add policy expression pol_chrome "(HTTP.REQ.HEADER("User-Agent").CONTAINS("Chrom") && (HTTP.REQ.HEADER("User-Agent").REGEX_SELECT(re/Chrom.*\d+./).REGEX_SELECT(re/\d+/).TYPECAST_NUM_T(DECIMAL).BETWEEN(51,66).typecast_text_t ALT "false").eq("true"))" add rewrite policy exception_samesite_attribute "pol_iphone || pol_chrome " NOREWRITE add rewrite policy append_samesite_attribute true samesiteassign add lb vserver LB-VServer-1 SSL 10.102.148.37 443 -persistenceType COOKIEINSERT -lbprofilename LB-Vserver-Profile-1 bind lb vserver LB-VServer-1 -policyName exception_samesite_attribute -priority 90 -gotoPriorityExpression 110 -type RESPONSE bind lb vserver LB-VServer-1 -policyName append_samesite_attribute -priority 100 -gotoPriorityExpression 110 -type RESPONSE
  1. Traffic Management > Load Balancing > Virtual Serversに移動します。
  2. 仮想サーバを選択し、[ 編集(Edit)] をクリックします。
  3. [ 詳細設定 ] セクションの [ プロファイルの追加] をクリックします。

    lb 仮想サーバー

  4. プロファイル 」セクションで、「 追加 」をクリックして LB プロファイルを作成します。

    プロファイルをすでに作成している場合は、[ LB Profile] ドロップダウンメニューからプロファイルを選択します

    プロファイルを追加する

  5. [ LBプロファイル] ペインで、要件に基づいて、いずれかのフィールドに適切な値を入力します。
  • リテラル ADC クッキー属性
  • 計算された ADC クッキー属性

    LB profile.png のリテラル計算属性

  1. [OK] をクリックします。
  2. 作成したLBプロファイルを、 手順1で作成したLB仮想サーバーに設定します

ns 変数設定の検証

ADC ns 変数が LB パラメータまたは LB プロファイルで適切に設定されていることを確認するには、show lb パラメータまたは show lb profile コマンドを使用します。

次の表は、ns 変数が正しく設定されていない場合のさまざまな警告メッセージとその原因を示しています。

警告メッセージ 理由
NS 変数は設定されていません。text () とタイプして変数にスコープトランザクションを設定してください NS 変数はまだ設定されていません。
設定された NS 変数の範囲はトランザクションではありません。 変数は設定されていますが、スコープが「トランザクション」に設定されていません。
変数のタイプは Text () ではありません。 変数は構成されていますが、タイプが「テキスト」に設定されていません。
NS 変数に設定された値の最大サイズが 255 を超えています。 NS 変数に設定された値は 255 文字を超えています。注: ADCで生成されたCookieには、最大255文字の長さを追加できます。最大長を超える文字は切り捨てられます。

出力例

次の例では、ns 変数が設定されていない場合に警告メッセージが表示されます。

set lb parameter -ComputedADCCookieAttribute "$lbvar" Warning: NS Variable is not configured. Please configure it with type text() and scope transaction Done

警告メッセージは、 show lb parameter 次のコマンドの出力に表示されます。

show lb parameter Global LB parameters: Persistence Cookie HttpOnly Flag: ENABLED Use Encrypted Persistence Cookie: DISABLED Use Port For Hash LB: YES Prefer direct route: YES Retain Service State: OFF Start RR Factor: 0 Skip Maxclient for Monitoring: DISABLED Monitor Connection Close: FIN Use consolidated stats for LeastConnection: YES Allow mac mode based vserver to pick thereturn traffic from services: DISABLED Allow bound service removal: ENABLED TTL for Domain Based Server: 0 secs Citrix ADC Cookie Variable Name: $lbvar(NS Variable is not configured. Please configure it with type text() and scope transaction) Done

次の設定例は、LB 仮想サーバーに対応する GSLB サービスで設定されたサイトパーシスタンスに適用されます。GSLB Cookie にいくつかのクッキー属性を追加するには、以下の設定を行います。

  • LB プロファイル (LB-VServer-Profile-1) に ADC Cookie 属性を設定します。
  • LB プロファイルに「SameSite=None」などのリテラル ADC クッキー属性値を設定します。
  • LB プロファイルを GSLB サービスを表す負荷分散仮想サーバー (LB-VServer-1) に設定します。
add gslb vserver GSLB-VServer-1 SSL -backupLBMethod ROUNDROBIN -tolerance 0 -appflowLog DISABLED add gslb site site1 10.102.148.4 -publicIP 10.102.148.4 add gslb service site1_gsvc1 10.102.148.35 SSL 443 -publicIP 10.102.148.35 -publicPort 443 -maxClient 0 -siteName site1 -sitePersistence HTTPRedirect -sitePrefix ss1 -cltTimeout 180 -svrTimeout 360 -downStateFlush ENABLED bind gslb vserver GSLB-VServer-1 -serviceName site1_gsvc1 bind gslb vserver GSLB-VServer-1 -domainName www.gslb.com -TTL 5 add service service-1 10.102.84.140 SSL 443 add lb profile LB-Vserver-Profile-1 -LiteralADCCookieAttribute SameSite=None add lb vserver LB-VServer-1 SSL 10.102.148.37 443 -persistenceType COOKIEINSERT -lbprofilename LB-Vserver-Profile-1 bind lb vserver LB-VServer-1 service-1

また、計算された ADC Cookie 属性を使用して Cookie 属性を条件付きで挿入することもできます。

次の設定例は、複数のアプリケーションがコンテンツスイッチング仮想サーバーの背後でホストされている場合に適用されます。すべてのアプリケーションに同じポリシーを適用するには、次のように、書き換えポリシーを LB 仮想サーバーではなくコンテンツスイッチング仮想サーバーにバインドします。

  • LB パラメータに ADC Cookie 属性を設定します。

    注:

    ADC Cookie 属性は LB プロファイルでも設定できます。

  • タイプを [テキスト] に、[スコープ] を [トランザクション] に設定した ns 変数 (cookieattribute_var) を設定します。
  • ns 変数を使用して、計算された ADC Cookie 属性をグローバル LB パラメータに設定します。
  • Cookie 属性を挿入するためのリライトポリシー (exception_samesite_attribute と append_samesite_attribute) をコンテンツスイッチング仮想サーバーに設定します。
add ns variable cookieattribute_var -type "text(100)" -scope transaction set lb parameter -ComputedADCCookieAttributE "$cookieattribute_var" add ns assignment samesiteassign -variable "$cookieattribute_var" -set ""SameSite=None"" add policy expression pol_iphone "(HTTP.REQ.HEADER("User-Agent").CONTAINS("iP") && (HTTP.REQ.HEADER("User-Agent").REGEX_SELECT(re/OS \d+\\_/).REGEX_SELECT(re/\d+/).TYPECAST_NUM_T(DECIMAL).EQ(12).typecast_text_t ALT "false").eq("true"))" add policy expression pol_chrome "(HTTP.REQ.HEADER("User-Agent").CONTAINS("Chrom") && (HTTP.REQ.HEADER("User-Agent").REGEX_SELECT(re/Chrom.*\d+./).REGEX_SELECT(re/\d+/).TYPECAST_NUM_T(DECIMAL).BETWEEN(51,66).typecast_text_t ALT "false").eq("true"))" add rewrite policy exception_samesite_attribute "pol_iphone || pol_chrome " NOREWRITE add rewrite policy append_samesite_attribute true samesiteassign add lb vserver LB-VServer-1 SSL 10.102.148.35 443 add lb vserver LB-VServer-2 SSL 10.102.148.36 443 add cs vserver CS-VServer-1 SSL 10.102.148.42 443 -persistenceType COOKIEINSERT add cs action act1 -targetLBVserver v1 add cs action act2 -targetLBVserver v2 add cs policy CS-policy-1 -rule "HTTP.REQ.URL.CONTAINS("file1.html")" -action act1 add cs policy CS-policy-2 -rule "HTTP.REQ.URL.CONTAINS("file2.html")" -action act2 bind cs vserver CS-VServer-1 -policyName CS-policy-1 -priority 1 bind cs vserver CS-VServer-1 -policyName CS-policy-2 -priority 2 bind cs vserver -policyname exception_samesite_attribute 90 110 -type RES_OVERRIDE bind cs vserver -policyname append_samesite_attribute 100 110 -type RES_OVERRIDE
このコンテンツの正式なバージョンは英語で提供されています。Cloud Software Groupドキュメントのコンテンツの一部は、お客様の利便性のみを目的として機械翻訳されています。Cloud Software Groupは機械翻訳されたコンテンツを管理していないため、誤り、不正確な情報、不適切な用語が含まれる場合があります。英語の原文から他言語への翻訳について、精度、信頼性、適合性、正確性、またはお使いのCloud Software Group製品またはサービスと機械翻訳されたコンテンツとの整合性に関する保証、該当するライセンス契約書またはサービス利用規約、あるいはCloud Software Groupとのその他すべての契約に基づき提供される保証、および製品またはサービスのドキュメントとの一致に関する保証は、明示的か黙示的かを問わず、かかるドキュメントの機械翻訳された範囲には適用されないものとします。機械翻訳されたコンテンツの使用に起因する損害または問題について、Cloud Software Groupは責任を負わないものとします。
ADCで生成されたCookieに属性を挿入する