Il Single Sign-On (SSO) è un sistema di autenticazione che permette a un utente di autenticarsi una volta e accedere a più applicazioni collegate senza dover reinserire le credenziali a ogni passaggio.

La parte importante, però, non è avere “una password per tutto”. In un’architettura SSO moderna le applicazioni si fidano di un sistema centrale, chiamato Identity Provider (IdP), che autentica l’utente e comunica alle applicazioni informazioni verificabili sulla sua identità. Le singole applicazioni possono così creare la propria sessione senza dover gestire direttamente la password dell’utente.

È questo il meccanismo che rende possibile passare, per esempio, da un gestionale alla posta aziendale e poi a un’applicazione di project management senza affrontare tre login separati.

La comodità è evidente, ma centralizzare l’autenticazione significa anche concentrare una parte importante della sicurezza sull’Identity Provider. Per questo un SSO progettato bene deve essere accompagnato da autenticazione forte, gestione corretta delle sessioni, provisioning e revoca degli accessi.

In questa guida vediamo come funziona realmente il Single Sign-On, cosa cambia tra SAML e OpenID Connect, perché OAuth non è la stessa cosa dell’SSO e quali controlli servono per implementarlo senza trasformare l’accesso unico in un unico punto debole.

Cos’è il Single Sign-On e cosa significa SSO

SSO è l’acronimo di Single Sign-On, traducibile come accesso o autenticazione unica. L’obiettivo è ridurre il numero di autenticazioni che una persona deve effettuare quando utilizza più applicazioni appartenenti allo stesso ecosistema o collegate allo stesso sistema di identità.

Il modello è particolarmente comune negli ambienti aziendali: un dipendente si autentica presso l’Identity Provider dell’organizzazione e può poi aprire CRM, posta, strumenti collaborativi, intranet e altre applicazioni autorizzate senza inserire nuovamente nome utente e password.

La stessa logica può essere applicata a portali clienti, aree riservate, università, applicazioni SaaS e infrastrutture composte da più servizi.

Le linee guida NIST sulla federazione delle identità descrivono un modello in cui l’Identity Provider autentica l’utente e fornisce a una Relying Party un’asserzione verificabile; la Relying Party la controlla e crea quindi una sessione autenticata per quell’utente. Il documento osserva esplicitamente che questo processo può essere utilizzato per realizzare il Single Sign-On. linee guida NIST sulla federazione delle identità

SSO non significa usare la stessa password su più servizi

È una distinzione fondamentale.

Se utilizzi la stessa password per cinque account indipendenti, non stai usando il Single Sign-On. Stai semplicemente riutilizzando una credenziale, aumentando il danno potenziale nel caso venga compromessa.

Con un SSO federato, invece, normalmente la password viene presentata al sistema che autentica l’utente, non a ogni applicazione collegata. Le applicazioni ricevono una prova dell’avvenuta autenticazione attraverso il protocollo utilizzato.

Anche dire “con SSO esiste una sola password” può quindi essere fuorviante. L’utente potrebbe autenticarsi all’Identity Provider con una password, una passkey, un certificato, una combinazione multifattore o altri meccanismi. SSO descrive il modo in cui l’autenticazione viene condivisa tra sistemi fidati, non il tipo di autenticatore utilizzato.

Autenticazione, autorizzazione e sessione: tre concetti diversi

Gran parte della confusione sull’SSO nasce dal fatto che questi tre livelli vengono trattati come se fossero la stessa cosa.

Autenticazione risponde alla domanda: chi sei?

L’Identity Provider verifica l’identità dell’utente attraverso uno o più autenticatori.

Autorizzazione risponde invece alla domanda: cosa puoi fare?

Dopo aver identificato l’utente, l’applicazione deve stabilire quali risorse, dati o funzioni può utilizzare. Un amministratore e un redattore possono autenticarsi attraverso lo stesso IdP, ma avere autorizzazioni completamente diverse.

Sessione, infine, è lo stato che consente a un’applicazione di ricordare che quell’utente è già stato autenticato.

Questa distinzione è particolarmente importante nei CMS. Anche dopo aver implementato un sistema SSO, per esempio, devi continuare a decidere quali privilegi assegnare agli utenti. In WordPress questo compito resta affidato al sistema di ruoli e capability: la nostra guida sui ruoli WordPress e la gestione dei permessi spiega proprio come separare identità e privilegi.

SSO autentica l’utente; non decide automaticamente cosa quell’utente dovrebbe essere autorizzato a fare.

Come funziona il Single Sign-On passo dopo passo

Per capire davvero il funzionamento dell’SSO conviene dimenticare per un momento pulsanti, plugin e nomi commerciali e osservare i componenti coinvolti.

Nel modello più comune troviamo:

  • utente, che vuole utilizzare un’applicazione;
  • Identity Provider (IdP), che autentica l’utente;
  • applicazione, chiamata Service Provider nel linguaggio SAML o Relying Party in altri modelli di federazione.

