Citrix ADC

Persistance des cookies HTTP

Lorsque la persistance des cookies HTTP est configurée, l’appliance Citrix ADC définit un cookie dans les en-têtes HTTP de la demande client initiale. Le cookie contient l’adresse IP et le port du service sélectionné par l’algorithme d’équilibrage de charge. Comme pour toute connexion HTTP, le client inclut ensuite ce cookie avec toutes les requêtes ultérieures.

Lorsque l’appliance Citrix ADC détecte le cookie, elle transmet la demande à l’adresse IP du service et au port dans le cookie, en conservant la persistance de la connexion. Vous pouvez utiliser ce type de persistance avec des serveurs virtuels de type HTTP ou HTTPS. Ce type de persistance ne consomme pas de ressources d’appliance et peut donc accueillir un nombre illimité de clients persistants.

Remarque : Si le navigateur Web du client est configuré pour refuser les cookies, la persistance basée sur les cookies HTTP ne fonctionnera pas. Il peut être conseillé de configurer une vérification des cookies sur le site Web et d’avertir les clients qui ne semblent pas stocker correctement les cookies qu’ils devront activer les cookies pour le site Web s’ils veulent l’utiliser.

Le format du cookie que l’appliance Citrix ADC insère est le suivant :

NSC_XXXX=<ServiceIP ><ServicePort>

où :

  • NSC_XXXX est l’ID du serveur virtuel dérivé du nom du serveur virtuel.
  • ServiceIP et ServicePort sont des représentations codées de l’adresse IP du service et du port de service, respectivement. L’adresse IP et le port sont codés séparément.

Vous pouvez définir une valeur de délai d’attente pour ce type de persistance afin de spécifier une période d’inactivité pour la session. Lorsque la connexion a été inactive pendant la période spécifiée, l’appliance Citrix ADC rejette la session de persistance. Toute connexion ultérieure à partir du même client entraîne la sélection d’un nouveau serveur en fonction de la méthode d’équilibrage de charge configurée et l’établissement d’une nouvelle session de persistance.

Remarque : si vous définissez la valeur de délai d’expiration sur 0, l’appliance Citrix ADC ne spécifie pas de délai d’expiration, mais définit un cookie de session qui n’est pas enregistré lorsque le navigateur du client est arrêté.

Par défaut, l’appliance Citrix ADC définit les cookies HTTP version 0 pour une compatibilité maximale avec les navigateurs clients. (Seuls certains proxy HTTP comprennent les cookies de la version 1 ; les navigateurs les plus couramment utilisés ne le font pas.) Vous pouvez configurer l’appliance pour définir les cookies HTTP version 1, afin de respecter la norme RFC2109. Pour les cookies HTTP version 0, l’appliance insère la date et l’heure d’expiration du cookie en tant que temps universel coordonné (GMT) absolu. Il calcule cette valeur comme la somme de l’heure GMT actuelle sur l’appliance et de la valeur de délai d’expiration. Pour les cookies HTTP version 1, l’appliance insère un délai d’expiration relatif en définissant l’attribut « Max-Age » du cookie HTTP. Dans ce cas, le navigateur du client calcule le temps d’expiration réel.

Pour configurer la persistance en fonction d’un cookie inséré par l’appliance, reportez-vous à la section Configuration des types de persistance qui ne nécessitent pas de règle.

Dans le cookie HTTP, l’appliance définit par défaut l’indicateur httponly pour indiquer que le cookie n’est pas scriptable et ne doit pas être révélé à l’application cliente. Par conséquent, un script côté client ne peut pas accéder au cookie et le client n’est pas sensible aux scripts intersites.

Certains navigateurs, cependant, ne prennent pas en charge le drapeau httponly et, par conséquent, peuvent ne pas renvoyer le cookie. En conséquence, la persistance est brisée. Pour les navigateurs qui ne prennent pas en charge l’indicateur, vous pouvez omettre l’indicateur httponly dans le cookie de persistance.

Pour modifier le paramètre de l’indicateur httponly à l’aide de l’interface de ligne de commande

À l’invite de commandes, tapez :

set lb parameter -httpOnlyCookieFlag (ENABLED DISABLED)

Exemple :

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

Pour modifier le paramètre de l’indicateur httponly à l’aide de l’utilitaire de configuration

  1. Accédez à Gestion du trafic > Équilibrage de charge > Configurer les paramètres d’équilibrage de charge, puis sélectionnez ou désactivez l’indicateur HttpOnly du cookie de persistance.

À partir de la version 10.5 build 55.8, vous pouvez crypter le cookie en plus de n’importe quel cryptage SSL.

set lb parameter -UseEncryptedPersistenceCookie ENABLED -cookiePassphrase test
  1. Accédez à Gestion du trafic > Modifier les paramètres d’équilibrage de la charge, puis sélectionnez Encoder les valeurs de cookie de persistance et entrez une phrase secrète dans la phrase secrète de cookie .

Persistance des cookies HTTP