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
|