Guide du développeur sur l’authentification SAML [3 Online Tools]

Dans le monde d’aujourd’hui, simplifier la gestion des mots de passe est essentiel. Alors que les entreprises progressent dans la numérisation, les employés utilisent plus que jamais les outils de collaboration, de messagerie et de stockage.

Cela pose un défi aux développeurs : comment fournir aux employés un accès sécurisé aux applications internes et aux données stockées dans le cloud ? Pour beaucoup, la réponse est l’authentification SAML !

Qu’est-ce que SAML ?

Security Assertion Markup Language ou SAML est une norme ouverte qui simplifie les processus d’authentification. Il est basé sur XML (Extensible Markup Language), qui standardise la communication entre les entités à authentifier et le service ou l’application web. En d’autres termes, SAML est ce qui permet d’utiliser une seule connexion pour se connecter à plusieurs applications différentes.

D’une part, un fournisseur de services a besoin de l’authentification du fournisseur d’identité (IdP) pour accorder l’autorisation à l’utilisateur. Par exemple, Salesforce est un fournisseur de services qui s’appuie sur un fournisseur d’identité pour l’authentification des utilisateurs.

D’autre part, un fournisseur d’identité authentifie 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. Un exemple est AuthO, l’un des leaders dans la fourniture de solutions d’identité.

Qu’en est-il de l’authentification unique SAML ?

L’un des principaux rôles de SAML est d’activer le SSO. Avant SAML, le SSO était possible mais dépendant des cookies et viable uniquement sur le même domaine.

SAML permet l’authentification unique (SSO) en permettant aux utilisateurs d’accéder à plusieurs applications avec une seule connexion et un seul ensemble d’informations d’identification. Bien que SAML ne soit pas nouveau, il existe depuis 2002, et de nombreuses nouvelles applications et sociétés SaaS utilisent SAML pour SSO. Sa version la plus récente, SAML 2.0, permet l’authentification unique interdomaine basée sur le Web et constitue la norme pour l’autorisation des ressources.

Quels sont les avantages de l’authentification SAML ?

SAML apporte de nombreux avantages pour la sécurité, les utilisateurs et les autres fournisseurs de services (SP).

Simplicité : les utilisateurs ne se connectent qu’une seule fois à l’IdP, puis bénéficient d’un accès transparent et plus sécurisé à toutes les applications.

Sécurité accrue : de nombreux fournisseurs de services n’ont ni le temps ni les ressources nécessaires pour mettre en œuvre et appliquer l’authentification sécurisée des utilisateurs lors de la connexion. Généralement, les IdP sont mieux équipés pour authentifier les identités des utilisateurs. En renvoyant l’authentification à l’IdP, SAML permet une authentification sécurisée qui peut appliquer plusieurs couches de sécurité, telles que MFA.

Expérience utilisateur améliorée : grâce à SAML, vos utilisateurs peuvent dire adieu aux maux de tête liés à la mémorisation de plusieurs noms d’utilisateur et mots de passe

Frais de gestion réduits : les fournisseurs de services peuvent améliorer la sécurité de leur plate-forme sans stocker de mots de passe. Il n’est pas nécessaire de traiter les problèmes de mot de passe oublié. Le service d’assistance réduit les coûts et libère les équipes techniques pour traiter d’autres demandes urgentes.

Qu’est-ce que Auth0 et comment est-il connecté à l’authentification SAML ?

Auth0 est une plate-forme qui fournit un service d’authentification et d’autorisation des utilisateurs. Il peut être à la fois IdP et SP. Auth0 offre une connexion universelle qui peut être intégrée à SAML. Les développeurs utilisent souvent Auth0 avec SAML pour diversifier le risque en ayant plusieurs IdP.

Auth0 peut être utilisé avec presque tous les principaux langages et API. Il peut également être intégré à des fournisseurs sociaux, des bases de données et des annuaires LDAP.

Flux SSO SAML

L’un des principaux rôles de SAML est de permettre l’authentification unique (SSO). Avant SAML, le SSO était possible mais dépendant des cookies et viable uniquement sur le même domaine.

SAML active l’authentification unique en permettant aux utilisateurs d’accéder à plusieurs applications avec une seule connexion et des informations d’identification. SAML n’est pas nouveau, il existe depuis 2002, et de nombreuses nouvelles applications et sociétés SaaS utilisent SAML pour SSO. Sa version la plus récente, SAML 2.0, permet l’authentification unique interdomaine basée sur le Web et constitue la norme pour l’autorisation des ressources.

Concrètement, il s’agit de ne demander qu’une seule fois l’authentification de l’utilisateur lorsque celui-ci utilise différentes applications. On peut par exemple penser à l’authentification Google, partagée entre les différents services Gmail, Youtube, Google Apps, etc.

Dans ce mode de fonctionnement, Google est le fournisseur d’identité (IdP) pour ses services. Ces services sont appelés « fournisseurs de services » (SP).

Authentification

Lors de la connexion à l’application externe, celle-ci envoie l’utilisateur inconnu à l’IdP de l’entreprise. Cet IdP est un service web accessible en HTTPS. Il peut être hébergé en interne ou en externe.

Authentification interne

L’utilisateur prouve ensuite son identité à l’IdP. Cette phase peut se faire par authentification explicite (login/mot de passe) ou par la propagation d’un token préexistant.

