Le SSO ou l’authentification unique chez Mindbaz.

par | Juil 9, 2021

Avec la multiplication des produits Mindbaz ces dernières années, nous avons dû faire face à une réflexion sur la manière dont les utilisateurs allaient s’authentifier sur les différents sites et applications.

Dans l’éco-système Mindbaz, l’utilisateur est amené à se connecter à l’application Saas d’une part (Mail) mais également aux différents outils tels que Automation et SMS. Du côté des équipes Mindbaz, nous avons en plus à nous connecter à des outils de supervision et de Backoffice. Certains clients Mindbaz utilisent également un accès de compte API afin d’intégrer Mindbaz au cœur de leurs propres outils.

Parmi les solutions envisagées et ayant déjà une base de données regroupant les comptes utilisateurs, nous nous sommes naturellement dirigés vers un système d’authentification centralisé.

L’authentification unique aussi souvent appelée SSO pour single sign-on, est une méthode d’authentification centralisée visant à ne s’authentifier qu’une seule fois pour avoir accès à tout un ensemble d’applications sur lesquelles le compte utilisateur est autorisé à accéder.

Mise en place du SSO

La migration vers une authentification centralisée passe nécessairement par la mise en place d’un serveur d’authentification, il va jouer le rôle d’annuaire centralisé contrôlant les accès des utilisateurs aux différentes ressources. 

C’est ce dernier qui va délivrer un jeton d’authentification aussi appelé jeton JWT (Json web Token). Ce jeton sera ensuite transmis au client et renvoyé à chaque requête HTTP au serveur ce qui lui permettra d’identifier l’utilisateur.

 

Chez Mindbaz, nous avons également mis en place, couplé au serveur SSO, une application d’authentification regroupant les pages:

  • Authentification par login/mot de passe
  • Mot de passe oublié
  • Réinitialisation de mot de passe
  • Déblocage de compte

 

Cela permet en outre de centraliser les règles d’authentification telles que la définition du mot de passe ainsi que les actions sur le compte utilisateur.

schema authentification unique sso

Fonctionnement de l’authentification unique

Lorsque le serveur reçoit un jeton JWT lors d’une requête client (api ou application), celui-ci est validé grâce aux informations contenues dans sa charge utile aussi appelée “payload”. Cette charge contient notamment le moment précis auquel le jeton a été émis afin de déterminer si celui-ci est encore valide.

 

La durée de validité du token fait partie des paramètres qui sont définis dans le serveur d’authentification lors de l’émission de celui-ci.

Dans le cas où le token expire, la charge utile de celui-ci contient une donnée appelée “refresh token”. Lorsqu’une ressource est appelée (site/api) et que le token est désigné comme expiré, l’envoie de la donnée refresh token au SSO permets à l’application cliente de prolonger la validité de celui-ci en demandant l’émission d’un nouveau couple token/refresh_token. Lors de cette prolongation, le SSO re-valide les accès utilisateur et émets un nouveau couple token/refresh_token tout en invalidant les couples précédemment émis.

L’utilisateur est de ce fait “re-connecté” de manière transparente à la ressource à laquelle il voulait accéder.

requête authentification

Critiques et point de vigilances 

Le token donnant accès à de potentielles nombreuses ressources selon les droits accordés à l’utilisateur, si un compte est usurpé, une personne malveillante peut de ce fait avoir accès à beaucoup plus de données et d’applications qu’avec un compte unique par application. La mise en place de sécurités afin de renforcer l’aspect authentification vont donc de pair avec l’utilisation d’un SSO.

Chez Mindbaz nous avons en outre mis en place la double authentification afin de renforcer cet aspect, ainsi lors d’une nouvelle connexion depuis un lieu inconnu, une alerte mail est envoyée à l’utilisateur et un SMS de confirmation par code unique est nécessaire pour s’authentifier.

Oauth2

La mise en place d’un SSO est régie par des protocoles, notamment le protocole Oauth2 qui définit des spécifications techniques sur l’usage d’un tel mode d’authentification.

Ce protocole est plébiscité par de nombreux sites tels que Google et Facebook et s’est imposé comme un standard dans ce domaine.