SAML

Indice dei contenuti

    SAML (Security Assertion Markup Language) è un protocollo XML-based standardizzato da OASIS per il Single Sign-On (SSO) aziendale. Permette a un Identity Provider (IdP) di autenticare l’utente e di emettere asserzioni — documenti XML firmati digitalmente — che i Service Provider (SP) accettano come prova di identità, senza richiedere una nuova autenticazione per ogni servizio. SAML 2.0 (2005) è lo standard dominante nell’SSO enterprise: Okta, Azure AD, OneLogin, Google Workspace lo supportano come IdP; migliaia di applicazioni SaaS (Salesforce, ServiceNow, GitHub Enterprise, Slack) lo supportano come SP.

    Entità e flusso

    Identity Provider (IdP): conosce l’utente, gestisce le credenziali, autentica l’utente e firma le asserzioni.

    Service Provider (SP): non gestisce credenziali proprie, si fida dell’IdP per l’autenticazione. Riceve e verifica l’asserzione SAML.

    Flusso SP-initiated (più comune):

    1. Utente accede a app.esempio.it (SP) senza essere autenticato
    2. SP genera un AuthnRequest XML e reindirizza l'utente all'IdP
    3. IdP autentica l'utente (credenziali aziendali, MFA)
    4. IdP genera un'asserzione SAML firmata e la invia al SP (via POST del browser)
    5. SP verifica la firma, estrae i claim, autentica l'utente e crea la sessione

    Struttura dell’asserzione SAML

    Un’asserzione SAML contiene tre tipi di statement:

    • Authentication Statement: chi ha autenticato l’utente, quando, con quale metodo (password, MFA, smart card).
    • Attribute Statement: attributi dell’utente (email, nome, gruppi di appartenenza, dipartimento) trasmessi allo SP per l’autorizzazione.
    • Authorization Decision Statement: (opzionale) se l’IdP vuole comunicare anche una decisione di accesso.

    L’asserzione è firmata con la chiave privata dell’IdP; lo SP verifica con la chiave pubblica dell’IdP (scambiata fuori banda via metadati SAML).

    Confronto con OpenID Connect

    AspettoSAML 2.0OpenID Connect
    FormatoXMLJSON/JWT
    Anno20052014
    ComplessitàAltaBassa
    Mobile/SPADifficileNativo
    EcosistemaEnterprise legacyCloud-native, moderno
    BindingHTTP Redirect, POSTHTTP Redirect, Bearer token

    SAML rimane dominante negli ambienti enterprise con applicazioni legacy; OpenID Connect è la scelta per nuovi sistemi e applicazioni moderne.

    Vulnerabilità

    XML Signature Wrapping (XSW): attacchi che manipolano la struttura XML dell’asserzione spostando il nodo firmato in modo che la firma rimanga valida ma i claim verificati siano diversi da quelli firmati. Richiedono implementazioni SAML con parsing XML rigoroso. Comment injection: inserire commenti XML dentro il campo NameID può causare comportamenti inattesi nei parser. Le librerie SAML certificate sono essenziali; le implementazioni personalizzate del parsing XML sono pericolose.

    Ultimo aggiornamento: