Le SAML (Security Assertion Markup Language) est ​le protocole d’authentification ​le plus répandu ​et la solution SSO (Single Sign-On) utilisée dans les entreprises.

Qu’est-ce que le SSO ?

En termes simples, le SSO est ⁤l’équivalent en entreprise des boutons « Se connecter avec Google » ou « Se connecter avec Facebook » que l’on trouve sur de nombreuses applications en ligne. L’utilisateur crée d’abord un compte sur Google ou Facebook, puis utilise ce compte pour se connecter à d’autres applications comme Spotify, Netflix ⁤ou Zoom. Cela permet d’éviter de gérer plusieurs identifiants et​ mots⁣ de passe. De la même manière, les entreprises utilisent ⁤un système​ de gestion des utilisateurs unique, ⁣permettant à leurs⁤ employés de⁢ se connecter à des services tiers ‍tels ⁤que Salesforce, Workday ou Expensify sans avoir à créer des comptes⁣ séparés ou à mémoriser plusieurs mots de passe. Ce ‍processus est ⁤connu sous le nom de ⁢SSO, et le SAML est la solution SSO de facto pour les entreprises.

Acteurs

Trois acteurs principaux interviennent dans le flux d’authentification SAML :

Fournisseur d’identité (IdP)

C’est le système centralisé ​de gestion des utilisateurs mentionné précédemment. Ce serveur est chargé d’authentifier l’utilisateur et de transmettre des informations telles que l’adresse e-mail, le nom, le département, etc., au fournisseur⁢ de services. Parmi les fournisseurs d’identité populaires, on trouve ⁢Azure AD, Auth0, Onelogin, Okta et G Suite.

Fournisseur de services (SP)

Il s’agit de l’application qui fait confiance à ⁤l’IdP et souhaite l’utiliser pour l’authentification.⁤ Exemples⁢ : Salesforce, Workday,‌ Expensify, votre application préférée, etc.

Utilisateur

C’est la ​personne ‍qui tente de se connecter au SP‌ via l’IdP.

Flux d’authentification

Il existe deux méthodes courantes pour qu’un utilisateur accède au SP :

Connexion initiée par l’IdP ‍:

L’utilisateur⁤ se rend d’abord sur l’IdP et voit une liste des SP ​auxquels il ⁤a accès. En choisissant un SP dans ⁣cette liste, il est redirigé vers ce dernier.

Connexion initiée par le​ SP⁢ :

Dans ce flux, l’utilisateur⁣ commence par ⁤visiter le ‍site du SP. ⁢Si ​l’utilisateur n’a pas de session ​active avec le SP, il est redirigé ⁢vers l’IdP pour s’authentifier. Après une connexion réussie, l’utilisateur est renvoyé vers le SP. Nous allons examiner ce‌ flux en détail.

Flux initié par ⁢le SP :

Examinons le processus ⁤du point de vue de l’utilisateur.

  • L’utilisateur accède au site du SP. S’il‌ n’est pas ⁣connecté, un bouton « Se connecter⁤ avec SSO » s’affiche.
  • En cliquant sur le bouton⁤ de connexion, l’utilisateur est ⁤redirigé⁤ vers le site de l’IdP ⁢où ⁢il doit soumettre ses⁣ identifiants.
  • Après une connexion réussie, l’utilisateur ⁢est redirigé vers le site du SP où il peut effectuer son travail.

Analysons maintenant ce qui‌ se passe en coulisses :

  • Le SP vérifie la présence d’une session active.
  • Le SP envoie une AuthnRequest à l’IdP.
  • L’IdP authentifie l’utilisateur.
  • L’IdP envoie une assertion ⁣SAML au SP.
  • Le SP crée une session et connecte ⁢l’utilisateur.

Vérification de la session active par le SP

Le ⁣SAML ne gère pas les sessions,⁤ donc le SP doit maintenir des sessions pour⁣ chaque utilisateur authentifié. Lorsque l’utilisateur visite le site ⁢du SP, celui-ci vérifie si l’utilisateur a une ‌session active. Si une session active existe, l’utilisateur peut accéder au site,⁤ sinon un ‌bouton « Se connecter avec SSO » est affiché.

Envoi de ‌l’AuthRequest⁣ par⁣ le SP

Lorsque l’utilisateur clique⁢ sur le bouton « Se connecter avec‍ SSO », le SP génère un message XML appelé « AuthnRequest »⁣ contenant des informations⁢ sur l’expéditeur (Issuer), l’URL de ‌redirection après ⁣l’authentification (Assertion ⁢Consumer Service url) et des mesures de sécurité (ID, IssueInstant). Voici un exemple de XML AuthnRequest.

Ce XML est encodé en une chaîne sécurisée pour ⁣l’URL, ⁣intégrée comme paramètre de⁢ requête dans une demande‌ à l’IdP, et⁣ l’utilisateur est redirigé vers cette URL⁤ de l’IdP :

https://idp.com/SAML2/SSO/Redirect?SAMLRequest=EncodedAuthnRequest

Authentification‍ de l’utilisateur par l’IdP

L’IdP maintient sa propre ⁤session ⁤pour l’utilisateur et, ‌si une session active existe, l’utilisateur est redirigé⁤ vers le SP. Si aucune session n’existe,⁤ l’utilisateur est ​invité à entrer ses identifiants. ​L’IdP peut choisir la méthode d’authentification – cela peut⁢ être un nom d’utilisateur/mot de passe, TOTP, MFA, etc.

Envoi de l’assertion SAML par l’IdP

Une fois l’utilisateur authentifié avec succès, l’IdP renvoie un message ‌XML appelé « SAML Assertion » à l’URL de service de consommation d’assertion du SP. Ce message contient‍ les détails de l’utilisateur tels que le nom, l’e-mail, le département, etc., ainsi que des mesures de​ sécurité (InResponseTo, IssueInstant). Il ‌est également signé numériquement, permettant‌ au⁣ SP de vérifier que le message provient bien de⁤ l’IdP et d’authentifier⁢ l’utilisateur dans son système.

Création⁤ de la session et‌ connexion de l’utilisateur par le SP

L’utilisateur est maintenant connecté avec succès au site du‍ SP ! ⁣Le SP crée une session pour l’utilisateur afin qu’il puisse être automatiquement connecté lors de sa prochaine visite sur le site.

Conclusion

Nous ‍espérons que cet article vous a permis d’obtenir une vue d’ensemble du fonctionnement de l’authentification SAML et du SSO.

Merci‍ de votre lecture ! :)

Show Comments (0)
Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *