Qu’est-ce que SAML et comment fonctionne-t-il ?

Le langage SAML (Security Assertion Markup Language) est une norme ouverte qui permet aux fournisseurs d’identité (IdP) de transmettre des informations d’identification d’autorisation aux fournisseurs de services (SP). Ce que ce jargon signifie, c’est que vous pouvez utiliser un seul ensemble d’informations d’identification pour vous connecter à de nombreux sites Web différents. Il est beaucoup plus simple de gérer une connexion par utilisateur que de gérer des connexions distinctes à la messagerie, au logiciel de gestion de la relation client (CRM), à Active Directory, etc.

Les transactions SAML utilisent le langage de balisage extensible (XML) pour les communications normalisées entre le fournisseur d’identité et les fournisseurs de services. SAML est le lien entre l’authentification de l’identité d’un utilisateur et l’autorisation d’utiliser un service.

Get the Free Pen Testing Active Directory Environments EBook

« Cela m’a vraiment ouvert les yeux sur la sécurité AD d’une manière que le travail défensif n’a jamais fait. »

Le consortium OASIS a approuvé SAML 2.0 en 2005. La norme a beaucoup changé par rapport à la version 1.1, à tel point que les versions sont incompatibles. L’adoption de SAML permet aux ateliers informatiques d’utiliser des solutions SaaS (software as a service) tout en maintenant un système de gestion d’identité fédéré sécurisé.

SAML permet l’authentification unique (SSO), un terme qui signifie que les utilisateurs peuvent se connecter une fois, et que ces mêmes informations d’identification peuvent être réutilisées pour se connecter à d’autres fournisseurs de services.

À quoi sert SAML ?

SAML simplifie les processus d’authentification et d’autorisation fédérés pour les utilisateurs, les fournisseurs d’identité et les fournisseurs de services. SAML fournit une solution pour permettre à votre fournisseur d’identités et à vos fournisseurs de services d’exister séparément les uns des autres, ce qui centralise la gestion des utilisateurs et permet d’accéder aux solutions SaaS.

SAML met en œuvre une méthode sécurisée pour transmettre les authentifications et les autorisations des utilisateurs entre le fournisseur d’identités et les fournisseurs de services. Lorsqu’un utilisateur se connecte à une application compatible SAML, le fournisseur de services demande une autorisation au fournisseur d’identité approprié. Le fournisseur d’identité authentifie les informations d’identification de l’utilisateur, puis renvoie l’autorisation de l’utilisateur au fournisseur de services, et l’utilisateur peut alors utiliser l’application.

L’authentification SAML est le processus de vérification de l’identité et des informations d’identification de l’utilisateur (mot de passe, authentification à deux facteurs, etc.). L’autorisation SAML indique au fournisseur de services quel accès accorder à l’utilisateur authentifié.

Qu’est-ce qu’un fournisseur SAML ?

Deux types de fournisseurs SAML
Un fournisseur SAML est un système qui aide un utilisateur à accéder à un service dont il a besoin. Il existe deux principaux types de fournisseurs SAML, le fournisseur de services et le fournisseur d’identité.

Un fournisseur de services a besoin de l’authentification du fournisseur d’identité pour accorder l’autorisation à l’utilisateur.

Un fournisseur d’identité effectue l’authentification que l’utilisateur final est bien celui qu’il prétend être et envoie ces données au fournisseur de services avec les droits d’accès de l’utilisateur au service.

Microsoft Active Directory ou Azure sont des fournisseurs d’identité courants. Salesforce et d’autres solutions CRM sont généralement des fournisseurs de services, dans la mesure où ils dépendent d’un fournisseur d’identité pour l’authentification des utilisateurs.

Qu’est-ce qu’une assertion SAML ?

Une assertion SAML est le document XML que le fournisseur d’identité envoie au fournisseur de services et qui contient l’autorisation de l’utilisateur. Il existe trois types différents d’assertions SAML – authentification, attribut et décision d’autorisation.

  • Les assertions d’authentification prouvent l’identification de l’utilisateur et fournissent l’heure à laquelle l’utilisateur s’est connecté et quelle méthode d’authentification il a utilisée (I.e., Kerberos, 2 facteurs, etc.)
  • L’assertion d’attribution transmet les attributs SAML au fournisseur de services – Les attributs SAML sont des éléments de données spécifiques qui fournissent des informations sur l’utilisateur.
  • Une assertion de décision d’autorisation dit si l’utilisateur est autorisé à utiliser le service ou si le fournisseur d’identité a refusé sa demande en raison d’un échec de mot de passe ou d’un manque de droits sur le service.

Comment fonctionne SAML ?

SAML fonctionne en transmettant des informations sur les utilisateurs, les connexions et les attributs entre le fournisseur d’identité et les fournisseurs de services. Chaque utilisateur se connecte une fois à l’authentification unique avec le fournisseur d’identité, puis le fournisseur d’identité peut transmettre des attributs SAML au fournisseur de services lorsque l’utilisateur tente d’accéder à ces services. Le fournisseur de services demande l’autorisation et l’authentification au fournisseur d’identification. Comme ces deux systèmes parlent le même langage – SAML – l’utilisateur n’a besoin de se connecter qu’une seule fois.

Chaque fournisseur d’identité et chaque fournisseur de services doivent se mettre d’accord sur la configuration pour SAML. Les deux extrémités doivent avoir la configuration exacte pour que l’authentification SAML fonctionne.

Etapes de l'exemple SAML

Exemple SAML

  1. Frodo (utilisateur) se connecte au SSO à la première heure du matin.
  2. Frodo essaie ensuite d’ouvrir la page web de son CRM.
  3. Le CRM – le fournisseur de services – vérifie les informations d’identification de Frodo auprès du fournisseur d’identité.
  4. Le fournisseur d’identité renvoie des messages d’autorisation et d’authentification au fournisseur de services, ce qui permet à Frodo de se connecter au CRM.
  5. Frodo peut utiliser le CRM et accomplir son travail.
    « Besoin de 8 volontaires pour un projet difficile… »

SAML vs. OAuth

OAuth est une norme un peu plus récente qui a été codéveloppée par Google et Twitter pour permettre des logins internet simplifiés. OAuth utilise une méthodologie similaire à celle de SAML pour partager les informations de connexion. SAML offre plus de contrôle aux entreprises pour que leurs logins SSO soient plus sécurisés, tandis qu’OAuth est meilleur sur le mobile et utilise JSON.

Facebook et Google sont deux fournisseurs OAuth que vous pourriez utiliser pour vous connecter à d’autres sites internet.

Tutoriels SAML

Quelques ressources pour aider à rechercher exactement comment mettre en œuvre SAML :

  • Configurer SAML pour Salesforce
  • Configurer OKTA comme IDP SAML
  • OneLogin a des exemples dans 5 langages de programmation différents

SAML et SSO sont importants pour toute stratégie de cybersécurité d’entreprise. Les meilleures pratiques de gestion des identités exigent que les comptes utilisateurs soient à la fois limités aux seules ressources dont l’utilisateur a besoin pour faire son travail et qu’ils soient audités et gérés de manière centralisée. En utilisant une solution SSO, vous pouvez désactiver des comptes à partir d’un système et supprimer l’accès à toutes les ressources disponibles en une seule fois, ce qui protège vos données contre le vol.