HTTP-Cookie-Persistenz

Wenn die Persistenz von HTTP-Cookies konfiguriert ist, setzt die Citrix ADC Appliance ein Cookie in den HTTP-Headern der anfänglichen Clientanforderung. Das Cookie enthält die IP-Adresse und den Port des vom Lastausgleichsalgorithmus ausgewählten Dienstes. Wie bei jeder HTTP-Verbindung schließt der Client dieses Cookie dann mit allen nachfolgenden Anfragen ein.

Wenn die Citrix ADC Appliance das Cookie erkennt, leitet sie die Anforderung an die Dienst-IP und den Port im Cookie weiter, wobei die Persistenz für die Verbindung beibehalten wird. Sie können diese Art der Persistenz mit virtuellen Servern vom Typ HTTP oder HTTPS verwenden. Dieser Persistenztyp verbraucht keine Appliance-Ressourcen und kann daher eine unbegrenzte Anzahl persistenter Clients aufnehmen.

Hinweis: Wenn der Webbrowser des Clients so konfiguriert ist, dass Cookies abgelehnt werden, funktioniert die Cookie-basierte HTTP-Persistenz nicht. Es kann ratsam sein, eine Cookie-Überprüfung auf der Website zu konfigurieren und Clients zu warnen, die scheinbar nicht richtig speichern, dass sie Cookies für die Website aktivieren müssen, wenn sie sie sie verwenden möchten.

Das Cookie-Format, das von der Citrix ADC Appliance eingefügt wird, lautet:

NSC_XXXX=<ServiceIP ><ServicePort>

Wobei:

  • NSC_XXXX ist die virtuelle Server-ID, die vom Namen des virtuellen Servers abgeleitet wird.
  • ServiceIP und ServicePort sind codierte Darstellungen der Dienst-IP-Adresse bzw. des Dienstports. IP-Adresse und Port werden separat codiert.

Sie können einen Timeoutwert für diesen Persistenztyp festlegen, um einen Inaktivitätszeitraum für die Sitzung anzugeben. Wenn die Verbindung für den angegebenen Zeitraum inaktiv war, verwirft die Citrix ADC Appliance die Persistenzsitzung. Jede nachfolgende Verbindung von demselben Client führt dazu, dass ein neuer Server basierend auf der konfigurierten Lastausgleichsmethode ausgewählt wird und eine neue Persistenzsitzung eingerichtet wird.

Hinweis: Wenn Sie den Timeoutwert auf 0 festlegen, gibt die Citrix ADC Appliance keine Ablaufzeit an, sondern legt ein Sitzungscookie fest, das nicht gespeichert wird, wenn der Browser des Clients heruntergefahren wird.

Standardmäßig setzt die Citrix ADC Appliance HTTP-Cookies der Version 0 für maximale Kompatibilität mit Client-Browsern. (Nur bestimmte HTTP-Proxys verstehen Cookies der Version 1; am häufigsten verwendete Browser nicht.) Sie können die Appliance so konfigurieren, dass HTTP-Cookies der Version 1 eingestellt werden, um die Einhaltung von RFC2109 zu gewährleisten. Bei HTTP-Cookies der Version 0 fügt die Appliance das Ablaufdatum und die Uhrzeit des Cookies als absolute koordinierte Weltzeit (GMT) ein. Er berechnet diesen Wert als Summe der aktuellen GMT-Zeit auf der Appliance und des Timeoutwerts. Bei HTTP-Cookies der Version 1 fügt die Appliance eine relative Ablaufzeit ein, indem sie das Attribut “Max-Age” des HTTP-Cookies setzt. In diesem Fall berechnet der Browser des Clients die tatsächliche Ablaufzeit.

Informationen zum Konfigurieren der Persistenz basierend auf einem von der Appliance eingefügten Cookie finden Sie unterPersistenztypen konfigurieren, die keine Regel erfordern.

Im HTTP-Cookie setzt die Appliance standardmäßig das httponly Flag, um anzuzeigen, dass das Cookie nicht skriptfähig ist und der Clientanwendung nicht offenbart werden sollte. Daher kann ein clientseitiges Skript nicht auf das Cookie zugreifen, und der Client ist nicht anfällig für siteübergreifende Skripterstellung.

Bestimmte Browser unterstützen jedoch das httponly Flag nicht und geben das Cookie daher möglicherweise nicht zurück. Infolgedessen ist die Beharrlichkeit gebrochen. Für Browser, die das Flag nicht unterstützen, können Sie das httponly Flag im Persistenzcookie weglassen.

So ändern Sie die httponly Flag Einstellung mit der Befehlszeilenschnittstelle

Geben Sie an der Eingabeaufforderung Folgendes ein:

set lb parameter -httpOnlyCookieFlag (ENABLED DISABLED)

Beispiel:

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

So ändern Sie die Einstellung httponly mit dem Konfigurationsdienstprogramm

  1. Navigieren Sie zu Traffic Management > Load Balancing > Configure Load Balancing Parameters, und wählen oder deaktivieren Sie das Persistence Cookie HttpOnly Flag.

Verschlüsseln des Cookies

Ab Release 10.5 Build 55.8 können Sie das Cookie zusätzlich zu jeder SSL-Verschlüsselung verschlüsseln.

set lb parameter -UseEncryptedPersistenceCookie ENABLED -cookiePassphrase test
  1. Navigieren Sie zu Traffic Management > Lastausgleichsparameter ändern, wählen Sie Persistenz-Cookie-Werte codieren und geben Sie eine Passphrase in Cookie-Passphrase ein.