Citrix ADC

HTTPクッキーの永続性

HTTP Cookieの永続性が構成されている場合、Citrix ADCアプライアンスは最初のクライアント要求のHTTPヘッダーにCookieを設定します。Cookie には、負荷分散アルゴリズムによって選択されたサービスの IP アドレスとポートが含まれます。任意の HTTP 接続と同様に、クライアントはそのクッキーを後続のリクエストに含めます。

Citrix ADCアプライアンスはクッキーを検出すると、クッキーのサービスIPとポートに要求を転送し、接続の永続性を維持します。このタイプの永続性は、HTTP または HTTPS タイプの仮想サーバーで使用できます。このパーシステンスタイプはアプライアンスリソースを消費しないため、永続的なクライアントの数に制限はありません。

注:クライアントの Web ブラウザが Cookie を拒否するように構成されている場合、HTTP Cookie ベースの永続性は機能しません。ウェブサイトでクッキーチェックを設定し、クッキーを適切に保存していないように見えるクライアントに、ウェブサイトで使用する場合は Cookie を有効にする必要があることを警告することをお勧めします。

Citrix ADCアプライアンスが挿入するクッキーの形式は次のとおりです。

NSC_XXXX=<ServiceIP ><ServicePort>

各項目の意味は次のとおりです:

  • NSC_XXXX は、仮想サーバー名から派生した仮想サーバー ID です。
  • サービス IP とサービスポートは、それぞれサービス IP アドレスとサービスポートのエンコードされた表現です。IP アドレスとポートは別々にエンコードされます。

このタイプの永続性のタイムアウト値を設定して、セッションの非アクティブ期間を指定できます。指定された期間接続がアクティブでない場合、Citrix ADCアプライアンスは永続セッションを破棄します。同じクライアントからの後続の接続では、設定された負荷分散方式に基づいて新しいサーバが選択され、新しい永続セッションが確立されます。

注:タイムアウト値を0に設定すると、Citrix ADCアプライアンスは有効期限を指定しませんが、クライアントのブラウザーのシャットダウン時に保存されないセッションCookieを設定します。

デフォルトでは、クライアントブラウザとの互換性を最大限に高めるために、Citrix ADCアプライアンスはHTTPバージョン0のCookieを設定します。(特定の HTTP プロキシのみがバージョン 1 の Cookie を理解します。最も一般的に使用されるブラウザでは理解しません)。 RFC2109 に準拠するために、HTTP バージョン 1 のクッキーを設定するようにアプライアンスを設定できます。HTTPバージョン0のクッキーの場合、アプライアンスはクッキーの有効期限日時を絶対世界協定時刻(GMT)として挿入します。この値は、アプライアンスの現在の GMT 時間とタイムアウト値の合計として計算されます。HTTPバージョン1のクッキーの場合、アプライアンスはHTTPクッキーの「最大経過時間」属性を設定することにより、相対的な有効期限を挿入します。この場合、クライアントのブラウザは実際の有効期限を計算します。

アプライアンスによって挿入された Cookie に基づいてパーシステンスを設定するには、ルールを必要としない永続性タイプの設定を参照してください

HTTP Cookie では、アプライアンスはデフォルトで Cookie がスクリプト不能であり、クライアントアプリケーションに公開してはならないことを示すHTTPOnlyフラグを設定します。したがって、クライアント側のスクリプトは Cookie にアクセスできず、クライアントはクロスサイトスクリプティングの影響を受けません。

ただし、一部のブラウザはHTTPOnlyフラグをサポートしていないため、Cookie を返さない場合があります。その結果、永続性が壊れます。このフラグをサポートしていないブラウザでは、永続性CookieのHTTPOnlyフラグを省略できます。

CLIを使用してHTTPOnlyフラグ設定を変更するには

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

set lb parameter -httpOnlyCookieFlag (ENABLED|DISABLED)
<!--NeedCopy-->

例:

>  set lb parameter -httpOnlyCookieFlag disabled
   Done
> show lb parameter
  Global LB parameters:
       Persistence Cookie HttpOnly Flag: DISABLED
       Use port for hash LB: YES
 Done
<!--NeedCopy-->

GUIを使用してHTTPOnlyフラグの設定を変更するには

  1. [ トラフィック管理] > [ロードバランシング] > [ロードバランシングパラメータの設定] に移動し、[ パーシステンス Cookie HttpOnly ] フラグを選択またはクリアします。

クッキーの暗号化

リリース 10.5 ビルド 55.8 から、任意の SSL 暗号化に加えてクッキーを暗号化できます。

set lb parameter -UseEncryptedPersistenceCookie ENABLED -cookiePassphrase test
<!--NeedCopy-->
  1. [トラフィック管理] > [ロードバランシングパラメータの変更] に移動し、[永続性 Cookie 値のエンコード] を選択し、[Cookie パスフレーズ] にパスフレーズ を入力します。
HTTPクッキーの永続性