TUTORIELS 
SAML: théorie & pratique

Page 1 | 2

Présentation de cette architecture XML permettant de s'assurer de la transmission sécurisée des données d'authentification entre plusieurs sites Web.
 (11 avril 2003)
 

Nous allons aborder dans cet article l'une des spécifications les plus prometteuses et avancées à l'heure actuelle autour de la sécurité et des Web Services: SAML (pour Security Assertion Markup Language, ou langage de balisage des énoncés de sécurité). La version 1.0 de ce standard a été ratifiée le 5 novembre 2002 par l'OASIS (Organization for the Advancement of Structured Information Standards).

La théorie
SAML est conçu pour faciliter "l'identification unique". En clair, il fournit l'interopérabilité nécessaire pour que les internautes puissent, en se connectant à un site, voir leurs informations automatiquement transférées vers les sites partenaires (par exemple: un voyagiste, une chaîne d'hôtels, un magasin de location et un restaurateur), ce qui les affranchira d'une resaisie, immédiate ou ultérieure.

SAML n'est pas en soit une nouvelle technologie ou une nouvelle approche de l'authentification en ligne, mais il décrit des schémas de protocoles pour la structure des documents qui relayent les informations relatives à la sécurité. De fait, il offre une manière standard d'échanger des informations pour l'authentification d'utilisateur, ses autorisations et ses informations/attributs, entre les documents XML des services Web.
Il faut noter que ce n'est pas SAML lui-même qui identifie et donne les autorisations d'accès aux utilisateurs, mais un serveur d'authentification travaillant en collaboration avec le répertoire LDAP (Lightweight Directory Access Protocol). SAML se contente d'assurer la liaison vers ce répertoire pour l'authentification, et agit selon la réponse donnée.

Déjà soutenu par les grands acteurs comme Microsoft, Sun, IBM, BEA ou encore RSA, SAML se profile comme étant le seul standard reconnu de sa catégorie, en attendant ceux d'autres organisations.

La pratique
SAML est conçu pour fonctionner avec les principaux protocoles disponibles: HTTP pour le Web, SMTP pour les mails, FTP pour les transferts de fichiers, ainsi que de nombreuses architectures XML, comme SOAP.

SAML est principalement fait de quatre composants:
- les "assertions",
- le protocole de requête/réponse,
- les encapsulations ("bindings"),
- les "profiles".

Les assertions sont elles-mêmes réparties en trois catégories:
- assertion d'authentification,
- assertion d'attribut,
- assertion d'autorisation.

Les assertions sont des déclarations d'un ou plusieurs "faits" à propos de l'utilisateur d'un service Web (qu'il soit une personne ou automatisé). Les assertions d'authentification requièrent que l'utilisateur puisse prouver son identité, celles d'attributs donnent des détails spécifiques sur l'utilisateur, et celles d'autorisation précise à quoi l'utilisateur a accès.

Elles contiennent toutes les informations suivantes:
- Tampon daté de l'émetteur ("issuer") et de l'établissement ("issuance"),
- ID de l'assertion,
- Nom de l'utilisateur et son domaine de sécurité (+ autres confirmations optionnelles, comme sa clé publique...),
- Conditions (selon lesquelles une assertion est valide),
- Conseil (sur la manière dont l'assertion a été créée).

Le protocole de requête/réponse défini la manière dont SAML gère les assertions, en entrée comme en sortie (SOAP par HTTP, ...).

Les encapsulations détaillent la manière dont les requêtes SAML doivent s'associer aux protocoles de transfert, comme l'échange de messages SOAP via HTTP.

Les profiles indiquent comment les assertions SAML peuvent être embarquées ou transportées entre les services (navigateur Web, SOAP...).

Page suivante, nous allons vous présenter quelques exemples de messages SAML...


Page 1 | 2

 
[ Xavier Borderie,JDNet
 
Accueil | Haut de page