Citrix ADC

Einfügen von Cookie-Attributen zu ADC-generierten Cookies

Die Webadministratoren können andere Cookie-Attribute in die von der Citrix ADC Appliance generierten Cookies einfügen. Diese zusätzlichen Cookie-Attribute helfen bei der Durchsetzung der erforderlichen Richtlinien für die von ADC generierten Cookies basierend auf dem Anwendungszugriffsmuster.

Die folgenden Funktionen verwenden die vom ADC generierten Cookies, um Persistenz zu erreichen.

  • Load Balancing-Cookie-Persistenz
  • Ausgleichsgruppen-Cookie-Persistenz
  • GSLB-Standort-Beharrlichkeit
  • Cookie-Persistenz beim Content Switching

Sie können mit den folgenden Parametern andere Cookie-Attribute in die von ADC generierten Cookies einfügen:

  • literalAdcCookieAttribute:Hängen Sie andere Cookie-Attribute als String an das von ADC generierte Cookie an.

  • ComputedADCCookieAttribute:Verwenden Sie eine ADC ns-Variable, um Cookie-Attribute an das von ADC generierte Cookie anzuhängen, basierend auf den Client- oder Serverattributen, z. B.

Hinweis:

Sie können sowohl das literale ADC-Cookie-Attribut als auch das berechnete ADC-Cookie-Attribut nicht gleichzeitig für den Lastausgleichsparameter oder in einem einzigen Lastausgleichsprofil konfigurieren.

Mit jedem Cookie ist eine Domain verknüpft. Wenn die Domäne eines Cookies mit der Website-Domain in der Adressleiste des Benutzers übereinstimmt, wird dies als Kontext derselben Site (oder Erstanbieter) betrachtet. Wenn die mit einem Cookie verknüpfte Domain mit einem externen Dienst und nicht mit der Website in der Adressleiste des Benutzers übereinstimmt, gilt dies als standortübergreifender Kontext (oder Drittanbieter).

DasSameSite-Attributgibt dem Browser an, ob das Cookie für standortübergreifenden Kontext oder nur für den gleichen Site-Kontext verwendet werden kann. Wenn eine Anwendung beabsichtigt, im standortübergreifenden Kontext zugegriffen zu werden, kann sie dies nur über die HTTPS-Verbindung tun. Weitere Informationen finden Sie unterRFC6265.

Bis Februar 2020 wurde dieSameSite-Eigenschaftnicht explizit in Citrix ADC festgelegt. Der Browser nahm den Standardwert “Keine” an und hat keine Auswirkungen auf die Citrix ADC Bereitstellungen.

Bei einem Upgrade bestimmter Browser, wie Google Chrome 80, ändert sich jedoch das standardmäßige domänenübergreifende Verhalten von Cookies. DasSameSite-Attributkann auf einen der folgenden Werte festgelegt werden. Der Standardwert für Google Chrome ist auf Lax festgelegt.

  • Keine:Zeigt an, dass der Browser ein Cookie im siteübergreifenden Kontext nur für sichere Verbindungen verwendet.
  • Lax:Zeigt an, dass der Browser ein Cookie für Anfragen im Kontext derselben Website verwendet. Im Cross-Site-Kontext können nur sichere HTTP-Methoden wie GET-Request das Cookie verwenden.
  • Streng:Verwenden Sie das Cookie nur im Kontext derselben Site.

Wenn das Cookie kein SameSite -Attribut enthält, geht Google Chrome von der Funktionalität von SameSite =LAX aus.

Hinweis:

Für bestimmte Versionen anderer Browser ist der Standardwert für das SameSite-Attribut möglicherweise aufKeinefestgelegt. In einigen Browser-Versionen kann “SameSite = none” anders behandelt werden. Beispielsweise lehnen die folgenden Browser ein Cookie mit “SameSite = none” ab:

  • Versionen von Chrome von Chrome 51 bis Chrome 66 (an beiden Enden inklusive)
  • Versionen des UC-Browsers auf Android vor Version 12.13.2

Konfigurieren von ADC-generierten Cookies

Um ADC-generierte Cookie-Attribute zu konfigurieren, müssen Sie Folgendes ausführen:

  1. Erstellen eines virtuellen Lastausgleichsservers
  2. Legen Sie die ADC-Cookie-Attribute für den virtuellen Lastausgleichsserver fest, entweder über LB-Parameter oder über das LB-Profil.
  3. Wenn Sie ein LB-Profil verwenden, legen Sie das LB-Profil auf einen virtuellen Lastausgleichsserver fest.
  4. Wenn Sie das Cookie-Attribut für berechnete ADC verwenden, konfigurieren Sie die zugehörige Richtlinie zum Umschreiben.

