Logo miniOrange

Prodotti

Servizi

plugin

Prezzi

Risorse

Azienda

Che cosa è JWT (JSON Web Token)? Come funziona l'autenticazione JWT?

miniarancioneAutore
31st ottobre, 20234 Min Read

Che cosa è JWT (JSON Web Token)?

JWT, o JSON Web Token, è uno standard aperto utilizzato per condividere informazioni tra due parti in modo sicuro: un client e un server. Nella maggior parte dei casi, è un JSON codificato contenente un set di claim e una firma. Di solito è utilizzato nel contesto di altri meccanismi di autenticazione come OAuth, OpenID per condividere informazioni relative all'utente. È anche un modo popolare per autenticare/autorizzare gli utenti in un'architettura di microservizi.

L'autenticazione JWT è un meccanismo di autenticazione stateless basato su token. È comunemente utilizzato come sessione stateless basata sul lato client, il che significa che il server non deve basarsi completamente su un archivio dati (o) database per salvare le informazioni della sessione.

I JWT possono essere crittografati, ma in genere sono codificati e firmati. Ci concentreremo sui JWT firmati. Lo scopo dei JWT firmati non è nascondere i dati, ma garantirne l'autenticità. Ed è per questo che è altamente consigliato usare HTTPS con i JWT firmati.

Struttura del JWT

La struttura JWT è divisa in tre parti: intestazione, payload, firma ed è separata l'una dall'altra da un punto (.), e seguirà la struttura seguente:

Struttura del token Web JSON (JWT)

  • testata
    L'intestazione è composta da due parti:
  1. L'algoritmo di firma utilizzato
  2. Il tipo di token, che in questo caso è principalmente "JWT"
  • Payload Il payload solitamente contiene i claim (attributi dell'utente) e dati aggiuntivi come emittente, data di scadenza e pubblico.
  • Sartoriale
    Questo è in genere un hash delle sezioni header e payload del JWT. L'algoritmo utilizzato per creare la firma è lo stesso algoritmo menzionato nella sezione header del JWT. La firma viene utilizzata per convalidare che il token JWT non sia stato modificato o cambiato durante il transito. Può anche essere utilizzata per convalidare il mittente.

L'intestazione e la sezione Payload del JWT sono sempre codificate in Base64.

Come funziona l'autenticazione JWT? Quando utilizzare l'autenticazione JWT?

Quando si tratta di autenticazione API e autorizzazione server-to-server, il token web JSON (JWT) è una tecnologia particolarmente utile. In termini di Single Sign-On (SSO), significa che un fornitore di servizi può ricevere informazioni affidabili dal server di autenticazione.

Condividendo una chiave segreta con l'Identity Provider, il Service Provider può hash una parte di un token che riceve e confrontarla con la firma del token. Ora, se quel risultato corrisponde alla firma, l'SP sa che le informazioni fornite provengono dall'altra entità che possiede la chiave.

Il seguente flusso di lavoro spiega il flusso di autenticazione:

Flusso di lavoro di autenticazione JSON Web Token (JWT)

  1. Accesso utente tramite nome utente e password.
  2. Il server di autenticazione verifica le credenziali ed emette un JWT firmato utilizzando una chiave privata.
  3. D'ora in poi, il client utilizzerà il JWT per accedere alle risorse protette passando il JWT nell'intestazione HTTP Authorization.
  4. Il server delle risorse verifica quindi l'autenticità del token utilizzando la chiave pubblica.

L'Identity Provider genera un JWT che certifica l'identità dell'utente, mentre il server di risorse decodifica e verifica l'autenticità del token utilizzando la chiave pubblica.

Poiché i token vengono utilizzati per l'autorizzazione e l'autenticazione in future richieste e chiamate API, è necessario prestare molta attenzione per prevenire problemi di sicurezza. Questi token non devono essere archiviati in aree accessibili al pubblico come l'archiviazione locale del browser o i cookie. Nel caso in cui non ci siano altre scelte, il payload deve essere crittografato.

Come funziona JWT Single Sign-On (SSO) per più app Web

Single Sign-On (SSO) consente di autenticare gli utenti nei sistemi e successivamente informa le applicazioni che l'utente è stato autenticato. In caso di autenticazione riuscita, viene generato e restituito un token JWT, che può essere utilizzato dall'app per creare una sessione utente. Il token viene automaticamente verificato con l'IDP quando effettua l'accesso. All'utente viene quindi consentito di accedere alle app senza che gli venga chiesto di immettere credenziali di accesso separate.

Questo meccanismo di sicurezza consente alle applicazioni di fidarsi delle richieste di accesso che riceve dai sistemi. Inoltre, queste app concederanno l'accesso solo agli utenti che sono stati autenticati da te/amministratore e quindi Single Sign-On (SSO) si basa su JSON Web Token (JWT) per proteggere lo scambio di dati di autenticazione utente. È necessario prestare molta attenzione in termini di come questo token viene archiviato e gestito.

Autenticazione miniOrange JWT per app che non supportano i protocolli SSO standard

Caso d'uso: creare un SSO personalizzato tra 2 siti Web esistenti e indipendenti con il proprio database utenti

Con miniarancione, sarai in grado di autenticarti da User Store e Identity Provider esistenti utilizzando protocolli come SAML, OAuth OpenID e SSO in siti Web che supportano solo token JWT. Sì, hai sentito bene. miniOrange fornisce Single Sign-On (SSO) per Applicazioni JSON Web Token (JWT)Questa soluzione consente di impostare Accesso singolo (SSO) nelle tue applicazioni (ad esempio esistenti o indipendenti) che non supportano i protocolli standard SSO (come SAML 2.0, ecc.).

Questo viene fatto usando token JSON Web Token (JWT) e può essere facilmente integrato con la tua applicazione creata in qualsiasi framework o linguaggio. Questo ti consente di abilitare SSO per qualsiasi app mobile, app lato client, siti statici che non supportano alcun protocollo standard SSO e sono creati su piattaforme come React.js, Firebase, Cordova, Angular.js, ecc.

Flusso di integrazione miniOrange con token jwt

 

miniOrange semplifica l'abilitazione dell'SSO per la tua applicazione con un semplice processo in 3 fasi. Tutto ciò che devi fare è:

  1. Incorpora uno script semplice sul tuo sito/app
  2. Configura il tuo Identity Provider/archivio utenti in miniOrange (facoltativo)
  3. Aggiungi un'app JWT

 

Ecco fatto!! Puoi scegliere di gestire gli utenti in miniOrange o scegliere un Identity Provider/user store esterno. Puoi anche abilitare MFA su SSO con una semplice modifica alla configurazione, senza altre modifiche allo script o alla codifica richieste.

 

 

Scopri la soluzione JWT SSO di miniOrange per le app più di tendenza:

 

 

Ulteriori link utili:

Lascia un tuo commento