Cos’è SAML e come funziona?

Security Assertion Markup Language (SAML) è uno standard aperto che permette ai fornitori di identità (IdP) di passare credenziali di autorizzazione ai fornitori di servizi (SP). Ciò che questo gergo significa è che si può usare un set di credenziali per accedere a molti siti web diversi. È molto più semplice gestire un login per utente piuttosto che gestire login separati per e-mail, software di gestione delle relazioni con i clienti (CRM), Active Directory, ecc.

Le transazioni SAML usano Extensible Markup Language (XML) per comunicazioni standardizzate tra il fornitore di identità e i fornitori di servizi. SAML è il collegamento tra l’autenticazione dell’identità di un utente e l’autorizzazione all’uso di un servizio.

Ottieni l’EBook gratuito Pen Testing degli ambienti Active Directory

“Questo mi ha davvero aperto gli occhi sulla sicurezza AD in un modo che il lavoro difensivo non ha mai fatto”.

Il consorzio OASIS ha approvato SAML 2.0 nel 2005. Lo standard è cambiato significativamente dalla 1.1, tanto che le versioni sono incompatibili. L’adozione di SAML permette ai negozi IT di utilizzare soluzioni SaaS (software as a service) mantenendo un sistema sicuro di gestione delle identità federate.

SAML permette il Single-Sign On (SSO), un termine che significa che gli utenti possono accedere una volta sola e quelle stesse credenziali possono essere riutilizzate per accedere ad altri fornitori di servizi.

A cosa serve SAML?

SAML semplifica i processi di autenticazione e autorizzazione federati per utenti, fornitori di identità e di servizi. SAML fornisce una soluzione per permettere al fornitore di identità e ai fornitori di servizi di esistere separatamente l’uno dall’altro, il che centralizza la gestione degli utenti e fornisce l’accesso alle soluzioni SaaS.

SAML implementa un metodo sicuro per passare le autenticazioni e le autorizzazioni degli utenti tra il fornitore di identità e i fornitori di servizi. Quando un utente accede a un’applicazione abilitata SAML, il fornitore di servizi richiede l’autorizzazione al fornitore di identità appropriato. Il fornitore di identità autentica le credenziali dell’utente e poi restituisce l’autorizzazione per l’utente al fornitore di servizi, e l’utente è ora in grado di utilizzare l’applicazione.

L’autenticazione SAML è il processo di verifica dell’identità e delle credenziali dell’utente (password, autenticazione a due fattori, ecc.). L’autorizzazione SAML dice al service provider quale accesso concedere all’utente autenticato.

Cos’è un SAML Provider?

Due tipi di SAML provider
Un SAML provider è un sistema che aiuta un utente ad accedere al servizio di cui ha bisogno. Ci sono due tipi principali di provider SAML, il service provider e l’identity provider.

Un service provider ha bisogno dell’autenticazione da parte dell’identity provider per concedere l’autorizzazione all’utente.

Un identity provider esegue l’autenticazione che l’utente finale è chi dice di essere e invia questi dati al service provider insieme ai diritti di accesso dell’utente al servizio.

Microsoft Active Directory o Azure sono comuni identity provider. Salesforce e altre soluzioni CRM sono di solito fornitori di servizi, in quanto dipendono da un fornitore di identità per l’autenticazione degli utenti.

Cos’è un’asserzione SAML?

Un’asserzione SAML è il documento XML che il fornitore di identità invia al fornitore di servizi e che contiene l’autorizzazione dell’utente. Ci sono tre diversi tipi di asserzioni SAML – autenticazione, attributo e decisione di autorizzazione.

  • Le asserzioni di autenticazione provano l’identificazione dell’utente e forniscono l’ora in cui l’utente ha effettuato l’accesso e quale metodo di autenticazione ha usato (ad esempio, Kerberos, 2 fattori, ecc.)
  • L’asserzione di attribuzione passa gli attributi SAML al fornitore di servizi – gli attributi SAML sono pezzi specifici di dati che forniscono informazioni sull’utente.
  • Un’asserzione di decisione di autorizzazione dice se l’utente è autorizzato ad usare il servizio o se il fornitore di identità ha negato la sua richiesta a causa di un errore di password o della mancanza di diritti al servizio.

Come funziona SAML?

SAML funziona passando informazioni su utenti, login e attributi tra il fornitore di identità e i fornitori di servizi. Ogni utente accede una volta al Single Sign On con il fornitore di identità, e poi il fornitore di identità può passare gli attributi SAML al fornitore di servizi quando l’utente tenta di accedere a quei servizi. Il fornitore di servizi richiede l’autorizzazione e l’autenticazione dal fornitore di identificazione. Poiché entrambi i sistemi parlano la stessa lingua – SAML – l’utente ha bisogno di accedere solo una volta.

Ogni fornitore di identità e fornitore di servizi deve concordare la configurazione per SAML. Entrambe le estremità devono avere l’esatta configurazione perché l’autenticazione SAML funzioni.

SAML example steps

SAML Example

  1. Frodo (utente) accede al SSO come prima cosa al mattino.
  2. Frodo poi prova ad aprire la pagina web del suo CRM.
  3. Il CRM – il fornitore di servizi – controlla le credenziali di Frodo con il fornitore di identità.
  4. Il fornitore di identità invia messaggi di autorizzazione e autenticazione al fornitore di servizi, che permette a Frodo di accedere al CRM.
  5. Frodo può usare il CRM e fare il suo lavoro.
    “Servono 8 volontari per un progetto difficile…”

SAML vs. OAuth

OAuth è uno standard un po’ più recente che è stato sviluppato da Google e Twitter per consentire l’accesso semplificato a Internet. OAuth usa una metodologia simile a SAML per condividere le informazioni di login. SAML fornisce più controllo alle imprese per mantenere i loro login SSO più sicuri, mentre OAuth è migliore su mobile e usa JSON.

Facebook e Google sono due provider OAuth che potresti usare per accedere ad altri siti internet.

Tutorial SAML

Alcune risorse per aiutare la ricerca su come implementare esattamente SAML:

  • Configurare SAML per Salesforce
  • Configurare OKTA come IDP SAML
  • OneLogin ha esempi in 5 diversi linguaggi di programmazione

SAML e SSO sono importanti per qualsiasi strategia di cybersecurity aziendale. Le migliori pratiche di gestione delle identità richiedono che gli account utente siano limitati solo alle risorse di cui l’utente ha bisogno per svolgere il proprio lavoro e che siano controllati e gestiti a livello centrale. Utilizzando una soluzione SSO, è possibile disattivare gli account da un sistema e rimuovere l’accesso a tutte le risorse disponibili in una sola volta, il che protegge i dati dal furto.