Hinweis:

Wenn ein LB-Profil an einen virtuellen LB-Server gebunden ist, wird die Profilparameterkonfiguration anstelle der globalen LB-Parameterkonfiguration berücksichtigt.

Sie können die vom ADC generierten Cookie-Attribute auf folgende Weise festlegen:

  • Festlegen der ADC-Cookie-Attribute in Lastenausgleichsparametern
  • Festlegen der ADC-Cookie-Attribute im Load Balancing-Profil

Um eine Richtlinie einheitlich auf von ADC generierte Cookies aller auf der Citrix ADC Appliance konfigurierten Anwendungen anzuwenden, können Sie das ADC-Cookie-Attribut in den globalen LB-Parametern festlegen.

Die EinstellungLiteral ADC Cookie Attributermöglicht es Ihnen, die Cookie-Attribute bedingungslos in das von ADC generierte Cookie einzufügen.

您an der Eingabeaufforderung Folgendes ein:

set lb parameter -LiteralADCCookieAttribute  

Beispiel:

set lb parameter -LiteralADCCookieAttribute SameSite=None 

Die Einstellung“Berechnetes ADC-Cookie-Attribut”ermöglicht es Ihnen, die Cookie-Attribute basierend auf den Client- oder Serverattributen in das von ADC generierte Cookie einzufügen.

您an der Eingabeaufforderung Folgendes ein:

set lb parameter -ComputedADCCookieAttribute  

Beispiel:

