locked
Forefrent UAG 2010 SP1 - The HTTP header in the request is too long RRS feed

  • Question

  • Bonjour,

    J'ai monté un lab avec des machnes virtuelles pour me familiariser avec la fédération d'identité dans le monde Microsoft.

     

    Serveur 1 sur réseau interne d'entreprise : W2K8 R2 Standart SP1 - Active directory, ADFS v2, Certificate Services

    Serveur 2 sur réseau interne d'entreprise: W2K8R2 Standart SP1 - IIS 7.5, Visual Studio 2010, WIF, WIF SDK

    Serveur 3 avec 2 cartes réseaux (interne/externe): W2K8R2 Standart SP1 - Forefront TMG & UAG SP1

    Client sur  reseau externe

     

    Sur le serveur 2, j'ai developpé une simple application en claims based authentification avec comme STS l'ADFS 2.0 du serveur 1. L'appli affiche tous les claims envoyés a l'application. Tant que je suis sur le reseau interne d'entreprise tout marche bien, je vois les claims que j'ai configurés dans ADFS.

    Dans UAG j'ai configuré un HTTPS trunk  qui utilise ADFS 2.0 comme méthode d'authentification. Ca a eté dur j'usquà ce que je trouve ou mettre les certificats à leur bonne place. ( Moi developpeur - pas IT-Pro :-) ). J'arrive a m'authentifier et à avoir le portal avec l'icone de l'application que j'ai publiée.

    Sauf qu'en la lancant le portal m'affiche

      Comment debugger ? Dans l'event viewer du serveur 3, je n'ai pas de messages d'erreur !

     

    Cordialement

    Pascal

    jeudi 6 octobre 2011 17:27

Réponses

  • J'ai utilisé Web Monitor. Effectivement sous l'onglet sécurité des évènements, il y a un warning car la longueur 9903 bytes de l'entete HTTP est trop longue. J'ai trouvé cet article http://technet.microsoft.com/en-us/library/ee809087.aspx qui explique les differents paramètres que l'on peut configurer dans la base des registres du serveur UAG. Dans mon cas il s'agi de la valeur MaxAllHeadersLen.

    HKEY_LOCAL_MACHINE\SOFTWARE\WhaleCom\e-Gap\Von\UrlFilter\MaxAllHeadersLen

    DWORD VALUE (maximum default header length is 8192 bytes).

    No

    Create this key to modify the maximum default header length of all HTTP request headers accepted by the URL filter. After modifying this value, IIS must be restarted.

     

    J'ai doublé la taille à 16384 bytes et je n'ai plus de problème.

    Personnelement je trouve que la valeur 8192 bytes est sous-dimensinnée. Mon aplli est la plus simple possible- une page qui affiche les claims et j'ai configuré qu'une seule claim - l'adresse Email et avec ca je dépasse dejà la taille maximale !?

    Apres l'explosion des tickets kerberos avec l'integrated Windows authentication, on se retrouve avec l'explosion des haeders HTTP avec les tickets SAML. Vive le progrès ...

    /Pascal

    • Marqué comme réponse Pascal Simler samedi 8 octobre 2011 11:43
    samedi 8 octobre 2011 11:42

Toutes les réponses

  • Bonjour,

     

    En fait, il faut utiliser UAG Web Monitor. Dans la partie évènements, tu auras plus de détails sur la raison de l'erreur. Là il semble que l'url est trop longue, tu peux désactiver cette vérification directement dans les paramètres de l'application. Dans l'onglet Web Settings, tu peux désactiver l'option "Verify Urls".

    Je te dis ça de tête, mais donne nous plus de détails comme l'url dans ton navigateur, celle de ton serveur publiée, et le détail complet de l'érreur remontée dans le Web Monitor; Nous serions plus à même de t'aider.

    Cdt,
    Alex


    GIRAUD Alexandre - MVP Forefront France http://www.alexgiraud.net/blog
    • Marqué comme réponse Pascal Simler samedi 8 octobre 2011 11:27
    • Non marqué comme réponse Pascal Simler samedi 8 octobre 2011 11:34
    vendredi 7 octobre 2011 13:26
  • J'ai utilisé Web Monitor. Effectivement sous l'onglet sécurité des évènements, il y a un warning car la longueur 9903 bytes de l'entete HTTP est trop longue. J'ai trouvé cet article http://technet.microsoft.com/en-us/library/ee809087.aspx qui explique les differents paramètres que l'on peut configurer dans la base des registres du serveur UAG. Dans mon cas il s'agi de la valeur MaxAllHeadersLen.

    HKEY_LOCAL_MACHINE\SOFTWARE\WhaleCom\e-Gap\Von\UrlFilter\MaxAllHeadersLen

    DWORD VALUE (maximum default header length is 8192 bytes).

    No

    Create this key to modify the maximum default header length of all HTTP request headers accepted by the URL filter. After modifying this value, IIS must be restarted.

     

    J'ai doublé la taille à 16384 bytes et je n'ai plus de problème.

    Personnelement je trouve que la valeur 8192 bytes est sous-dimensinnée. Mon aplli est la plus simple possible- une page qui affiche les claims et j'ai configuré qu'une seule claim - l'adresse Email et avec ca je dépasse dejà la taille maximale !?

    Apres l'explosion des tickets kerberos avec l'integrated Windows authentication, on se retrouve avec l'explosion des haeders HTTP avec les tickets SAML. Vive le progrès ...

    /Pascal

    • Marqué comme réponse Pascal Simler samedi 8 octobre 2011 11:43
    samedi 8 octobre 2011 11:42
  • Super Pascal que tu ai trouvé la valeur adéquate en fonction de l'erreur remonté dans le Web Monitor ;)

    Concernant la limite de 8182, c'est par défaut pour de très nombreux produits (ex. ici avec Junniper : http://help.juniper.net/help/english/6.0.0/http_service.htm ou encore Appache: http://tomcat.apache.org/tomcat-6.0-doc/config/http.html etc...).

    Quelques recherches rapides sur Internet semblent indiquer que c'est lié à HTTP/1.1 et non au produit Microsoft Forefront UAG. Vérifie-donc un peu avant ton application si cela respecte les standards, car il me semble que ta valeur de 9903 bytes est surdimensionnée justement.

     

    Bonne continuation alors.


    GIRAUD Alexandre - MVP Forefront France http://www.alexgiraud.net/blog
    samedi 8 octobre 2011 17:04