Tra Identity Provider e applicazione deve esistere una relazione di fiducia configurata preventivamente o stabilita secondo il protocollo utilizzato. L’applicazione deve sapere da quale IdP può accettare una risposta e deve essere in grado di verificarne autenticità, integrità e destinazione.

Cosa succede al primo login

Immagina che un dipendente apra un’applicazione aziendale che utilizza SSO.

  1. L’utente richiede una pagina protetta.
  2. L’applicazione vede che non esiste ancora una sessione autenticata.
  3. L’utente viene indirizzato verso l’Identity Provider.
  4. L’IdP verifica l’identità, se necessario chiedendo password, passkey, MFA o un altro autenticatore.
  5. Dopo l’autenticazione, l’IdP produce una risposta secondo il protocollo configurato.
  6. L’applicazione verifica quella risposta.
  7. Se tutti i controlli sono validi, crea la propria sessione locale.

Da quel momento l’applicazione non ha bisogno di chiedere nuovamente la password a ogni pagina visitata: utilizza la propria sessione fino alla scadenza o alla revoca.

La stessa logica è descritta anche dalla documentazione Microsoft sull’SSO federato: l’applicazione reindirizza l’utente al provider di identità, l’IdP verifica l’identità e l’applicazione concede l’accesso sulla base della risposta ricevuta.

Cosa succede quando apri una seconda applicazione

Qui si trova una delle semplificazioni più frequenti.

La seconda applicazione non deve necessariamente ricevere o riutilizzare lo stesso token della prima.

Supponiamo che l’utente, già autenticato, apra una seconda applicazione collegata allo stesso Identity Provider.

La nuova applicazione può avviare il proprio flusso di autenticazione verso l’IdP. Il browser raggiunge quindi l’Identity Provider, che riconosce una sessione ancora valida e non ha bisogno di chiedere nuovamente le credenziali.

L’IdP può quindi produrre una nuova risposta destinata alla seconda applicazione. Quest’ultima la verifica e apre la propria sessione.

Dal punto di vista dell’utente sembra che “il primo login valga ovunque”. Tecnicamente, invece, ogni applicazione continua a dover verificare una risposta valida per il proprio contesto.

Flusso Single Sign-On in cui due applicazioni utilizzano lo stesso Identity Provider ma mantengono sessioni separate
Nel Single Sign-On le applicazioni si fidano dello stesso Identity Provider, ma mantengono sessioni separate.

È anche per questo che controlli come destinatario, audience, firma, issuer, scadenza e protezione dal replay sono così importanti nei sistemi federati. Le linee guida NIST richiedono esplicitamente che la Relying Party validi l’asserzione dell’IdP e definiscono protezioni specifiche contro il riutilizzo improprio delle asserzioni.

Token, asserzioni, cookie e sessioni: cosa viene davvero scambiato

Parlare genericamente di “token SSO” è comodo, ma rischia di nascondere differenze importanti.

Con SAML, l’Identity Provider può produrre una SAML Assertion, cioè una struttura XML contenente dichiarazioni relative all’utente e all’evento di autenticazione.

Con OpenID Connect, uno degli elementi centrali è l’ID Token, che contiene informazioni verificabili sull’autenticazione e sull’identità dell’utente.

Nel mondo OAuth, invece, troviamo gli access token, utilizzati per autorizzare l’accesso a risorse protette. Non vanno confusi automaticamente con una prova di identità.

Dopo aver verificato ciò che riceve dal sistema di identità, l’applicazione può creare una sessione locale, spesso rappresentata nel browser attraverso un cookie di sessione.

Questo significa che in una singola architettura possono convivere diversi oggetti con funzioni differenti:

ElementoFunzione principale
Password, passkey, MFAautenticare l’utente presso il sistema che verifica l’identità
SAML Assertioncomunicare informazioni verificabili in una federazione SAML
ID Token OIDCcomunicare al client informazioni sull’autenticazione dell’utente
OAuth Access Tokenconsentire l’accesso autorizzato a una risorsa/API
Cookie di sessionemantenere la sessione dell’utente nell’applicazione

Capire queste differenze evita molti errori di progettazione.

Quali protocolli vengono usati per il Single Sign-On

SSO non è un singolo protocollo. È un risultato architetturale che può essere ottenuto con tecnologie differenti.

Nel Web SSO moderno i due riferimenti più importanti sono SAML 2.0 e OpenID Connect. In reti aziendali e sistemi integrati con directory possono entrare in gioco anche tecnologie come Kerberos.

SAML 2.0: come funziona il Web SSO enterprise

SAML, Security Assertion Markup Language, è uno standard OASIS utilizzato da anni per la federazione delle identità e il Web Single Sign-On.

