Citrix ADC

HTTPクッキーの永続性

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

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

注:クライアントのWebブラウザがクッキーを拒否するように設定されている場合、HTTPクッキーベースの永続性は機能しません。Web サイトで Cookie チェックを構成し、Cookie を正しく格納していないと思われるクライアントに対して、Web サイトの 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 クッキーでは、アプライアンスはデフォルトで httponly フラグを設定して、クッキーがスクリプト不可能であり、クライアントアプリケーションに公開されるべきではないことを示します。したがって、クライアント側のスクリプトは Cookie にアクセスできず、クライアントはクロスサイトスクリプティングの影響を受けません。

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

コマンドラインインターフェイスを使用して httponly フラグの設定を変更するには

コマンドプロンプトで、次のように入力します。

set lb parameter -httpOnlyCookieFlag (ENABLED DISABLED)

例:

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

構成ユーティリティを使用して httponly フラグの設定を変更するには

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

クッキーの暗号化

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

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

HTTPクッキーの永続性