Scopri come OpenID Connect migliora l'autenticazione basandosi sul protocollo OAuth 2.0 per fornire un modo sicuro e standardizzato per autenticare gli utenti.
Indice dei contenuti
- Cos'è OpenID Connect?
- Come funziona OIDC
- Informazioni su OAuth 2.0
- Vantaggi di OIDC
- ID Token Spiegato
- Implementazione di OIDC
- Considerazioni sulla sicurezza
- Risoluzione dei problemi
- Glossario
Cos'è OpenID Connect?
OpenID Connect (OIDC) è un livello di identità basato sul protocollo OAuth 2.0. Consente ai client (come Esadax) di verificare l'identità degli utenti in base all'autenticazione eseguita da un server di autorizzazione.
- Sviluppato dalla OpenID Foundation.
- Ampiamente adottato nelle moderne applicazioni web e mobile.
- Utilizzato da Google, Microsoft, Auth0, Okta e altri.
Come funziona OIDC
- L'utente tenta di accedere all'applicazione client.
- Il client reindirizza l'utente all'Identity Provider (IdP).
- L'utente si autentica con l'IdP (ad esempio, nome utente + password, 2FA).
- IdP reindirizza di nuovo al client con un token ID e (facoltativamente) un token di accesso.
- Il client verifica la firma e le rivendicazioni del token ID.
- L'utente viene autenticato e viene creata una sessione.
Informazioni su OAuth 2.0
| Caratteristica |
Supporto per OAuth 2.0 |
Connessione OpenID (OIDC) |
| Scopo |
Autorizzazione |
Autenticazione |
| Tipo di token |
Token di accesso |
Token ID + Token di accesso |
| Identità dell'utente |
Non è garantito |
Esplicitamente forniti |
| Accesso ai dati del profilo |
Richiede ambiti extra |
Supportato tramite ambito openid |
| Rivendicazioni standardizzate |
No. |
Sì. |
✅ OIDC = OAuth 2.0 + identità + informazioni utente standardizzate.
Vantaggi di OIDC
- Interoperabilità: standard per molti fornitori e piattaforme.
- Sicurezza: utilizza token firmati e flussi comprovati.
- Flessibilità: funziona per app Web, app mobili e API.
- Scalabilità: ideale per sistemi distribuiti o multi-tenant.
- Identità federata: un unico accesso funziona per molti servizi.
ID Token Spiegato
Un ID Token è un JWT (JSON Web Token) che contiene informazioni sull'utente.
- Richieste di risarcimento comuni:
sub: Oggetto (user ID)
email: Indirizzo email dell'utente
name: Nome completo
iat: Rilasciato il
exp: Data di scadenza
iss: Emittente
aud: Pubblico (la tua app)
Esempio di payload di token ID decodificato:
{
"sub": "1234567890",
"name": "Jane Doe",
"email": "jane@esadax.com",
"iat": 1692547200,
"exp": 1692550800,
"iss": "https://auth.provider.com",
"aud": "esadax-app"
}
Implementazione di OIDC
-
Scegli un provider: Google, Auth0, Okta o self-hosted (ad esempio, Keycloak).
-
Registra la tua Applicazione: Ottieni un ID cliente e un client secret.
-
Reindirizza gli utenti al provider:
- Includere
response_type=code e scope=openid.
-
Gestire il callback:
- Scambia il codice per i token utilizzando l'endpoint
/token del provider.
-
Verifica ID Token:
- Controllare la firma,
aud, exp e altre rivendicazioni.
-
Crea una sessione:
- Utilizzare i dati del token per autenticare l'utente nel sistema.
Considerazioni sulla sicurezza
- Convalida sempre i token ID sul lato server.
- Usa HTTPS per evitare l'intercettazione dei token.
- Impostare brevi periodi di vita del token e ruotare i segreti.
- Verificare
nonce per evitare attacchi di replay.
- Usa PKCE (Proof Key for Code Exchange) per client pubblici come SPA e app mobili.
Risoluzione dei problemi
-
Firma del token non valida?
- Assicurati di utilizzare la chiave pubblica corretta (JWKS).
-
Pubblico non valido (aud)?
- Verifica che il token sia stato emesso per il tuo ID cliente.
-
Token scaduto?
- Aggiorna il token o autentica nuovamente l'utente.
-
Il provider non reindirizza?
- Verifica che l'URI di reindirizzamento corrisponda a quello registrato.
Glossario
- OIDC: OpenID Connect, un livello di identità in cima a OAuth 2.0.
- OAuth 2.0: Un protocollo per autorizzare l'accesso alle risorse.
- IdP: Identity Provider (ad esempio, Google, Okta) che autentica l'utente.
- Token ID: un JWT che conferma l'identità dell'utente.
- Token di accesso: token utilizzato per accedere alle API protette.
- PKCE: estensione di sicurezza per OAuth 2.0 per client pubblici.