La documentazione tecnica ufficiale SAML 2.0 di OASIS definisce assertion, protocolli, binding, profili e metadata necessari per permettere a sistemi differenti di scambiare informazioni di sicurezza. Tra i profili previsti rientra proprio il Web SSO.

In uno scenario tipico:

  • l’applicazione svolge il ruolo di Service Provider (SP);
  • il sistema di identità è l’Identity Provider (IdP);
  • l’IdP autentica l’utente;
  • produce una SAML Assertion;
  • il Service Provider verifica la risposta e apre la sessione.

Le assertion SAML sono basate su XML e possono trasportare informazioni sull’identità e attributi necessari all’applicazione.

Un esempio italiano molto concreto è SPID: le regole tecniche lo descrivono come sistema federato basato sul framework SAML e sul profilo Web Browser SSO. regole tecniche di SPID

SAML rimane particolarmente diffuso nell’ecosistema enterprise, soprattutto quando devono essere integrate applicazioni SaaS o sistemi aziendali che lo supportano nativamente.

OpenID Connect: autenticazione moderna per web, mobile e cloud

OpenID Connect, spesso abbreviato in OIDC, è un livello di identità costruito sopra OAuth 2.0.

Questa formulazione non è una reinterpretazione commerciale: è il modello definito dalla stessa specifica OpenID Connect Core. OIDC consente a un client di verificare l’identità dell’utente sulla base dell’autenticazione effettuata dall’Authorization Server e di ottenere informazioni di base sul suo profilo.

OIDC si integra bene con architetture web moderne, applicazioni mobili, API e ambienti cloud. Utilizza primitive dell’ecosistema OAuth e introduce elementi specifici per l’identità, tra cui l’ID Token.

In un flusso moderno basato su Authorization Code, l’applicazione riceve prima un codice e lo scambia attraverso un canale appropriato per ottenere i token necessari. Le best practice di sicurezza OAuth correnti richiedono PKCE per i client pubblici e ne raccomandano l’uso anche per i client confidenziali; sconsigliano invece l’Implicit Grant tradizionale salvo condizioni particolari. Best Current Practice IETF per la sicurezza OAuth 2.0

Per una nuova applicazione web o mobile, quindi, OIDC è normalmente una delle prime opzioni da valutare quando serve autenticazione federata.

Perché OAuth 2.0 da solo non è un protocollo di autenticazione

Questo è probabilmente l’equivoco più importante da eliminare.

OAuth 2.0 è un framework di autorizzazione.

La RFC 6749 che definisce OAuth 2.0 descrive un meccanismo attraverso il quale un’applicazione può ottenere accesso limitato a un servizio HTTP per conto di un resource owner o per conto proprio.

Il suo compito principale non è dire al client chi è l’utente.

Serve a stabilire quale accesso viene concesso a una risorsa.

Per costruire un login interoperabile nell’ecosistema OAuth si utilizza normalmente OpenID Connect, che aggiunge il livello di identità. Anche le best practice IETF distinguono OAuth come sistema per la protezione/accesso alle API e OpenID Connect come base del federated login.

Per questo una frase come “usiamo OAuth per autenticare gli utenti” è spesso troppo imprecisa. La domanda corretta è: stiamo implementando OAuth per delegare autorizzazioni oppure OpenID Connect per stabilire l’identità dell’utente?

Le due cose possono convivere nello stesso flusso, ma non sono intercambiabili.

Kerberos e il Single Sign-On nelle reti aziendali

SAML e OIDC dominano gran parte delle discussioni sul Web SSO, ma non sono le uniche tecnologie coinvolte.

Kerberos è un protocollo di autenticazione di rete basato su ticket, standardizzato nell’RFC 4120. È storicamente importante negli ambienti aziendali e nelle infrastrutture integrate con directory e domini.

In un ambiente gestito, un utente che ha già effettuato l’accesso alla propria postazione può ottenere ticket utilizzabili per autenticarsi verso servizi compatibili senza reinserire continuamente le proprie credenziali.

Il modello, però, è diverso dalla federazione Web tipica di SAML e OpenID Connect. Per questo “SSO” non identifica da solo il protocollo utilizzato: prima di scegliere un’integrazione bisogna capire applicazioni, client, infrastruttura e domini di sicurezza coinvolti.

SAML vs OpenID Connect: quale scegliere per l’SSO

SAML e OpenID Connect possono entrambi supportare scenari Single Sign-On, ma sono nati in contesti diversi e usano meccanismi differenti.

CriterioSAML 2.0OpenID Connect
Funzionefederazione identità e Web SSOautenticazione/identità sopra OAuth 2.0
Formato caratteristicoXML / SAML AssertionJSON, ID Token basato su JWT
Attori tipiciIdentity Provider + Service ProviderOpenID Provider + Relying Party
Contesto storico forteapplicazioni web enterpriseweb moderno, mobile, cloud
APInon è il suo caso d’uso principalesi integra naturalmente con l’ecosistema OAuth
Applicazioni enterprise esistentisupporto molto diffusodipende dall’applicazione
Nuove applicazionivalido se richiesto dall’ecosistemaspesso più naturale
Scelta correttadipende dal supporto delle applicazioni e dall’architetturadipende dal supporto delle applicazioni e dall’architettura

