SAML (Security Assertion Markup Language) permet un accès sécurisé et transparent à de multiples applications en échangeant des données d'authentification entre un fournisseur d'identité (IdP) et un fournisseur de services (SP).
Cela permet aux utilisateurs de se connecter une fois et d'accéder à divers services sans avoir à ressaisir leurs informations d'identification, améliorant ainsi la sécurité et l'expérience utilisateur dans les environnements d'entreprise. Dans cet article, nous allons explorer le fonctionnement de SAML et ses avantages.
Qu'est-ce que Security Assertion Markup Language (SAML) ?
L'authentification SAML (Security Assertion Markup Language) permet un accès sécurisé aux services en échangeant des données d'authentification et d'autorisation entre un fournisseur d'identité (IdP) et un fournisseur de services (SP). Ce protocole est couramment utilisé dans les environnements d'entreprise pour offrir aux utilisateurs un accès transparent à plusieurs applications en utilisant un seul ensemble d'informations d'identification.
Composants SAML
Voici les principaux composants et concepts de SAML :
- Fournisseur d'identité (IdP) : Il s'agit de l'entité qui authentifie un utilisateur et fournit une assertion au fournisseur de services. L'assertion contient des informations sur l'identité et les attributs de l'utilisateur.
- Fournisseur de services (SP) : Il s'agit de l'entité qui reçoit l'assertion SAML et prend des décisions de contrôle d'accès en fonction de celle-ci. Le fournisseur de services fait confiance au fournisseur d'identité pour authentifier les utilisateurs.
- Assertion SAML : Il s'agit du document XML que le fournisseur d'identité envoie au fournisseur de services. Il contient des informations d'authentification, des informations d'attribut et des décisions d'autorisation.
- Authentification unique (SSO) : SAML est couramment utilisé pour mettre en œuvre le SSO, permettant aux utilisateurs de s'authentifier une fois auprès d'un fournisseur d'identité et d'accéder à plusieurs fournisseurs de services sans se réauthentifier.
- Bindings : SAML prend en charge plusieurs liaisons pour le transport des messages, notamment HTTP Redirect, HTTP POST et SOAP.
- Protocole basé sur XML : SAML utilise XML pour encoder les messages échangés entre le fournisseur d'identité et le fournisseur de services.
SAML 2.0
En s'appuyant sur le concept de SAML, examinons SAML 2.0, qui est la version la plus largement utilisée de la norme. SAML 2.0 a introduit plusieurs améliorations et fonctionnalités par rapport à son prédécesseur, SAML 1.1 :
- Authentification unique (SSO) améliorée : SAML 2.0 a amélioré les capacités SSO, ce qui a facilité sa mise en œuvre et l'a rendu plus robuste en termes de sécurité et d'expérience utilisateur.
- Fédération d'identité : Il permet une fédération d'identité plus transparente entre différents domaines, ce qui permet aux utilisateurs d'accéder aux ressources de différentes organisations avec un seul processus d'authentification.
- Prise en charge de plusieurs contextes d'authentification : SAML 2.0 peut gérer différents niveaux d'assurance d'authentification, ce qui permet d'utiliser des méthodes d'authentification plus fortes si nécessaire.
- Échange de métadonnées : Cette version prend en charge l'échange de métadonnées entre les fournisseurs d'identité et les fournisseurs de services, ce qui permet d'automatiser la configuration et l'établissement de relations de confiance.
- Amélioration des liaisons de protocole : SAML 2.0 inclut une meilleure prise en charge de divers protocoles de transport, tels que HTTP Redirect, HTTP POST et Artifact Binding, améliorant ainsi la flexibilité et la compatibilité.
- Requête d'attribut et consentement : SAML 2.0 permet d'interroger les attributs utilisateur et de gérer le consentement de l'utilisateur plus efficacement, améliorant ainsi le contrôle de l'utilisateur sur les données personnelles.
Comment fonctionne l'authentification SAML ?
Processus d'authentification
L'authentification SAML commence lorsqu'un utilisateur lance le processus de connexion en saisissant ses informations d'identification auprès de l'IdP. L'IdP vérifie l'identité de l'utilisateur et crée une assertion SAML, qui contient les attributs de l'utilisateur et les informations d'authentification.
Cette assertion comprend des détails tels que l'identité de l'utilisateur, l'heure d'authentification et les conditions dans lesquelles l'assertion est valide. Pour garantir l'intégrité et l'authenticité des informations, l'assertion est signée numériquement par l'IdP.
Accès au service
Une fois authentifié, l'utilisateur tente d'accéder à un service fourni par le SP. Le SP, ayant besoin de vérifier l'identité de l'utilisateur, redirige l'utilisateur vers l'IdP avec une demande d'authentification. L'IdP répond en envoyant l'assertion SAML au SP, généralement via le navigateur de l'utilisateur à l'aide de HTTP POST ou HTTP Redirect.
Le SP valide ensuite l'assertion SAML en vérifiant la signature numérique et les conditions de l'assertion. Si l'assertion est valide, le SP accorde à l'utilisateur l'accès au service demandé. Ce processus est transparent pour l'utilisateur, qui n'a besoin de se connecter qu'une seule fois pour accéder à plusieurs services.
Exemple de scénario
Considérez un scénario d'entreprise typique. Au début de la journée de travail, John se connecte au système de gestion des identités et des accès (IAM) de son entreprise, qui sert d'IdP, en utilisant ses informations d'identification d'entreprise.
L'IdP vérifie les informations d'identification de John et crée une assertion SAML, qui comprend des informations telles que le nom d'utilisateur de John, l'horodatage d'authentification et les attributs d'accès basés sur les rôles. John tente ensuite d'accéder au service de messagerie hébergé de l'entreprise, un SP.
Le service de messagerie redirige John vers l'IdP avec une demande d'authentification. L'IdP renvoie l'assertion SAML au service de messagerie via le navigateur de John. Le service de messagerie valide l'assertion en vérifiant la signature numérique et en s'assurant que toutes les conditions sont remplies, comme le fait que l'assertion est destinée au service de messagerie et qu'elle n'a pas expiré.
Une fois validé, John est autorisé à accéder au service de messagerie sans avoir à ressaisir ses informations d'identification, ce qui lui permet d'utiliser le service de manière transparente.
Avantages de l'authentification SAML
En intégrant l'authentification SAML, les organisations peuvent rationaliser la gestion de l'accès des utilisateurs, renforcer la sécurité en réduisant le risque de fatigue et de réutilisation des mots de passe, et offrir aux utilisateurs un accès transparent à plusieurs applications. Cette intégration améliore en fin de compte l'efficacité opérationnelle et la sécurité.
Qu'est-ce qu'une assertion SAML ?
Une assertion SAML est un document XML qui est émis par un fournisseur d'identité (IdP) SAML et consommé par un fournisseur de services (SP). Il contient des déclarations sur un utilisateur auxquelles les deux parties peuvent faire confiance.
L'objectif principal de l'assertion SAML est de transmettre des informations de sécurité entre l'IdP et le SP de manière sécurisée et standardisée. Voici les principaux composants et types de déclarations trouvés dans une assertion SAML :
Composants clés
- Émetteur : L'entité qui a émis l'assertion, généralement l'IdP.
- Sujet : L'utilisateur ou l'entité concernée par l'assertion. Cela inclut généralement un identifiant unique pour l'utilisateur.
- Conditions : Contraintes et règles en vertu desquelles l'assertion est valide, y compris les restrictions de temps et les restrictions d'audience.
- Déclaration d'authentification : Informations sur l'authentification de l'utilisateur auprès de l'IdP, telles que la méthode d'authentification et l'horodatage.
- Déclaration d'attribut : Une collection d'attributs sur l'utilisateur, tels que le nom, l'adresse e-mail, les rôles, etc.
- Déclaration de décision d'autorisation : Informations sur les droits d'accès de l'utilisateur à des ressources spécifiques.
Types de déclarations
- Déclaration d'authentification : Décrit l'acte d'authentification auprès de l'IdP, y compris la méthode utilisée et l'heure de l'authentification.
- Déclaration d'attribut : Contient les attributs associés au sujet. Par exemple, l'adresse e-mail d'un utilisateur, ses rôles ou d'autres informations pertinentes.
- Déclaration de décision d'autorisation : Fournit des informations sur l'autorisation d'un utilisateur à accéder à une ressource spécifique. Cela inclut la décision (autoriser ou refuser) et la ressource en question.
Comment fonctionne l'assertion SAML
- L'utilisateur demande l'accès : L'utilisateur tente d'accéder à une ressource sur le SP.
- Le SP demande l'authentification : Le SP redirige l'utilisateur vers l'IdP pour l'authentification.
- L'utilisateur s'authentifie : L'utilisateur fournit ses informations d'identification à l'IdP.
- L'IdP émet une assertion : En cas d'authentification réussie, l'IdP génère une assertion SAML et la renvoie au SP, généralement via le navigateur de l'utilisateur.
- Le SP valide l'assertion : Le SP valide l'assertion, en vérifiant son intégrité, la validité de l'émetteur et les conditions.
- Accès accordé : Si l'assertion est valide, l'utilisateur est autorisé à accéder à la ressource.
Considérations de sécurité
- Chiffrement : Les assertions SAML peuvent être chiffrées pour garantir la confidentialité.
- Signature : Les assertions sont souvent signées pour garantir leur intégrité et leur authenticité.
- Expiration : Les assertions incluent des conditions, telles que des limites de temps, pour atténuer le risque d'attaques par rejeu.