# Security Assertion Markup Language

Security Assertion Markup Language (Llenguatge de marques per assercions de seguretat, SAML, pronunciat SAM-el, /ˈsæməl/) és un estàndard informàtic obert per intercanviar dades d'autenticació i autorització entre parts, en particular, entre un proveïdor d'identitat i un proveïdor de servei. SAML és un llenguatge de marques basat en XML, orientat a la seguretat.
SAML és també:
* Un conjunt de missatges de protocol basats en XML
* Un conjunt de normes que descriuen com els missatges es mapegen en missatges d'altres protocols
* Un conjunt de perfils (utilitzant els dos de dalt). Un perfil és un ús que se li dona, com ara: Autenticació única (SSO), tancament únic de sessió o Gestió d'identitats
L'autenticació única és relativament fàcil d'acomplir dins d'un àmbit de seguretat (utilitzant galetes, per exemple) però ampliant SSO arreu de diferents àmbits de seguretat és més difícil i acaba abocant a la proliferació de no-interoperabilitats entre tecnologies propietàries. El perfil SSO de Navegadors Web SAML fou especificat i estandarditzat per promoure la interoperabilitat.
Una asserció SAML és un document XML que el proveïdor d'identitat envia al proveïdor del servei que conté l'autorització de l'usuari:
* demostra que l'usuari està correctament identificat i diu quan ho ha fet
* li passa atributs al proveïdor del servei, petites peces de dades que aporten informació sobre l'usuari
* una asserció de decisió d'autorització diu si l'usuari ha estat autoritzat a usar aquest servei o si el proveïdor d'identitat li ha denegat la petició degut a un error en la contrasenya o una manca de priviliegis

## Descripció general

L'especificació de SAML defineix tres rols: el principal (típicament un usuari humà), el proveïdor d'identitat (IdP) i el proveïdor de servei (SP). En el cas d'ús bàsic adreçat per SAML, el principal llença una petició des del proveïdor del servei. El proveïdor del servei llença una petició al proveïdor d'identitat i que li retorna una asserció d'autenticació. En la base d'aquesta asserció, el proveïdor del servei pot decidir el control d'accés, és a dir, pot decidir si per donar el vist-i-plau a l'intent de connexió que fa el principal.
Al cor de l'asserció de SAML hi ha un subjecte (un principal dins del context d'un àmbit de seguretat particular) sobre el que s'està provant de comprovar la identitat. El subjecte acostuma a ser (tot i que no té per què) un ésser humà. Mentre a la Revisió Tècnica SAML 2.0, els termes subjectes i principal es fan servir de forma intercanviada.
Abans de comunicar l'asserció d'autenticació de l'IdP al SP, l'IdP pot demanar alguna informació del principal—com ara un nom d'usuari i contrasenya—per tal d'autenticar-lo. SAML especifica el contingut de l'asserció que l'IdP passarà al SP. A SAML, un proveïdor d'identitat pot proporcionar assercions a molts proveïdors de servei. Similarment, un SP pot fer les comprovacions a partir d'assercions de confiança de molts IdPs independents.
SAML no especifica el mètode d'autenticació al proveïdor d'identitat. L'IdP pot utilitzar un nom d'usuari i una contrasenya, o altres formes de autenticació, incloent l'autentificació de doble factor. Un servei de directori com RADIS, LDAP o Directori Actiu que permeten als usuaris identificar-se amb un nom d'usuari i una contrasenya són formes típiques d'autenticació de tokens usant un proveïdor d'identitat. Les xarxes socials populars d'Internet també proporcionen serveis d'identitat que, en teoria, poden ser usades per donar suport a intercanvis SAML.

## Història