Non trasformerei questa tabella in una regola “SAML vecchio, OIDC nuovo”.

Sarebbe comodo, ma sbagliato.

Quando SAML continua ad avere senso

SAML è spesso la scelta naturale quando devi integrare:

  • software enterprise che lo supporta già;
  • applicazioni SaaS progettate intorno alla federazione SAML;
  • infrastrutture in cui metadata, certificati e integrazioni SAML sono già standardizzati;
  • organizzazioni con numerose applicazioni legacy o consolidate.

Se l’applicazione supporta bene SAML e l’organizzazione possiede già un’infrastruttura federata basata su questo standard, migrare a OIDC soltanto perché appare più moderno può aggiungere lavoro senza un beneficio concreto.

Quando OpenID Connect è la scelta più naturale

OIDC diventa particolarmente interessante quando stai progettando:

  • nuove applicazioni web;
  • applicazioni mobile;
  • architetture cloud;
  • ecosistemi che utilizzano già OAuth per l’accesso alle API;
  • applicazioni che beneficiano di JSON, discovery e componenti moderni dell’ecosistema OAuth/OIDC.

La documentazione Microsoft, per esempio, presenta OIDC come protocollo adatto alle applicazioni web moderne e mobile, mentre riconosce a SAML una forte compatibilità con applicazioni enterprise consolidate.

La differenza che conta davvero nella progettazione

La scelta non dovrebbe partire dal protocollo che “va di moda”.

Dovrebbe partire da quattro domande:

Quali protocolli supportano realmente le applicazioni?

Se un SaaS supporta solo SAML, la discussione è già quasi conclusa.

Che tipo di client dobbiamo autenticare?

Una tradizionale applicazione web server-side e un’app nativa mobile non hanno necessariamente le stesse esigenze.

Abbiamo bisogno anche di accesso delegato alle API?

In un ecosistema fortemente basato su API, l’integrazione OIDC/OAuth può risultare più naturale.

Quale infrastruttura di identità possediamo già?

Un cambio di protocollo può coinvolgere configurazioni, librerie, policy, formazione, monitoraggio e procedure operative.

Il protocollo è quindi una scelta architetturale, non una classifica assoluta.

SSO non è MFA, OAuth, password manager o SCIM

Molti strumenti legati all’identità vengono accostati all’SSO perché compaiono nello stesso processo di login. In realtà risolvono problemi differenti.

Capire dove termina una tecnologia e inizia l’altra evita sia configurazioni ridondanti sia pericolosi buchi di sicurezza.

SSO e MFA: accesso unico e verifica forte sono complementari

SSO riduce quante volte devi autenticarti. MFA aumenta il livello di verifica durante l’autenticazione.

Sono quindi complementari.

Anzi, proprio perché l’Identity Provider può aprire la strada a numerose applicazioni, proteggere l’autenticazione centrale diventa particolarmente importante.

In scenari a rischio elevato conviene valutare anche autenticatori resistenti al phishing. Le linee guida NIST distinguono esplicitamente l’autenticazione crittografica phishing-resistant e citano WebAuthn come esempio di meccanismo che lega l’autenticatore al dominio del verifier. indicazioni NIST sulla phishing resistance

Se lavori con WordPress, puoi approfondire separatamente come funziona l’autenticazione a due fattori per WordPress: è un livello di sicurezza diverso dall’SSO e può essere applicato all’accesso locale o, a seconda dell’architettura, direttamente sull’Identity Provider.

SSO e passkey: perché una passkey non sostituisce la federazione

Una passkey può sostituire o affiancare password tradizionali nel processo di autenticazione, utilizzando credenziali crittografiche basate sulle tecnologie FIDO/WebAuthn.

La specifica WebAuthn del W3C definisce l’API Web utilizzata per creare e usare credenziali a chiave pubblica per l’autenticazione.

Ma una passkey e l’SSO risolvono due problemi differenti.

La passkey può essere il modo con cui ti autentichi presso l’Identity Provider.

SSO è invece il meccanismo attraverso cui quell’autenticazione può essere utilizzata da più applicazioni fidate.

Le due tecnologie possono quindi lavorare insieme: accesso all’IdP con passkey e successiva federazione verso le applicazioni.

SSO e password manager risolvono problemi differenti

Un password manager conserva e compila credenziali separate.

Se hai cinque servizi indipendenti, puoi avere cinque username e cinque password differenti custoditi nel password manager.

Con un SSO federato, invece, le applicazioni delegano l’autenticazione a un sistema di identità condiviso.

