Perché il single sign-on (SSO) è migliore
Il single sign-on (SSO) è un ottimo modo per semplificare il modello di autenticazione e migliorare l'esperienza utente per ogni app. Ecco perché.
Il single sign-on (SSO) è una tecnologia che consente agli utenti di autenticarsi una sola volta e accedere a più applicazioni. Se hai solo un'applicazione, può sembrare eccessivo. Tuttavia, iniziare con SSO fin dall'inizio può evitarti molti problemi in futuro e implementare SSO è più facile di quanto pensi.
Prima di iniziare, dobbiamo notare che esistono due tipi di SSO:
- Il primo tipo si ha quando si dispongono di più applicazioni che condividono lo stesso database utenti. Questo è il tipo di SSO che discuteremo in questo articolo.
- Il secondo tipo si ha quando il tuo cliente ha un provider di identità centralizzato (IdP) e è necessario integrarsi con esso. Questo è al di fuori dell'ambito di questo articolo.
Perché SSO?
Semplificare il modello di autenticazione
Il beneficio più ovvio dell'SSO è che semplifica il modello di autenticazione. Immagina di iniziare con un negozio online, il modello di autenticazione iniziale è semplice:
Mentre la tua attività cresce, decidi di aggiungere un'app di gestione del negozio per consentire ai proprietari di gestire i loro negozi. Ora hai due applicazioni che devono autenticare gli utenti.
Ecco alcune scelte a tua disposizione:
1. Puoi creare un database utenti separato per l'app di gestione del negozio.
Questa è la soluzione più semplice, ma significa che devi implementare il processo di autenticazione per l'app di gestione del negozio e gli utenti devono creare un nuovo account per utilizzare l'app.
2. Puoi usare lo stesso database utenti per entrambe le applicazioni.
Questa è una soluzione migliore perché gli utenti non hanno bisogno di creare un nuovo account. Tuttavia, devi comunque implementare il processo di autenticazione per l'app di gestione del negozio.
3. Puoi usare l'SSO.
Questa è la soluzione migliore finora. Non hai bisogno di implementare un altro processo di autenticazione e gli utenti non devono creare un nuovo account per l'app di gestione del negozio. Inoltre, puoi aggiungere più applicazioni e metodi di accesso senza cambiare il modello di autenticazione o l'esperienza utente.
Migliorare l'esperienza utente
L'SSO migliora l'esperienza utente in due modi:
- Gli utenti possono condividere lo stesso account su più applicazioni.
- Una volta che gli utenti effettuano l'accesso in un'applicazione, non hanno bisogno di accedere nuovamente in altre applicazioni sullo stesso dispositivo.
Possono sorgere alcune preoccupazioni, ma sono tutte affrontabili.
1. Come differenziare le applicazioni?
Il single sign-on non significa trattare tutte le applicazioni allo stesso modo. Nel noto standard aperto OpenID Connect, ogni applicazione è chiamata client, e i flussi di autenticazione differiscono a seconda del tipo di client. Mentre gli utenti finali non hanno bisogno di conoscere la differenza, il tipo di client è importante per il server di autenticazione per determinare il flusso di autenticazione.
2. Cosa succede se gli utenti non vogliono condividere lo stesso account?
Questa è una preoccupazione valida, ma non è un problema con l'SSO. Se gli utenti non vogliono condividere lo stesso account, possono creare un nuovo account per la nuova applicazione. La chiave è dare agli utenti l'opzione di scegliere.
3. Cosa succede se ho bisogno di limitare l'accesso a determinate applicazioni?
In realtà, l'SSO è una tecnica per l'autenticazione, mentre il controllo degli accessi riguarda l'autorizzazione. L'SSO può essere scollegato dal controllo degli accessi. Ad esempio, puoi utilizzare l'SSO per autenticare gli utenti, quindi utilizzare il controllo degli accessi basato sui ruoli (RBAC) per limitare l'accesso a determinate applicazioni o risorse.
Per saperne di più sull'autenticazione e l'autorizzazione, consulta CIAM 101: Autenticazione, Identità, SSO.
4. L'SSO richiede il reindirizzamento degli utenti al server di autenticazione.
Il reindirizzamento è una pratica standard per l'autenticazione. Considerando l'esperienza utente, possiamo sfruttare varie tecniche per ridurre l'attrito:
- Utilizzare token di aggiornamento per ridurre la frequenza di autenticazione.
- Inizializzare il processo di autenticazione con un metodo di accesso specifico, come Google o Facebook, per ridurre il numero di clic.
- Sfruttare l'autenticazione silenziosa per accelerare il processo di autenticazione.
Aumentare la sicurezza
1. Un punto centrale per tutte le operazioni relative alla sicurezza
L'SSO ti consente di gestire tutte le operazioni relative alla sicurezza in un punto centrale. Ad esempio, come accennato nella sezione precedente, l'SSO può ancora differenziare le applicazioni e applicare flussi di autenticazione specifici per piattaforma per ciascuna applicazione. Senza SSO, devi implementare vari flussi di autenticazione in base al tipo di applicazione.
Inoltre, funzionalità di sicurezza avanzate come l'autenticazione multifattore (MFA) sono più facili da implementare con l'SSO senza confondere il modello di autenticazione.
2. Superficie di attacco ridotta
In teoria, l'SSO riduce la superficie di attacco perché devi proteggere un solo server di autenticazione invece di più applicazioni. L'approccio centralizzato facilita anche il monitoraggio e il rilevamento di attività sospette.
3. Standard e protocolli testati nel tempo
Gli standard e i protocolli aperti come OpenID Connect e OAuth 2.0 sono ampiamente utilizzati nel settore e sono stati testati nel tempo. Entrambi corrispondono al concetto di SSO e sono supportati da la maggior parte dei fornitori di identità (IdP). Combinando questi standard con l'SSO, puoi avere un sistema di autenticazione sicuro e affidabile.
OK, implementiamo l'SSO
Implementare l'SSO può essere complesso e complicato, ci sono molte cose da considerare, come:
- Conformità con standard e protocolli
- Flussi di autenticazione per diversi tipi di client
- Vari metodi di accesso
- Funzionalità di sicurezza come MFA
- Esperienza utente
- Controllo degli accessi
Ognuno di questi argomenti può essere un articolo separato e travolgente. Per semplificare, è meglio iniziare con un servizio gestito che fornisce SSO pronto all'uso. Il nostro prodotto Logto è un tale servizio e ci vorranno solo pochi minuti per integrarlo nella tua applicazione.
Una delle preoccupazioni più comuni sull'utilizzo di un servizio gestito è il lock-in del fornitore. Fortunatamente, questo non è un problema con Logto. Logto è costruito su OpenID Connect e OAuth 2.0, ed è nato open-source. Prioritizziamo fornire sicurezza ai nostri clienti e puntiamo a darti la libertà di scegliere.