Le blog de Genma
Vous êtes ici : Accueil » Informatique & Internet » GNU/Linux, Logiciels Libres » Wget derrière un SSO

Wget derrière un SSO

D 7 septembre 2017     H 09:00     A Genma     C 4 messages   Logo Tipee

TAGS : Planet Libre Tutoriaux

SSO ???

Un ensemble de page derrière un SSO (abréviation en anglais Single Sign-On : SSO) ou authentification unique est une méthode permettant à un utilisateur d’accéder à plusieurs applications informatiques (ou sites web sécurisés) en ne procédant qu’à une seule authentification.. C’est le fameux système que l’on retrouve en entreprise où on se connecte une fois pour accéder aux différentes applications de l’Intranet. Pour des infrastructures variées et complexes, il y a lemonldap par exemple. Ou pour Yunohost, il y a SSOwat, un SSO pour nginx, écrit en Lua.

Ma problématique

Sur une des applications de l’Intranet de l’entreprise dans laquelle je travaille, j’ai eu à récupérer différentes pages via l’outil Wget. Soucis, wget ne permet pas de se connecter au SSO.

Au lancement de Wget, l’application ne me voyant pas connecté, je suis renvoyé vers le SSO et ma page récupérée par Wget, même si le lien est correct contient deux champs HTML "Identifiant et mot de passe", soit la mire de connexion.

A l’arrivée sur la page de l’application, il y a une vérification de la présence du cookie d’authentification et comme wget ne le fournit pas, on est renvoyé vers l’authentification.

La solution ?

On lance Firefox dans lequel on a ajouté l’extension Export Cookies. On se connecte sur le site (on a donc un cookie d’authentification qui est créé). On exporte ce cookie via le menu "Outils -> Export Cookies" et on sauvegarde le ficher cookies.txt.

Puis on relance la commande wget qui va bien, avec les options qui vont bien à savoir :

wget --load-cookies cookies.txt -p --no-check-certificate https://application.enterprise.com/page01.htmlt -O ./Applicaton_page01.html

--no-check-certificate pour éviter le soucis avec https
--load-cookies cookies.txt : charge le cookie d'authentification sur le SSO

4 Messages

  • Merci beaucoup pour l’astuce, je suis pile dans ce cas !
    Firefox me dit que l’extension en question n’est pas compatible avec ma version de Firefox (ESR), tu as utilisé un vieux Firefox pour ton identification ?
    Je me suis dit que j’allais la mettre à jour en vitesse, mais le développement d’extension ne m’a pas paru évident avec les nouveaux formats & le processus de signature...
    A suivre !


  • Pourquoi passer par Firefox et ne pas tout faire avec wget ?
    On récupère le cookie et on l’utilise ...
    wget —cookies=on —keep-session-cookies —save-cookies=cookie.txt http://first_page_sso
    on peut utiliser —post-data=string ou —post-file=file

    wget —referer=http://first_page_sso —cookies=on —load-cookies=cookie.txt —keep-session-cookies —save-cookies=cookie.txt http://second_page


  • Si vous avez besoin d’exporter le cookie depuis Firefox à partir de la version 57, c’est l’extension Wcookie qu’il faut installer ;)


  • Via l’onglet réseau des outils web de Firefox (F12 pour les ouvrir rapidement), on peut faire un clic droit sur une requête et utiliser « Copier comme cURL » si on est ouvert à la diversité et qu’on accepte de ne pas utiliser Wget mais curl ;-D
    À noter, on peut se retrouver avec les cookies de session dans l’historique de son shell si on ne fait pas attention avec cette méthode…