SAML
Security assertion markup language (SAML) est un standard informatique définissant un protocole pour échanger des informations liées à la sécurité. Basé sur le langage XML, SAML a été développé par OASIS.
SAML propose l’authentification unique (en anglais single sign-on ou SSO) sur le web. De cette manière, un utilisateur peut naviguer sur plusieurs sites différents en ne s’authentifiant qu’une seule fois, sans pour autant que ces sites aient accès à des informations trop confidentielles.
Les solutions de SSO au sein d’un intranet abondent (en utilisant des cookies, par exemple), mais prolonger ces solutions au-delà d’un intranet est problématique, car cela peut entraîner la prolifération de technologies propriétaires dont chacune n’a pas nécessairement la capacité d’interagir avec les autres.
SAML est un standard supporté par un grand nombre de solutions de SSO pour les problèmes de gestion d’identité.
SAML suppose que le commettant (souvent un utilisateur) se soit inscrit avec au moins un fournisseur d’identité (en). Ce fournisseur d’identité est censé fournir des services d’authentification locaux au commettant. Cependant, SAML n’indique pas l’implémentation de ces services locaux ; en effet, pour SAML peu importe comment les services locaux d’authentification sont mis en application (bien que les fournisseurs de service s’en soucient certainement).
SAML repose sur un certain nombre de normes existantes:
- Extensible Markup Language (XML) : La plupart des échanges SAML sont exprimés dans une version normalisée de XML, dont on trouve la racine dans le mot SAML (Security Assertion Markup Language)
- XML Schema (XSD) : Les protocoles et les assertions SAML sont spécifiés à l’aide d’un XSD.
- XML Signature : SAML 1.1 et SAML 2.0 utilisent des signatures numériques (basées sur le standard XML Signature) pour l’authentification et l’intégrité des messages.
- XML Encryption : À l’aide de XML Encryption (en), SAML 2.0 fournit des éléments pour les identificateurs de nom chiffrés, les attributs chiffrés et les assertions chiffrées (SAML 1.1 ne dispose pas de fonctionnalités de chiffrement). Attention, il est aujourd’hui connu que XML Encryption a de graves problèmes de sécurité[1]
- Hypertext Transfer Protocol (HTTP) : SAML s’appuie fortement sur HTTP comme protocole de communication.
- SOAP : SAML spécifie l’utilisation de SOAP, en particulier de SOAP 1.1.
