Che cos’è l’autenticazione basata su token?
Cosa troverai qui?
Sebbene le password siano la forma più comune di autenticazione, non sono l’unica opzione e non sempre la scelta migliore. Ad esempio, le password richiedono che qualcuno abbia una password unica e forte per ogni account.
L’autenticazione basata su token codifica i dati di autenticazione all’interno di un token. Questo token può essere inviato ad altre applicazioni, che leggono i dati di autenticazione memorizzati all’interno e li utilizzano per determinare se un utente è autorizzato ad accedere a un sistema.
Come funziona l’autenticazione basata su token
I sistemi di autenticazione basati su token suddividono il processo di gestione dell’identità e degli accessi (IAM) in due fasi eseguite da sistemi diversi. L’autenticazione è eseguita da un server di autenticazione, mentre l’autorizzazione è gestita da ciascuna applicazione o sistema individuale. Questi sistemi possono risiedere all’interno della stessa organizzazione o essere distribuiti tra di esse se il sistema di autorizzazione è configurato per fidarsi dell’autenticazione dell’identità dell’utente da parte dell’altro sistema. Accedere ai siti web tramite un account di social media è un esempio di autenticazione inter-organizzativa eseguita utilizzando token.
Nel primo passaggio, l’utente dimostra la propria identità al server di autenticazione tramite una password o altri mezzi. Questo è l’unico sistema che riceve la password dell’utente, il che offre vari vantaggi in termini di sicurezza e usabilità. Dopo aver autenticato l’utente, il server di autenticazione genera un token contenente informazioni sulla sua identità. Questo token è quindi incluso in una richiesta a un’applicazione a cui l’utente desidera accedere.
Una volta ricevuto questo token e convalidato il suo contenuto, l’applicazione può essere sicura che l’utente sia chi afferma di essere. Sulla base di queste informazioni, può determinare se l’utente è autorizzato a fare quella richiesta e fornire/negare l’accesso alla risorsa.
Alcuni casi d’uso comuni per i token includono:
- Autenticazione App-to-App: Le password sono principalmente progettate per consentire agli esseri umani di autenticarsi a un’applicazione. Le app che interagiscono tra loro utilizzano comunemente token o altri mezzi di autenticazione.
- Accesso unico L’autenticazione basata su token è la spina dorsale dell’SSO, che consente agli utenti di autenticarsi una sola volta per accedere a molte app. In questo caso, il token del server di autenticazione è considerato affidabile da ciascuna app che utilizza l’SSO.
- Scadenza del Token: Le password hanno una lunga durata, il che le rende più vulnerabili agli attacchi di indovinamento delle password e prolunga l’impatto delle credenziali compromesse. I token hanno date di scadenza integrate, limitando il rischio se vengono rubati.
Cosa sono i JSON Web Token (JWT) e come funzionano?
La maggior parte degli schemi di autenticazione basati su token è implementata utilizzando i JSON Web Token (JWT). Questi token contengono tre campi principali:
- Intestazione: Contiene metadati come il tipo di token e l’algoritmo di crittografia utilizzato.
- Payload: Contiene informazioni di autenticazione utilizzate per l’autorizzazione.
- Firma Prova crittograficamente l’autenticità dei dati del payload.
Dopo aver verificato l’identità di un utente, un server di autenticazione genera un JWT che include i dati dell’utente e una data di scadenza del token nel payload. L’applicazione che riceve questi dati verificherà la firma, controllerà che il token non sia scaduto e poi utilizzerà le informazioni in esso contenute per autorizzare la richiesta.
Si noti che, sebbene i JWT siano alcuni dei token più comuni in uso, non sono gli unici. Ad esempio, il Security Assertion Markup Language (SAML) è un altro standard comune utilizzato per implementare l’SSO per le applicazioni aziendali.
I diversi tipi di autenticazione basata su token
Un JWT fornisce un formato standard per i dati di autenticazione, ma è solo un formato di dati. Le applicazioni necessitano di un protocollo comune per comprendere come creare, inviare e utilizzare questi token. I due algoritmi basati su token più comuni sono OAuth2.0 e OpenID Connect (OIDC).
OAuth 2.0
OAuth2.0 è un protocollo di autorizzazione che dipende dall’autenticazione basata su token per abilitare l’autorizzazione senza condividere le credenziali dell’utente. L’obiettivo è che un utente autorizzi un’applicazione (“Consumatore”) a eseguire un’azione su un’altra (“Fornitore di Servizi”) senza fornire le credenziali dell’utente al “Fornitore di Servizi” per il “Consumatore.”
Per fare ciò, il Consumatore reindirizzerà l’utente al Fornitore di Servizi, dove si autentica utilizzando la propria password normale per quel servizio. Il Fornitore di Servizi verifica quindi che l’utente approvi la richiesta del Consumatore. Se sì, viene generato un token di accesso che il Consumatore può utilizzare per accedere all’account dell’utente con il Fornitore di Servizi. Questo autorizza la richiesta senza rivelare la password dell’utente per il Fornitore di Servizi.
OpenID Connect (OIDC)
OpenID Connect (OIDC) è un protocollo di autenticazione e autorizzazione costruito sopra OAuth 2.0. Aggiunge uno strato di identità per autenticare gli utenti, che memorizza le informazioni di identità in JWT e fornisce le capacità di autenticazione che OAuth 2.0 non ha.
Il caso d’uso principale per OIDC è implementare SSO, consentendo l’accesso a più applicazioni con una singola richiesta di autenticazione. Il protocollo include un insieme di dichiarazioni standard per abilitare scambi coerenti di dati di identità e profilo utente tra le applicazioni.
I Vantaggi dell’Autenticazione Basata su Token
L’autenticazione basata su token consente di comunicare in modo sicuro le informazioni di autenticazione tra le applicazioni, eliminando la necessità per un’app di eseguire la propria autenticazione utente. Questo fornisce numerosi vantaggi per gli utenti e per l’organizzazione.
Miglioramento dell’Esperienza Utente
Gli schemi di autenticazione basati su token sono la base per SSO, che consente a un utente di autenticarsi una sola volta e accedere a molte app. Rimuovere la necessità di ricordare e inserire più password migliora l’efficienza operativa e l’esperienza dell’utente.
Sicurezza Migliorata
L’autenticazione basata su token migliora la sicurezza eliminando la necessità per ogni applicazione di accettare e gestire le password degli utenti. Spesso, gli utenti hanno password deboli o riutilizzate, e queste password non scadono mai. Utilizzando i token, un’applicazione non ha bisogno di memorizzare informazioni sensibili di autenticazione. Inoltre, i token scadono automaticamente, riducendo il tempo durante il quale un attaccante può abusare delle credenziali compromesse.
Maggiore Scalabilità ed Efficienza
I token eliminano la necessità per i server di memorizzare informazioni sulla sessione esistente di un utente. Questo consente a un server di supportare più utenti poiché consumano meno risorse lato server.
Gestione Granulare degli Accessi
I JWT e altri token possono trasportare una gamma di dati identificativi oltre a un semplice nome utente. Inoltre, le applicazioni possono adattare l’autorizzazione a uno scenario specifico, consentendo loro di applicare meglio il principio del minimo privilegio (POLP) e altri principi di zero trust. Questa combinazione consente agli schemi di autenticazione basati su token di implementare politiche di gestione degli accessi molto granulari.
FAQ
Qual è la differenza tra OAuth 2.0 e l’autenticazione basata su token?
OAuth 2.0 è un esempio di un protocollo specifico che utilizza token di accesso per implementare l’autorizzazione degli utenti. L’autenticazione basata su token è più generale e copre qualsiasi schema che utilizza token per l’autenticazione degli utenti.
In che modo l’autenticazione basata su password è diversa dall’autenticazione basata su token?
Un’applicazione che utilizza l’autenticazione basata su password memorizza i dati delle credenziali degli utenti e chiede a un utente di autenticarsi fornendo la propria password per quell’applicazione. Con l’autenticazione basata su token, un server di autenticazione accetta una password o un’altra credenziale e genera un token che attesta l’identità dell’utente, che viene inviato all’applicazione a cui desidera accedere.
Quali sono gli svantaggi dell’autenticazione basata su token?
L’autenticazione basata su token offre generalmente una sicurezza più forte rispetto all’autenticazione basata su password, ma comporta dei rischi. Ad esempio, un token rubato può essere utilizzato per autenticarsi come un utente legittimo, oppure la chiave privata utilizzata per firmare digitalmente i token potrebbe essere rubata e utilizzata per forgiare falsi token di accesso.
Gestisci l’autenticazione basata su token con la soluzione SASE di Cato
L’autenticazione basata su token separa l’autenticazione e l’autorizzazione facendo verificare a un server di autenticazione l’identità di un utente e poi inviando un token che attesta la sua identità a un’applicazione. Questo approccio ha vari vantaggi ed è alla base dei protocolli SSO.
L’autenticazione basata su token è anche centrale per molti moderni sistemi di gestione delle identità e degli accessi (IAM), come le capacità di Accesso alla Rete Zero Trust (ZTNA) del Cato SASE Cloud e dell’Applicazione di Gestione Cato (CMA).
Per saperne di più su come implementare la sicurezza zero trust per la tua organizzazione con Cato, iscriviti per una demo gratuita.
This page was machine-translated. If you notice any inaccuracies or have feedback, please feel free to send it to us here.