Il password manager riduce il problema umano di creare, ricordare e digitare molte credenziali. L’SSO modifica l’architettura dell’autenticazione.

Un password manager può quindi essere utilissimo anche in un’organizzazione dotata di SSO, perché continueranno quasi sempre a esistere account che non possono essere federati.

Social login e SSO aziendale: dove si assomigliano e dove cambiano

“Accedi con Google”, “Accedi con Apple” e meccanismi simili possono utilizzare tecnologie di identità federata e offrire un’esperienza molto vicina al Single Sign-On: il sito si affida a un provider esterno invece di chiedere all’utente di creare una nuova password.

Ma social login e SSO enterprise non sono automaticamente la stessa soluzione di governance.

In un’organizzazione, l’Identity Provider può essere collegato a directory aziendali, policy MFA, gruppi, gestione dei dispositivi, processi di ingresso e uscita del personale e controlli di sicurezza centralizzati.

Nel social login l’obiettivo prevalente è spesso ridurre l’attrito di registrazione e accesso dell’utente.

Questa distinzione è utile anche in WordPress: la nostra guida sul login WordPress affronta anche gli accessi tramite provider esterni, ma un pulsante social non equivale automaticamente a un sistema IAM aziendale.

SCIM e provisioning: creare un account non significa autenticarlo

Un altro equivoco comune riguarda SCIM, System for Cross-domain Identity Management.

SCIM non serve principalmente a effettuare il login. Serve a provisionare e gestire dati di identità tra sistemi.

La specifica SCIM RFC 7644 definisce operazioni per creare, modificare, recuperare e gestire risorse di identità come utenti e gruppi.

La differenza pratica è enorme.

Immagina l’arrivo di una nuova dipendente:

  • SCIM può contribuire a creare il suo account nelle applicazioni previste;
  • SSO può permetterle di autenticarsi attraverso l’Identity Provider;
  • il sistema di autorizzazione dell’applicazione stabilisce cosa può fare.

Quando lascia l’azienda, il problema si presenta al contrario: disabilitare l’accesso sull’IdP è fondamentale, ma un buon processo di offboarding deve verificare anche account provisionati, sessioni esistenti, token, permessi e risorse che potrebbero sopravvivere.

SSO e provisioning devono quindi essere progettati insieme, pur restando due funzioni diverse.

Quali sono i vantaggi reali del Single Sign-On

Il vantaggio più visibile dell’SSO è evitare login ripetuti. I benefici più interessanti, però, emergono quando lo si osserva come parte di un sistema IAM più ampio.

Meno attrito e meno password da gestire

Se un utente accede ogni giorno a dieci applicazioni indipendenti, dieci sistemi di credenziali separati aumentano inevitabilmente il lavoro necessario per gestire accessi, recuperi e password.

Centralizzare l’autenticazione può ridurre questo attrito.

Non significa che tutte le password spariscano, né che SSO elimini la necessità di un password manager. Significa che le applicazioni federate non hanno più bisogno di mantenere ciascuna un’esperienza di autenticazione completamente indipendente.

Il beneficio aumenta con il numero di utenti e di applicazioni compatibili.

Policy di autenticazione e MFA più coerenti

Un Identity Provider centrale consente di applicare parte della strategia di autenticazione in un punto comune.

Per esempio, puoi decidere che determinati utenti o applicazioni richiedano MFA, un autenticatore più forte o una nuova verifica in condizioni specifiche.

Questo rende più semplice governare l’accesso rispetto a un ambiente in cui ogni applicazione possiede password, impostazioni e policy completamente indipendenti.

L’SSO, però, non rende automaticamente sicura una policy debole: centralizzare una cattiva autenticazione significa applicarla in modo più uniforme, non trasformarla in una buona autenticazione.

Accessi più semplici da governare in organizzazioni con molte applicazioni

L’identità centralizzata facilita anche la visibilità sull’ecosistema applicativo.

Diventa più semplice stabilire:

  • quali applicazioni utilizzano l’IdP;
  • quali gruppi possono accedervi;
  • quali attributi vengono trasmessi;
  • quali policy di autenticazione si applicano;
  • quali integrazioni devono essere rimosse quando non servono più.

Quando l’SSO viene integrato con provisioning, directory e processi IAM, il beneficio operativo può diventare molto più importante del semplice “non inserire di nuovo la password”.

Cosa l’SSO non risolve da solo

SSO non sostituisce:

  • gestione dei ruoli;
  • principio del minimo privilegio;
  • provisioning e deprovisioning;
  • MFA;
  • audit e logging;
  • protezione delle sessioni;
  • sicurezza degli endpoint;
  • gestione dei dispositivi;
  • recovery degli account.

Se un utente viene autenticato correttamente ma riceve privilegi eccessivi, l’SSO non corregge il problema.

