Tequila logout, quitte ou double ? - Flash informatique
Transcription
Tequila logout, quitte ou double ? - Flash informatique
À votre service Tequila logout, quitte ou double ? Claude.Lecommandeur@epfl.ch, EPFL - Domaine IT, père de Tequila The Tequila authentication tool allows use of a single sign-on. Its behaviour, particularly at logout time, might surprise you. After reading this article, it is you who will surprise your colleagues with your knowledge. L’outil d’authentification Tequila implémente le single sign-on. Son comportement, en particulier lors de la déconnexion (logout) est parfois surprenant. Après avoir lu cet article, c’est vous qui surprendrez vos collègues par votre savoir. Il arrive que des utilisateurs d’applications sécurisées par Tequila soient surpris de se retrouver authentifiés dans cette application alors qu’ils viennent juste de s’en déconnecter. Que se passe-t-il ? Y aurait-il un bug, une erreur, un virus, voire une carabistouille quelconque qui se serait glissé dans le système d’authentification de l’EPFL pourtant reconnu dans le monde entier et dont le président Obama me disait encore hier toute l’admiration qu’il y porte ? Eh bien non, ce comportement est normal, conséquence directe et terrifiante à la fois du single sign-on. Que se passe-t-il quand une personne (peut-être toi cher lecteur) s’authentifie via Tequila ? Deux cas se présentent: z Vous êtes déjà authentifié auprès de l’application: celle-ci s’en aperçoit, car votre navigateur lui a envoyé un cookie qu’elle a reconnu comme un identificateur de session valide, c’est-à-dire correct et pas trop vieux. Il ne se passe donc rien, vous avez le droit de faire toutes les bêtises auxquelles votre authentification vous donne droit. z Vous n’êtes pas authentifié auprès de l’application: soit vous n’avez pas présenté de cookie, soit il n’est pas ou plus valide. L’application, qui est correctement écrite délègue votre authentification auprès du serveur Tequila. Deux sous-cas: w C’est la première fois de la journée que Tequila vous voit: il vous présente alors le formulaire de login usuel dans lequel vous devez entrer votre username et votre mot de passe. Puis, si tout s’est bien passé, il vous redirige vers l’application initiale avec sa bénédiction. Mais il fait autre chose: il dépose un cookie dans votre navigateur qui vous identifiera la prochaine fois que vous viendrez. C’est le sous-cas suivant. w Vous avez déjà effectué une authentification correcte dans la journée: Tequila s’en aperçoit car vous lui avez présenté le cookie magique du point précédent. Dans ce cas, point n’est besoin de vous assommer avec le formulaire de login, vous êtes authentifié automatiquement. Et donc, tout aussi automatiquement, vous êtes redirigé vers l’application initiale. 16 Flash informatique – 24 mai 2011 - N° 5 Dans ces deux sous-cas, vous revenez triomphalement vers votre application, celle-ci dépose elle aussi un cookie dans votre navigateur qui lui permettra ensuite de vous reconnaître,vous tomberez (sans vous faire mal) dans le premier cas. L’idée derrière tout ça est de vous demander votre username et votre mot de passe un nombre minimum de fois. Une authentification auprès d’une application, vous authentifie du même coup pour toutes les autres. C’est ce qu’on appelle généralement le single sign-on. Pour revenir à la question initiale, vous êtes dans le premier cas, c’est-à-dire que vous êtes authentifié auprès d’une application, vous cliquez innocemment sur le bouton Logout ou Déconnexion. L’application va détruire votre session, c’est-à-dire la petite boite qui contient votre identité, ainsi que le cookie correspondant. Mais elle ne va pas détruire le cookie posé par le serveur Tequila. Elle pourrait le faire, mais ce ne serait pas une bonne idée, car elle prendrait alors une décision qui ne la concerne pas: vous déconnecter globalement sort de ses compétences. Donc, vous avez détruit votre session et vous retournez auprès de la même application. Quelle mouche vous a donc piqué de faire ça ?… je passe, en tout cas vous l’avez bel et bien fait. Vous tombez alors dans le second cas et même très probablement dans le second sous-cas: à l’insu de votre plein gré, vous avez donné au serveur Tequila le cookie magique que tout le monde nous envie tant. Votre authentification est donc automatique et vous vous retrouvez connecté à l’application dont vous venez juste de vous déconnecter. D’où la surprise. Vous allez me dire: mais à quoi sert donc ce bouton Logout dans les applications ? Dans un environnement single sign-on comme le nôtre, absolument à rien. Vous poursuivez donc par: mais si je suis sur un ordinateur public que quelqu’un d’autre va utiliser, je dois bien me délogger, comment faire ? Une seule solution, sortir du navigateur. Ainsi, toutes vos sessions ouvertes, aussi bien celles de Tequila que celles de toutes les applications que vous avez visitées seront détruites irrémédiablement, pour le meilleur comme pour le pire. Les plus hardis me diront alors, c’est bien beau tout ça, mais si je veux me déconnecter du serveur Tequila sans sortir du navigateur, je fais quoi ? Il suffit de visiter l’URL: tequila.epfl.ch/logout mais attention, vous serez déconnecté du serveur Tequila, mais pas des applications actives. Autre cas épineux, vous passez chez un collègue et vous voulez vous connecter à Tequila dans son navigateur. Bien sûr, il refuse catégoriquement d’en sortir. Si le navigateur est correct (Firefox, Chrome, IE9…) vous avez la possibilité d’ouvrir une fenêtre privée: Firefox -> tools -> start private browsing, Chrome -> New Incognito Window, …) qui ne partage pas les cookies avec les autres fenêtres. Quand vous le quitterez, la déconnexion automatique se fera. n ISSN 1420-7192