Génération de l’assertion

L’IdP va alors générer un « token », sorte de carte d’identité de l’utilisateur, valable uniquement pour le service demandé et pour un temps donné. Dans ce jeton, on retrouvera notamment :

  • L’identité de l’utilisateur : login, email, ou autres champs
  • Attributs supplémentaires facultatifs : nom, prénom, langue, etc.
  • Une période de validité du jeton
  • Une signature du token par l’IdP

Transmission de l’IdP au SP

Dans le mode le plus pratique, l’assertion n’est pas transmise directement de l’IdP au SP mais via l’utilisateur lui-même. Grâce à un mécanisme de rebond HTTP, l’IdP fournira au navigateur client le jeton à transmettre au fournisseur de services. Elle peut être assimilée à la carte d’identité délivrée par la préfecture à présenter à toute autorité.

Consommation du jeton par le SP

Le fournisseur de services reçoit le jeton de l’utilisateur. Le SP a choisi de faire confiance à cet IdP. Il valide également la signature et l’intégrité du token, ainsi que la durée de validité. Si les tests sont concluants, le SP ouvre une session à l’utilisateur.

Source : Wikipédia

Authentification SAML Vs. Autorisation de l’utilisateur

L’authentification SAML est souvent confondue avec l’autorisation. Pour plus de clarté, il est important de différencier les concepts d’authentification et d’autorisation.

Authentification : c’est la validation de l’identité de l’utilisateur ; fondamentalement, il est vérifié s’ils sont bien ceux qu’ils prétendent être. Un exemple est l’utilisation d’un e-mail et d’un mot de passe pour accéder à un système – une session unique ou une connexion pour d’autres plates-formes.

Autorisation : il s’agit des autorisations que l’utilisateur accorde à un outil tiers pour accéder aux ressources de son compte. Avec l’approbation de l’utilisateur, le protocole d’autorisation échange des jetons sans accéder à ses informations d’identification. Vous le faites généralement lorsque vous autorisez une plate-forme (comme Facebook) à accéder à certaines informations de votre compte Google.

Terminologies incontournables de SAML

Assertion SAML

Les assertions SAML sont généralement transmises par les fournisseurs d’identité aux fournisseurs de services. Les assertions contiennent des déclarations que les fournisseurs de services utilisent pour prendre des décisions de contrôle d’accès. Trois types de déclarations sont fournis par SAML :

  • Les déclarations d’authentification affirment que le fournisseur de services s’est bien authentifié auprès du fournisseur d’identité à un instant donné avec une méthode d’authentification.
  • Une déclaration d’attribut affirme qu’un sujet est associé à certains attributs. Un attribut est simplement une paire nom-valeur. Les parties utilisatrices utilisent les attributs pour prendre des décisions de contrôle d’accès.
  • Une déclaration de décision autorisée affirme qu’un sujet est autorisé à agir sur une ressource en présentant des preuves pour cela. L’expressivité des états de décision d’autorisation dans SAML est délibérément limitée.

Service aux consommateurs d’assertion

Le service consommateur d’assertion ou ACS est le point où le fournisseur d’identité redirige après la réponse d’authentification de l’utilisateur. Le point vers lequel le fournisseur d’identité redirige est un point de terminaison HTTPS qui transfère des informations personnelles.

État du relais par défaut

Il s’agit de l’URL par défaut sur laquelle l’utilisateur sera redirigé une fois le message SAML authentifié. L’état de relais par défaut est utilisé pour coordonner les messages entre les IdP et les SP.

SAML est un protocole largement utilisé, et il faut souvent décoder les assertions SAML. Voici quelques-uns des meilleurs outils SAML pour encoder, décoder et formater les messages et les assertions SAML :

#1. Outil SAML

SAMltool by OneDesign est une collection d’outils et de kits d’outils SAML en ligne. Ceux-ci incluent divers outils pour encoder et décoder les messages SAML, chiffrer et déchiffrer les assertions, et signer et valider les messages et assertions SAML. SAMLtool fournit également plusieurs plugins différents pour intégrer ces outils à plusieurs CMS.

#2. Samtool.io

Offert par Auth0, samltool.io est un outil en ligne qui vous permet également de décoder, d’inspecter et de vérifier les messages et les assertions SAML en collant simplement du XML brut ou des URL contenant des requêtes.

#3. Décodeur SAM

Décodeur SAM est un simple outil en ligne de décodage SAML proposé par PingIdentity. Le décodeur SAM peut être utilisé pour décoder, gonfler et formater les messages, les assertions et les métadonnées SAML.

Derniers mots

Le standard SAML est très utile pour implémenter une instance d’authentification centrale basée sur le langage de balisage. L’un de ses avantages significatifs est qu’il offre une efficacité élevée et un niveau de sécurité élevé.

En particulier, le nombre de fuites de sécurité possibles est minimisé puisque les applications individuelles n’ont pas à stocker ou à synchroniser les données des utilisateurs. De cette façon, l’un des objectifs premiers est atteint, qui est de concilier un haut degré de sécurité avec le meilleur niveau de facilité d’utilisation possible.

Vous pouvez également consulter certaines des meilleures plates-formes d’authentification des utilisateurs.