# Security Assertion Markup Language

Security Assertion Markup Language (SAML) è uno standard informatico per lo scambio di dati di autenticazione e autorizzazione (dette asserzioni) tra domini di sicurezza distinti, tipicamente un identity provider (entità che fornisce informazioni di identità) e un service provider (entità che fornisce servizi). Il formato delle asserzioni SAML è basato su XML. SAML è mantenuto da OASIS Security Services Technical Committee.
Il problema principale che SAML cerca di risolvere è quello del Web Single sign-on (SSO) tra entità appartenenti a organizzazioni e domini di sicurezza distinti.
SAML richiede che l'utente (detto "principal") sia registrato presso almeno un identity provider. L'identity provider deve provvedere ad autenticare l'utente. Il service provider a questo punto si affida all'identity provider per identificare il principal. Su richiesta del principal, l'identity provider passa una asserzione SAML al service provider sulla base della quale quest'ultimo decide se permettere o negare l'accesso ai propri servizi da parte del principal.

## Storia

L'OASIS Security Services Technical Committee (SSTC), riunitosi per la prima volta nel gennaio 2001, fu istituito "con lo scopo di definire un framework XML finalizzato allo scambio di informazioni di autenticazione e di autorizzazione". Per questo obiettivo, al lavoro del comitato SSTC durante i primi due mesi di quell'anno, fu offerto il contributo di alcune proprietà intellettuali:
* Security Services Markup Language (S2ML) da Netegrity;
* AuthXML da Securant;
* XML Trust Assertion Service Specification (X-TASS) da VeriSign;
* Information Technology Markup Language (ITML) da Jamcracker.
OASIS, nel novembre 2002, annunciò le specifiche del Security Assertion Markup Language (SAML) versione 1.0 come standard OASIS.
Nel frattempo, la Liberty Alliance, un grosso consorzio di aziende, di società no profit e di organizzazioni governative, propose un'estensione dello standard SAML chiamato Liberty Identity Federation Framework (ID-FF). Come il suo predecessore SAML, Liberty ID-FF proponeva un framework standardizzato, interoperabile, web-based e dotato di Single sign-on. In più, Liberty descriveva un circle of trust, dove ogni dominio partecipante deve documentare accuratamente i processi usati per identificare l'utente, il tipo di sistema di autenticazione adottato e qualsiasi policy associata con le credenziali dell'autenticazione risultante. Altri membri federati possono esaminare queste policy per determinare se validare o meno queste informazioni.
Mentre Liberty stava sviluppando ID-FF, il comitato SSTC ha incominciato a lavorare su un aggiornamento minore dello standard SAML. Le risultanti specifiche SAML 1.1, ratificate dal SSTC nel settembre 2003, sono ampiamente implementate e sviluppate tutt'oggi. Quindi, nello stesso mese del 2003, Liberty ha devoluto ID-FF a OASIS, gettando le basi per la successiva nuova versione principale di SAML. Così, nel marzo 2005, SAML 2.0 è stato annunciato come standard OASIS. SAML 2.0 rappresenta la convergenza del Liberty ID-FF e di altre estensioni proprietarie, così come le precedenti versioni di SAML stesse. Implementazioni ed estensioni di SAML 2.0 sono proseguite negli anni successivi.

## Versioni

In sintesi, SAML ha subito una revisione minore e una maggiore dalla versione 1.0:
* SAML 1.0 è stato adottato come standard OASIS nel novembre 2002.
* SAML 1.1 è stato sancito come standard OASIS nel settembre 2003.
* SAML 2.0 è divenuto uno standard OASIS nel marzo 2005.
La Liberty Alliance ha devoluto il suo standard Identity Federation Framework (ID-FF) al comitato OASIS SSTC nel settembre 2003:
* ID-FF 1.1 è stato reso disponibile nell'aprile 2003.
* ID-FF 1.2 è stato ultimato nel novembre 2003.

### Differenze fra SAML 1.0 e SAML 1.1

Le versioni di SAML 1.0 e 1.1 sono simili. Per un'analisi delle differenze fra queste due versioni minori, si veda: Differences between OASIS Security Assertion Markup Language (SAML) V1.1 and V1.0.

### Differenze fra SAML 1.1 e SAML 2.0

Le differenze fra SAML 1.1 e SAML 2.0 sono sostanziali. Sebbene i due standard facciano riferimento allo stesso caso d'uso, SAML 2.0 è incompatibile con il suo predecessore.

### Differenze fra ID-FF 1.2 e SAML 2.0

Quantunque ID-FF 1.2 abbia rappresentato un contribuito per OASIS come base per lo standard SAML 2.0, ci sono alcune importanti differenze fra SAML 2.0 e ID-FF 1.2. In particolare, le rispettive specifiche, a dispetto della loro radice comune, sono incompatibili.