Se l’account viene disabilitato sull’IdP ma una particolare applicazione mantiene una sessione locale valida senza adeguati meccanismi di revoca, il logout centrale potrebbe non produrre l’effetto che l’amministratore si aspetta.

Il Single Sign-On è quindi un componente dell’Identity and Access Management, non l’intera strategia IAM.

Quali rischi introduce il Single Sign-On

Dire che SSO “aumenta la sicurezza” senza condizioni è troppo semplicistico.

Un’architettura corretta può ridurre alcuni rischi e migliorare il controllo. Allo stesso tempo, la centralizzazione crea asset di identità estremamente importanti e rende più grave una loro eventuale compromissione.

Se l’identità viene compromessa aumenta il raggio dell’attacco

Se un aggressore compromette un account separato utilizzato per una sola applicazione, il danno iniziale può restare confinato a quel servizio.

Se compromette invece un’identità federata con accesso a numerose applicazioni, il blast radius può essere molto maggiore.

È uno dei motivi per cui l’Identity Provider deve essere trattato come infrastruttura critica:

  • autenticazione forte;
  • protezione degli account amministrativi;
  • logging;
  • alert;
  • recovery sicuro;
  • controllo delle sessioni;
  • verifica delle integrazioni;
  • limitazione dei privilegi.

Il rischio non dimostra che SSO sia meno sicuro. Dimostra che centralizzazione e protezione dell’IdP devono crescere insieme.

Cosa succede se l’Identity Provider non è disponibile

La centralizzazione introduce anche una dipendenza operativa.

Se le applicazioni hanno bisogno dell’IdP per stabilire nuove sessioni e il servizio di identità non è raggiungibile, gli utenti potrebbero non riuscire a effettuare nuovi accessi.

Le sessioni locali già aperte potrebbero continuare a funzionare oppure no, a seconda dell’architettura e delle policy configurate.

Per servizi critici conviene quindi pianificare:

  • alta disponibilità del sistema di identità;
  • monitoraggio;
  • procedure di recovery;
  • account di emergenza dove appropriato;
  • test del comportamento delle applicazioni durante un’indisponibilità.

L’account di emergenza, però, non deve diventare una backdoor permanente con password debole e nessun controllo.

Sessioni, token rubati e logout incompleto

Avere MFA sul login non impedisce automaticamente ogni attacco successivo.

Un aggressore che riesca a sottrarre una sessione o un token utilizzabile potrebbe tentare di agire senza ripetere il processo di autenticazione originale.

Per questo la sicurezza del Single Sign-On comprende anche:

  • protezione dei cookie;
  • durata appropriata delle sessioni;
  • audience corretta;
  • validazione di issuer e firma;
  • protezione dal replay;
  • gestione di token e refresh token;
  • revoca;
  • reautenticazione per operazioni sensibili.

Nel mondo OAuth/OIDC, la Best Current Practice IETF documenta esplicitamente rischi come token leakage, token replay, redirect non sicuri e furto di authorization code, oltre alle contromisure raccomandate.

Anche il logout richiede attenzione. OpenID Connect dispone di specifiche dedicate a session management, RP-Initiated Logout, Front-Channel Logout e Back-Channel Logout: chiudere una sessione in un punto non significa automaticamente che qualunque sessione aperta in qualunque applicazione sia già terminata. specifiche OpenID Connect per sessioni e logout

MFA resistente al phishing, recovery e account di emergenza

Più applicazioni dipendono da una singola identità, più diventa importante la qualità dell’autenticazione iniziale.

Per gli account con privilegi elevati o con accesso a dati sensibili conviene valutare metodi crittografici resistenti al phishing, insieme a una strategia di recovery che non vanifichi la protezione.

Un sistema può infatti utilizzare un autenticatore molto forte ma mantenere un processo “password dimenticata” o un help desk facilmente manipolabile. In quel caso l’attaccante proverà il percorso più debole.

La sicurezza reale dell’SSO dipende quindi dalla catena completa dell’identità, non soltanto dalla schermata di login.

Quando conviene usare il Single Sign-On

SSO diventa interessante quando esiste un problema reale di frammentazione dell’identità.

Non serve implementarlo soltanto perché è una tecnologia diffusa.

Aziende e team che utilizzano molte applicazioni SaaS

È il caso più evidente.

Se decine o centinaia di utenti devono utilizzare diversi servizi aziendali, mantenere account, credenziali e autenticazione completamente separati crea attrito e complica la governance.

Qui l’SSO può diventare parte di una strategia più ampia composta da:

directory → Identity Provider → autenticazione forte → federazione → applicazioni → provisioning → autorizzazioni → audit

È il sistema nel suo insieme a produrre il vantaggio.

Portali, intranet, membership e ambienti con più applicazioni

L’SSO può avere senso anche quando un progetto web è suddiviso in più componenti.

