Single Sign On (SSO) : l’authentification unique sécurisée même depuis chez moi !

Chapeau
L’essor de l’informatique à rapidement mis en lumière la problématique de gestion des mots de passe. L’authentification unique c’est pratique, mais encore faut-il respecter certaines règles ! Quels sont les bénéfices du SSO ? Et la question de la sécurité ? Quelles solutions employer pour une architecture SSO full Open Source ?
Champ média image
Media Image
Droits d'auteur
BOSSTEK

Le SSO qu’est-ce que c’est ?

L’authentification unique (en anglais Single Sign-On : SSO) 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. (source wikipedia.org)

Avant d’entrer dans les détails techniques, prenons en exemple notre quotidien d’internaute. L’essor de l’informatique a rapidement mis en lumière la problématique de l’authentification. De plus en plus de mots de passe sont demandés et la nécessité qu’ils soient forts les rend plus difficiles à retenir … Le grand public a rapidement adopté de mauvaises pratiques, de nombreux comptes se sont retrouvés usurpés pour cause de mots de passe trop faibles et redondants.

Plusieurs grands acteurs du web ont décidé, dès début 2008, d’adopter le mécanisme d’authentification unique sous la forme de l’OpenID associé à OAuth. Ils avaient déjà compris l’enjeu du big data et de la centralisation des données personnelles. De surcroît, ce service répondait à la problématique de la sécurité et aussi celle d’une meilleure ergonomie pour l’internaute. Cette version minimale du SSO fut vite adoptée par de nombreux sites web. Comment ne pas être séduit : la création de compte utilisateur est simplifiée tout en étant facilitée par la confiance de l’internaute dans le fournisseur du service. Parmi les fournisseurs on trouve Facebook, Google, Microsoft, Amazon, Paypal, Yahoo, Twitter …

Finalement, les utilisateurs se connectent facilement à tous leurs services préférés grâce à un seul identifiant. Cependant, beaucoup de comptes se font encore usurper.

Cet aperçu des avantages, mais aussi des inconvénients du SSO nous forcent à un constat :

L’authentification unique c’est pratique, mais encore faut-il respecter certaines règles de sécurité !

La question de la sécurité est cruciale pour les entreprises. Le web a explosé en 20 ans ! Mais les menaces se sont développées en même temps. Les personnes malveillantes se sont organisées et ont développé des techniques de plus en plus ingénieuses. Elles ont prouvé à plusieurs occasions leur capacité à s’organiser et déployer une force de frappe importante.

L’essor du web a également fait évoluer la manière de consommer les ressources logicielles. D’applications lourdes (installées localement sur le poste de travail) les utilisateurs sont passés à des applications Cloud (accessibles en ligne par un navigateur web). Les avantages ne sont aujourd’hui plus à présenter. Utilisateurs comme administrateurs systèmes y ont trouvé leur intérêt. Par contre, une application Cloud nécessite souvent une authentification !

Quels sont les bénéfices du SSO ?

Lorsqu’il est implémenté en entreprise, le Single Sign On ouvre bien plus de possibilités que les services similaires fournis par les grands du web.

Il permet de gérer de façon centralisée les habilitations des utilisateurs. La création de profils normalisés représente un gain en sécurité et en efficacité pour les équipes techniques. L’exploitation de logiciels en tant que services contribue à l’unification des profils de postes utilisateurs. Leur maintenance est d’autant plus aisée et moins coûteuse.

Le bénéfice en termes de sécurité se trouve à tous les niveaux grâce à la centralisation d’accès aux services. Les utilisateurs passent moins de temps tous les jours à saisir de multiples mots de passe et surtout réduisent le risque d’interception au moment de la saisie (keylogger, keygrabber, video grabber). Leur « fatigue de mot de passe » est réduite favorisant le respect des bonnes pratiques suggérant entre autres le choix d’un mot de passe complexe, un changement régulier, etc.

Les utilisateurs devant retenir un trop grand nombre de mots de passe représentent un centre de coût important au niveau des services techniques (support utilisateurs) qui doivent gérer les réinitialisations.

Le gain financier devient évident si l’on considère ces derniers points.