El Comité Tècnic de Serveis de Seguretat OASIS, reunit per primer cop al gener del 2021, es va encarregar de "definir un marc de treball XML per l'intercanvi de la informació d'autorització i autenticació". Amb aquest objectiu, les propietats intel·lectuals de sota foren contribuïdes al Comité durant els primers dos mesos d'aquell any:
* Llenguatge de Marques de Serveis de Seguretat (S2ML) per Netegrity
* AuthXML per Securant
* Especificació de Servei d'Asserció de Confiança XML (X-TASS) per VeriSign
* Llenguatge de Marques de Tecnologies d'Informació (ITML) per Jamcracker
Desenvolupant a partir d'aquestes contribucions inicials, al novembre del 2002, OASIS va anunciar la versió 1.0 de l'especificació del Llenguatge de Marques de Serveis de Seguretat (S2ML) com un estàndard d'OASIS.
Mentre, la Liberty Alliance, un gran consorci d'empreses i organitzacions sense ànim de lucre i governamentals, va proposar una extensió a l'estàndard SAML, anomenat el Liberty Identity Federation Framework (ID-FF). Igual que el seu predecessor SAML, ID-FF va proposar un marc de treball estandarditzat, arreu de dominis, basat en web i d'autenticació única. Liberty també va descriure un cercle de confiança, on cada domini participant és confiat per acuradament documentar els processos usats per identificar un usuari, el tipus de sistema d'autenticació emprat i qualssevol polítiques associades amb les credencials d'autenticació emprades. Altres membres del cercle de confiança poden llavors examinar aquestes polítiques i determinar si confien en aquesta informació.
Mentre Liberty estava desenvolupant ID-FF, el SSTC va començar a treballar en una actualització menor de l'estàndard SAML. L'especificació SAML 1.1 resultant fou ratificada el setembre del 2003. Al novembre següent, Liberty va contribuir l' ID-FF a OASIS, plantant per tant la llavor per la següent versió major de SAML. Al març del 2005, SAML 2.0 fou anunciat com un estàndard OASIS, representant la convergència de Liberty ID-FF i les extensions propietàries contribuides pel projecte Shibboleth, així com versions anteriors de SAML mateix. La majoria d'implementacions de SAML suporten la versió 2.0 mentre moltes suporten la versió 1.1 per compatibilitat cap enrere. Cap al gener del 2008, els desplegaments de SAML 2.0 esdevingueren habituals en administració pública i empreses privades d'arreu del món.

## Versions

Les versions de SAML han estat:
* SAML 1.0, adoptat com aestàndard OASIS Standard al november del 2002
* SAML 1.1, ratificat com estàndard OASIS a setembre del 2003
* SAML 2.0, esdevingut estàndard OASIS al març del 2005
La Liberty Alliance va contribuir la seva Identity Federation Framework (ID-FF) a l'OASIS SSTC al setembre del 2003:
* ID-FF 1.1 publicat a l'abril del 2003
* ID-FF 1.2 finalitzat al november del 2003
Les versions 1.0 i 1.1 de SAML són diferents excepte algunes petites diferències. Entre 1.1 i 2.0, les diferències són substancials, estant adreçades al mateix cas d'ús i sent la 2.0 compatible amb el seu predecessor.
Tot i que ID-FF 1.2 fou contribuït a OASIS com la base de SAML 2.0, hi ha algunes diferències important entre SAML 2.0 i ID-FF 1.2. En particular, ambdues especificacions, malgrat les seves adreces comunes, són incompatibles.

## Referències

* ↑ «What is SAML? - A Word Definition From the Webopedia Computer Dictionary». Webopedia.com. [Consulta: 21 setembre 2013].
* ↑ «SAML profiles» (en anglès). IBM.com. [Consulta: 19 novembre 2021].
* ↑ J. Hughes et al. Profiles for the OASIS Security Assertion Markup Language (SAML) 2.0. OASIS Standard, March 2005. Document identifier: saml-profiles-2.0-os http://docs.oasis-open.org/security/saml/v2.0/saml-profiles-2.0-os.pdf (for the latest working draft of this specification with errata, see: https://www.oasis-open.org/committees/download.php/56782/sstc-saml-profiles-errata-2.0-wd-07.pdf)
* ↑ «What is a SAML Assertion?» (en anglès). varonis.com, 29-03-2020. [Consulta: 17 novembre 2021].
* ↑ N. Ragouzis et al. Security Assertion Markup Language (SAML) 2.0 Technical Overview. OASIS Committee Draft 02, March 2008. Document identifier: sstc-saml-tech-overview-2.0-cd-02 https://wiki.oasis-open.org/security/Saml2TechOverview
* ↑ «SAML: The Secret to Centralized Identity Management». InformationWeek.com, 23-11-2004. [Consulta: 23 maig 2014].
* ↑ «Minutes of 9 January 2001 Security Services TC telecon» (en anglès), 09-01-2001. [Consulta: 3 desembre 2021].
* 1 2 «Liberty Technology Overview» (en anglès). Liberty Alliance. Arxivat de l'original el 2021-10-06. [Consulta: 3 desembre 2021].

## Vegeu també

* OAuth
* OpenID

## Enllaços externs

* Com Estudiar i Aprendre SAML