添加ns变量cookieattribute_var类型”文本(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 

Konfigurieren von Variablen mit der GUI

  1. Navigieren Sie zuAppExpert > Variables, und klicken Sie aufHinzufügen.
  2. WählenSie auf der Seite “Variable erstellen“ im DropdownmenüGeltungsbereichalsTransaktionund alsTexteingebenaus.

    Variable für ADC-Cookies erstellen

  3. 您weitere Details ein und klicken Sie aufErstellen.

Erstellen einer Aufgabe mit der GUI

Nachdem Sie eine Variable konfiguriert haben, können Sie einen Wert zuweisen oder die Operation angeben, die für die Variable ausgeführt werden soll, indem Sie eine Zuweisung erstellen.

  1. Navigieren Sie zuAppExpert > Zuweisungenund klicken Sie aufHinzufügen.
  2. GebenSie auf der Seite Zuweisung erstellendie Details ein und klicken Sie aufErstellen.

    Erstellen einer Zuweisung für ADC-Variablen

  1. Navigieren Sie zuTraffic Management > Load Balancing > Load Balancing-Parameter ändern.

    Ändern von lb-Parametern

  2. GebenSie im Bereich Load Balancing-Parameter konfigurieren死entsprechenden Werte毛皮进行der镶嵌地块静脉,basierend auf Ihren Anforderungen:

    • Literales ADC-Cookie-Attribut
    • Berechnetes ADC-Cookie-Attribut

    konfigurieren Sie lb parameters.png

  3. Klicken Sie aufOK.

Um eine Richtlinie für eine bestimmte Anwendung anzuwenden, die auf der Citrix ADC Appliance konfiguriert ist, können Sie die Cookie-Attributparameter im LB-Profil festlegen, das an den anwendungsspezifischen virtuellen LB-Server gebunden ist.

Die EinstellungLiteral ADC Cookie Attributeim LB-Profil ermöglicht es Ihnen, die Cookie-Attribute bedingungslos in das von ADC generierte Cookie einzufügen, das für einen virtuellen Server spezifisch ist.

您an der Eingabeaufforderung Folgendes ein:

add lb profile  -LiteralADCCookieAttribute  

Beispiel:

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 

Die Einstellung“Berechnetes ADC-Cookie-Attribut”im LB-Profil ermöglicht es Ihnen, die Cookie-Attribute basierend auf den Client- oder Serverattributen in das ADC-generierte Cookie einzufügen. Stellen Sie dieses LB-Profil dann auf einen virtuellen LB-Server ein.

您an der Eingabeaufforderung Folgendes ein:

add lb profile  -ComputedADCCookieAttribute  

Beispiel:

添加ns变量cookieattribute_var类型”文本(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. Navigieren Sie zuTraffic Management > Load Balancing > Virtuelle Server.
  2. Wählen Sie einen virtuellen Server aus, und klicken Sie aufBearbeiten.
  3. Klicken Sie im AbschnittErweiterte EinstellungenaufProfile hinzufügen.

    lb virtueller Server

  4. Klicken Sie im AbschnittProfileaufHinzufügen,静脉LB-Profil祖茂堂erstellen。

    Wenn Sie bereits ein Profil erstellt haben, wählen Sie es aus dem DropdownmenüLB-Profilaus.

    Profile hinzufügen

  5. 您im BereichLB-Profil死entsprechenden Werte毛皮进行der镶嵌地块静脉,die auf Ihrer Anforderung basieren:
  • Literales ADC-Cookie-Attribut
  • Berechnetes ADC-Cookie-Attribut

    Literal-berechnete Attribute in LB profile.png

  1. Klicken Sie aufOK.
  2. Legen Sie das erstellte LB-Profil auf den inSchritt 1erstellten virtuellen LB-Server fest.

Überprüfen der ns-Variablen

Um zu überprüfen, ob die ADC nss-Variable in LB-Parametern oder LB-Profil angemessen konfiguriert ist, verwenden Sie den Parameter show lb oder show lb profile.

In der folgenden Tabelle sind die verschiedenen Warnmeldungen und deren Ursache aufgeführt, wenn die Variable ns nicht korrekt konfiguriert ist.

Warnmeldung Gründe
Die NS-Variable ist nicht konfiguriert. Konfigurieren Sie es mit Typ text () und Scope Transaction für Variable Die NS-Variable ist noch nicht konfiguriert.
Der Umfang der konfigurierten NS-Variablen ist keine Transaktion. Variable ist konfiguriert, aber der Bereich ist nicht auf “Transaktion” festgelegt.
Der Typ der Variablen ist nicht Text (). Variable ist konfiguriert, aber der Typ ist nicht auf “Text” gesetzt.
Die konfigurierte Wert-Max-Größe für die NS-Variable ist größer als 255. Der毛皮死NS-Variable konfigurierte温特betragtmehr als 255 Zeichen.Hinweis:Eine maximale Länge von 255 Zeichen kann an ein ADC-generiertes Cookie angehängt werden. Die Zeichen, die die maximale Länge überschreiten, werden abgeschnitten.

Beispiel-Ausgabe

Im folgenden Beispiel wird die Warnmeldung angezeigt, wenn die ns-Variable nicht konfiguriert ist.

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

Die Warnmeldung wird in der folgenden Ausgabe des Befehlsshow lb parameterangezeigt.

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 

Die folgende Beispielkonfiguration gilt für die Site-Persistenz, die auf GSLB-Diensten konfiguriert ist, die einem virtuellen LB-Server entsprechen. Um einige zusätzliche Cookie-Attribute an die GSLB-Cookies anzuhängen, führen Sie die folgende Konfiguration durch.

  • Legen Sie die ADC-Cookie-Attribute im LB-Profil (LB-VServer-Profile-1) fest.
  • Legen Sie den Wert des Literal ADC Cookie-Attributs fest, z. B. “SameSite=None”, im LB-Profil.
  • Legen Sie das LB-Profil auf den virtuellen Lastausgleichsserver (LB-vServer-1) fest, der den GSLB-Dienst darstellt.
添加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 

Hinweis:

Sie können die Cookie-Attribute auch bedingt mit dem Berechneten ADC-Cookie-Attribut einfügen.

Die folgende Beispielkonfiguration gilt, wenn mehrere Anwendungen hinter einem virtuellen Content Switching-Server gehostet werden. Um dieselbe Richtlinie auf alle Anwendungen anzuwenden, binden Sie die Umschreibrichtlinien wie folgt an den virtuellen Content Switching-Server anstelle des virtuellen LB-Servers:

  • Setzen Sie die ADC-Cookie-Attribute in den LB-Parametern.

    Hinweis:

    Sie können die ADC-Cookie-Attribute auch im LB-Profil festlegen.

  • Konfigurieren Sie die ns-Variable (cookieattribute_var) des Typs, der auf Text und Scope auf Transaktion festgelegt ist.
  • Setzen Sie das Berechnete ADC-Cookie-Attribut in den globalen LB-Parametern mithilfe der ns-Variablen.
  • Legen Sie die Rewrite-Richtlinien (exception_samesite_attribute und append_samesite_attribute) auf die virtuellen Content Switching-Server für das Einfügen der Cookie-Attribute fest.
添加ns变量cookieattribute_var类型”文本(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