WI 4.6 et Load Balancer "F5"

Bonjour,



Un load Balancer F5 viens d’être intégré dans notre organisme. Le responsable réseau et sécurité préfèrerai utiliser ce nouveau LB F5 en lieu et place du NLB existant.



Problématique :

Lors de la connexion au site WI une deuxième page WI s’affiche. En passant par le NLB cela fonctionne sans Pb.



Environnement :

  • 2 x WI 4.6
  • Load Balancer F5
  • XenApp 4.5
  • IE 6, 7, 8
  • Client Ica 11, 12



    Remarque : Le site WI lance automatiquement une application grâce au paramétrage de « thomaskoetzing ».



    Tests effectués :


  • Modification du paramétrage Ie Local (Cache, Sécurité …) Pas Ok
  • Suppression du AutoLaunch : Ok




  • Constat :



    Après pas mal de test et de modification, il s’avère lorsque je modifie le fichier Applist.inc du répertoire app_datasiteinclude, cela fonctionne UNE fois. A la deuxieme connexion, le phénomène ré-apparait. Si je re-modifie le fichier en rajoutant un espace par exemple cela re-fonctionne UNE fois.



    J’ai l’impression qu’il doit y avoir du cache quelque part. !!!



    Merci de votre aide.



    Cdlt



    Sébastien



    PS : j’en perd le peu de latin qui me reste.

Afin d’aider les citrixiennes et citrixiens voici la solution mis en œuvre :



Si WI en version 4.5 4.6 :



1) Augmenter la persistance de type Cookie sur le load balancer "F5"



Si WI en version 5.0 :



1) Augmenter la persistance de type Cookie sur le load balancer “F5”



2) Ajout d’un profil http qui insert le champs « X-Forwarded-For » dans l’en-tête http afin de renseigner l’application cible de la véritable adresse IP du client, et ainsi prendre en compte une session déjà existante.



3) reconfigure the Citrix to Read X-Forwarded-For headers for the Client IP address

A) Open the file InetpubwwwrootCitrixXenAppapp_codePagesJavacomcitrixwipageutilsInclude.java on the Web Interface server, and find the function named getClientAddress.



In version 5.0, it looks like the following:



public static String getClientAddress(WIContext wiContext) {

String ageClientAddress = AGEUtilities.getAGEClientIPAddress(wiContext);

return (ageClientAddress != null

? ageClientAddress

: wiContext.getWebAbstraction().getUserHostAddress());

}



B) Edit this function so it looks like the following:



public static String getClientAddress(WIContext wiContext) {

String ageClientAddress = AGEUtilities.getAGEClientIPAddress(wiContext);

String userIPAddress = wiContext.getWebAbstraction().getRequestHeader(“X-FORWARDED-FOR”);

if (userIPAddress == null) {

userIPAddress = wiContext.getWebAbstraction().getUserHostAddress();

}

return (ageClientAddress != null ? ageClientAddress : userIPAddress);

}



C) Repeat this for each Web Interface server.



Cordialement



Sébastien

En conclusion, mettez des netscalers pour sécuriser la WI. ;D

Tout à fait d’accord mais le client n’a rien voulu savoir …



Toujours les mêmes pour réparer les erreurs des autres !!!



Cdlt



Sébastien

C’est quand même pas très jojo de modifier le code de la wi pour la load balancer en IP.



est-ce que tu as essayer de renvoyer le nom DNS du serveur Xenapp plutot que l’IP ?

Je fais le test demain …

Donc je fais le test demain avec le nom DNS. Pour l’instant c’est l’IP.



Cdlt



Sébastien

Je pense que je t’ai dit une connerie.

Car la correction permet de conserver le lien entre un client et le serveur WI sur lequel la session à été ouverte.



donc cela na rien à voir …

Résultat du test :



La définition du X-Forwarded-For sur le load balancer “F5” ne se fait qu’avec l’adressage IP. Il n’y a pas de possibilité à l’heure actuel de le faire avec des noms DNS. Donc pour les autres définitions sur la WI c’est la même chose.



Cdlt



Sébastien