Les bénéfices sont également présents à d’autres niveaux. Nous avons parlé d’agrément et de productivité. Le télétravail est un autre exemple : de nombreuses sociétés sont conscientes des avantages à offrir cette souplesse aux employés. Cependant, elles ne savent pas toujours comment passer le cap pour des raisons d’intégrité du SI ou de gestion de matériel entre autres. Dans certains métiers pourtant, le SSO est un enjeu majeur ! Il ne semble plus concevable aujourd’hui qu’un travailleur mobile ne puisse pas accéder à ses applications métier en déplacement. Dans les sociétés de service informatique, les consultants sont dispersés en clientèle tout au long de l’année. Le SSO leur permet de garder un lien direct avec la vie de la société. Depuis un seul portail ils peuvent accéder à l’ensemble des services : messagerie instantanée, projets internes, stockages réseau, intranet …

Et la question de la sécurité ?

Nous l’évoquions plus haut, le SSO représente globalement un gain de sécurité. Cependant deux règles d’or sont incontournables :

  • utiliser un mot de passe fort ;
  • changer le mot de passe régulièrement.

Un ensemble de bonnes pratiques gravitent autour de ces deux premières règles. On peut citer le fait de conserver son mot de passe privé : ne pas le divulguer, ne pas le transmettre, le taper à l’abri des regards ...

Il existe d’autres solutions qui couvrent ces dernières « failles » dans la sécurité. Couvrant ces risques, elles ne font cependant pas partie intégrante de la méthode SSO. Nous les aborderons en fin d’article.

Quelles solutions employer pour une architecture SSO full Open Source ?

Une solution d’authentification unique bien connue dans le monde de l’Open Source français est LemonLDAP::NG. Elle s’appuie sur un serveur web tel que Apache ou Nginx en tant que reverse proxy. Ses composants principaux sont un manager, un portail et un système de handlers. L’architecture autour de LemonLDAP::NG et son fonctionnement sont décrits dans l’illustration suivante (source lemonldap-ng.org).

Vignette

L’authentification est faite en faisant appel à un serveur d’annuaire, par exemple OpenLDAP. Les habilitations se font par les handlers Perl (gestionnaires Perl du serveur WEB, cf : apache.org/docs/current/fr/handler.html). Dans le cas de LemonLDAP::NG, ils sont fournis par un module dédié écrit en Perl pour le serveur WEB.

LemonLDAP::NG prend aussi en charge la gestion des sessions ainsi que les variables liées pour chaque application.

Le manager sert d’interface de configuration, le portail sert d’interface utilisateur. Il n’est pas nécessaire de passer par le portail pour accéder aux services. Si l’on est connecté, l’accès est direct. Sinon, le handler nous intercepte, affiche le formulaire d’authentification, puis redirige vers le service une fois l’opération validée. Un utilisateur authentifié peut passer d’une application à une autre en utilisant des liens d’accès directs (par exemple) ou en passant par le portail d’authentification selon ses préférences. Une fois connecté, le cookie de session (fournit par LemonLDAP::NG) lui permet de « passer au travers » des handlers applicatifs en toute transparence.

Afin de déléguer tout ou partie de la gestion des utilisateurs l’utilisation d’un front-end d’annuaire est commode. Ainsi des employés administratifs peuvent gérer les habilitations de chacun sans avoir besoin de compétences techniques. Parmi les produits Open Source, GOsa et Fusion Directory sont des références.

Pour finir, puisque l’époque est aux micro-services et au déploiement continu, il est tout à fait possible de mettre LemonLDAP::NG dans un conteneur Docker. Cela apporte résilience et scalabilité, tout en adaptant le produit aux nouvelles stratégies d’architecture système orientées pour l’intégration continue.

Aller plus loin

Quand il s’agit de sécurité, il n’y a pas de limite en matière d’investissements. Chaque entreprise fixe son budget et fait de son mieux au regard de la sensibilité de son système d’information. Nous l’avons vu, une des faiblesses d’un formulaire d’authentification est l’interface chaise-clavier (voir « code 18 » dans le jargon informatique sur Wikipédia) ! Une autre concerne les attaques de type « force brute ». Dans ce cas un hacker teste, une à une, toutes les combinaisons possibles. Contre cela, une solution simple est le «fail to ban ». Il s’agit de définir un nombre maximum de tentatives autorisées (souvent 3 ou 5) avant d’être banni et ne plus pouvoir tenter de se connecter. D’autres paramètres comme définir un temps minimum pour remplir le formulaire peut endiguer beaucoup d’attaques. Contrairement à un robot, un humain prendra au moins plusieurs secondes pour remplir un formulaire. Le captcha est aussi une solution, mais il représente une contrainte quotidienne pour les utilisateurs.