Immagina un portale clienti con:

  • area documentale;
  • supporto;
  • applicazione gestionale;
  • formazione;
  • dashboard;
  • community.

Chiedere all’utente di creare e mantenere un account separato per ogni componente peggiora l’esperienza e rende più complessa la gestione.

Un Identity Provider comune può offrire un’identità coerente, mentre ogni applicazione mantiene le proprie autorizzazioni.

Quando implementare SSO aggiunge più complessità che valore

Se hai un piccolo sito con una sola applicazione e pochi utenti, introdurre:

  • Identity Provider;
  • protocollo federativo;
  • mapping degli attributi;
  • gestione dei certificati o delle chiavi;
  • procedure di recovery;
  • monitoraggio;
  • logout federato;

potrebbe essere sproporzionato.

Lo stesso vale quando un’applicazione non offre un’integrazione federata affidabile e l’unico modo per forzarla nell’SSO introduce soluzioni fragili.

SSO conviene quando semplifica un ecosistema realmente multiplo. Non perché ogni schermata di login debba necessariamente essere centralizzata.

Come implementare un sistema SSO senza errori

Una buona implementazione parte dall’architettura, non dalla scelta del plugin o dal nome del provider.

Inventaria applicazioni, utenti e protocolli supportati

Prima di scegliere qualunque tecnologia, crea un inventario.

Per ogni applicazione verifica almeno:

  • chi la utilizza;
  • quanto è critica;
  • quale sistema di login usa oggi;
  • se supporta SAML, OIDC, Kerberos o altri metodi;
  • se supporta provisioning;
  • quali attributi utente richiede;
  • quali ruoli possiede;
  • quali meccanismi di logout/revoca supporta;
  • cosa succede in caso di indisponibilità dell’IdP.

Questa fase evita di progettare un’architettura ideale sulla carta che poi non può essere applicata alle applicazioni realmente in uso.

Scegli Identity Provider e protocollo in base all’architettura

Dopo l’inventario puoi stabilire quali protocolli sono realmente utilizzabili.

Non partire da “SAML o OIDC: qual è il migliore?”, ma da:

applicazione → supporto disponibile → requisiti → rischio → protocollo

In un’infrastruttura reale potresti avere contemporaneamente applicazioni SAML, applicazioni OIDC e sistemi legacy che richiedono un trattamento differente.

Non è necessariamente un errore. L’obiettivo non è utilizzare un solo protocollo a tutti i costi, ma mantenere un modello di identità governabile.

Definisci MFA, sessioni, ruoli e accessi di emergenza

Prima del rollout devi decidere cosa accade dopo che la federazione funziona.

Quali utenti richiedono MFA?

Quali metodi sono ammessi?

Quanto durano le sessioni?

Quali operazioni richiedono una nuova autenticazione?

Come vengono gestiti gli amministratori?

Esistono account di emergenza?

Chi li può utilizzare e come vengono monitorati?

Quali attributi dell’IdP determinano i ruoli dell’applicazione?

Questa fase è cruciale perché l’errore più pericoloso non è sempre “il login non funziona”. A volte il login funziona perfettamente, ma assegna all’utente più privilegi di quelli che dovrebbe avere.

Proteggi correttamente il flusso

Con OIDC/OAuth moderno, le best practice IETF indicano tra le altre cose l’uso di Authorization Code e PKCE, la validazione corretta delle redirect URI e la protezione contro replay, token leakage e attacchi di mix-up. L’Implicit Grant tradizionale non dovrebbe essere la scelta predefinita per una nuova implementazione.

Con SAML devi invece prestare particolare attenzione alla validazione della risposta, alle firme, all’Identity Provider atteso, all’audience, alla destinazione, alla validità temporale e agli elementi necessari a impedire il riutilizzo improprio delle assertion.

Non implementare autonomamente crittografia o parsing di protocolli complessi quando puoi utilizzare librerie mature e mantenute.

Gestisci provisioning e deprovisioning come processi separati

Il login è solo una parte del lifecycle.

Quando una persona entra nell’organizzazione devi sapere:

  • quali account creare;
  • quali gruppi assegnare;
  • quali ruoli attribuire.

Quando cambia mansione devi modificare i privilegi.

Quando lascia l’organizzazione devi rimuovere ciò che non dovrebbe più possedere.

L’integrazione SCIM può automatizzare parte di questo lifecycle nelle applicazioni compatibili, ma va progettata separatamente dal meccanismo di autenticazione.

Testa login, logout, revoca e recovery prima del rollout

Non fermarti al test più facile: “l’utente fa clic e riesce a entrare”.

Verifica almeno questi scenari:

  1. primo accesso senza sessione;
  2. accesso a una seconda applicazione;
  3. utente non autorizzato;
  4. ruolo modificato;
  5. account disabilitato;
  6. sessione scaduta;
  7. logout;
  8. revoca dell’accesso;
  9. IdP temporaneamente irraggiungibile;
  10. recupero dell’account;
  11. account amministrativo;
  12. tentativo di accesso con attributi o risposta non validi.