Nous pouvons citer également l’attaque par rejeu (en anglais, replay attack ou playback attack). Le hacker répète une transmission réseau interceptée afin d’usurper l’identité d’un utilisateur. Une parade dans ce cas est un mot de passe valable qu’une seule fois. Le One Time Password (OTP) est une des techniques d’authentification les plus sécurisées. De plus, elle soulage l’utilisateur de la gestion de son mot de passe. L’OTP peut prendre plusieurs formes, par exemple : une clé SecurID affichant un code qui change toutes les minutes ou via un smartphone (sms ou code envoyé via une application).

Dans un environnement Virtual Desktop Interface (VDI) il est possible de conserver une même session ouverte d’un poste à l’autre. Le poste de travail est virtualisé. Tous les postes sont hébergés sur des serveurs distants au sein d’un Data Center propriétaire ou dans le Cloud, et l’utilisateur y accède via le réseau ou internet. Les ressources sont mutualisées et plus faciles à maintenir. Dans ce cas, l’utilisateur peut s’affranchir de l’authentification manuelle grâce à un badge, une carte à puce, un lecteur d’empreinte, voire une puce sous-cutanée pour les plus geeks !

Conclusion

Qu’il s’agisse d’environnement de travail ouvert ou de télétravail, le SSO apporte ergonomie et souplesse aux utilisateurs comme aux responsables informatiques. Il représente un gain financier pour l’entreprise en termes de temps, de sécurité, de gestion de matériel et d’intégrité du système d’information. De plus, il ouvre au personnel les portes d’une plus grande autonomie pour s’organiser dans son travail au quotidien. Le SSO n’est pas qu’une décision d’architecture informatique. Il entre dans la gestion du bien-être du personnel. De nombreuses expériences ont montré un gain surprenant de productivité lorsque les employés ont plus de libertés : gestion de l’emploi du temps, déplacements quotidiens, contraintes techniques … La mise en place d’un portail d’authentification unique est un véritable levier de performance et un atout en matière de gestion des ressources informatiques. Intégré dans la stratégie de l’entreprise, il constitue une partie de la réponse aux nouveaux enjeux de l’entreprise face aux attentes des collaborateurs actuels et futurs.

La définition, le déploiement et la migration d’architectures SSO Open Source font partie des savoirs-faire de BOSSTEK. Êtes-vous intéressé ?

prenez contact

 

BONUS : Découvrez l’aspect technique du fonctionnement de LemonLDAP::NG

Dans le cas de LemonLDAP::NG, la cinématique de connexion est illustrée ci-dessous (source lemonldap-ng.org) :

1. Lorsqu’un utilisateur essaye d’accéder à une application protégée, sa requête est interceptée par le handler

Vignette

2. Si les cookies SSO ne sont pas détectés, le handler redirige l’utilisateur vers le portail

3. L'utilisateur s’authentifie sur le portail

4. Le portail vérifie son authentification

5. Si c'est validé, le portail récupère les informations de l'utilsateur

6. Le portail crée une session où il va stocker les informations de l'utilisateur

7. Le portail récupère une clé de session

8. Le portail crée des cookies SSO avec session clé/valeur

9. L'utilisateur est redirigé sur une application protégée avec son nouveau cookie

10. Le handler récupère le cookie et la session

11. Le handler enregistre les données de l’utilisateur dans son cache

12. Le handler vérifie les droits d’accès et envoie les entêtes aux applications protégées

13. Les applications protégées envoient une réponse au handler

14. Le handler envoie une réponse à l’utilisateur

laurent.bach
jan 2019

Prenez le relais et diffusez cet article sur les réseaux :

Newsletter

Restez informé ! Abonnez-vous à notre newsletter

Votre adresse de messagerie est uniquement utilisée pour vous envoyer notre lettre d'information. Vous pouvez à tout moment utiliser le lien de désabonnement intégré dans la newsletter.