È proprio nei percorsi di errore che emergono molti problemi di un sistema SSO apparentemente funzionante.

Single Sign-On in WordPress: quando ha senso

WordPress utilizza normalmente il proprio sistema di utenti e la classica schermata di autenticazione. In progetti più complessi, però, può diventare una delle applicazioni collegate a un Identity Provider esterno.

È uno scenario sensato soprattutto per:

  • intranet aziendali;
  • portali per dipendenti;
  • siti con aree riservate;
  • ambienti di formazione;
  • reti di siti;
  • progetti in cui gli stessi utenti accedono anche ad altre applicazioni dell’organizzazione.

In questi casi il vantaggio non consiste semplicemente nel sostituire /wp-login.php con un altro pulsante. Consiste nel collegare WordPress a una strategia di identità più ampia.

Se il problema che devi risolvere riguarda invece URL, credenziali perse, recupero dell’account o accesso tradizionale alla dashboard, resta più pertinente la guida dedicata al WordPress login e al recupero dell’accesso.

SAML o OpenID Connect per portali aziendali e aree riservate

Per integrare WordPress con un Identity Provider esistono soluzioni basate su SAML e OpenID Connect.

La scelta deve dipendere soprattutto da:

  • protocollo supportato dall’IdP;
  • protocollo supportato dall’integrazione WordPress;
  • requisiti del progetto;
  • capacità di gestire attributi e ruoli;
  • manutenzione della soluzione;
  • procedure di fallback;
  • requisiti di sicurezza.

Installare un plugin senza conoscere il modello dell’Identity Provider rischia di produrre un login che funziona durante il test ma diventa difficile da amministrare quando utenti, ruoli e applicazioni aumentano.

Ruoli WordPress e mapping degli attributi

Dopo aver autenticato una persona devi ancora stabilire quale ruolo riceverà in WordPress.

È qui che il mapping degli attributi diventa delicato.

Un gruppo proveniente dall’Identity Provider potrebbe essere associato, per esempio, a un ruolo editoriale WordPress. Ma concedere automaticamente il ruolo Amministratore sulla base di un mapping troppo ampio può produrre una seria escalation dei privilegi.

Prima di configurare questa parte conviene conoscere bene ruoli e capability di WordPress e applicare il principio del minimo privilegio.

L’identità arriva dall’IdP. Il privilegio concesso dentro WordPress deve essere una decisione esplicita.

Perché installare un plugin non basta per avere un SSO sicuro

Un plugin può implementare il collegamento tecnico tra WordPress e il provider di identità. Non può decidere da solo l’intera strategia.

Devi comunque verificare:

  • affidabilità e manutenzione dell’integrazione;
  • configurazione SAML/OIDC;
  • mapping utenti e ruoli;
  • comportamento degli account locali;
  • MFA;
  • logout;
  • sessioni;
  • recovery;
  • account di emergenza;
  • aggiornamenti;
  • logging;
  • procedure di offboarding.

Per i controlli che riguardano l’accesso locale, plugin, aggiornamenti e protezione del CMS, la guida sulla sicurezza WordPress completa la parte che l’SSO da solo non può coprire.

E se devi integrare WordPress in un ambiente aziendale esistente, la parte difficile raramente è soltanto installare un’estensione: bisogna riconciliare IdP, protocollo, utenti, ruoli, fallback e sicurezza. In questi casi un intervento di assistenza WordPress può avere senso soprattutto quando il sito è già in produzione e non puoi permetterti di scoprire gli errori direttamente sul login degli utenti.

Conclusione

Il Single Sign-On risolve un problema preciso: evitare che ogni applicazione debba autenticare l’utente come se le altre non esistessero.

La parte utile non è quindi “avere una sola password”. È costruire una relazione di fiducia nella quale un Identity Provider autentica l’utente e le applicazioni possono verificare quella autenticazione attraverso protocolli appropriati.

Per applicazioni enterprise già consolidate, SAML può essere ancora la scelta naturale. Per nuovi servizi web, mobile e cloud, OpenID Connect è spesso più adatto. OAuth, invece, va mantenuto nel suo corretto ruolo di framework di autorizzazione e non usato come sinonimo di autenticazione.

La decisione più importante viene però prima del protocollo.

Se devi collegare molte applicazioni e governare molti utenti, centralizzare l’identità può ridurre attrito e frammentazione. Ma quanto più valore concentri nell’Identity Provider, tanto più devi proteggere quell’identità con autenticazione forte, lifecycle degli account, session management, revoca, logging e procedure di recovery.

Un buon SSO non elimina la sicurezza distribuita: elimina login inutilmente distribuiti e rende più governabile l’identità.