Passa al contenuto principale
Versione: 1.2 (storica)

Genera JWT

Il task Genera JWT consente di creare token JWT configurando vari parametri necessari per la generazione del token.

Definizione di JWT

Un JSON Web Token (JWT) è uno standard aperto (RFC 7519) che definisce un modo compatto e autonomo per trasmettere informazioni tra le parti come un oggetto JSON. Queste informazioni possono essere verificate e fidate perché sono firmate digitalmente. I JWT possono essere firmati utilizzando un secret (con l’algoritmo HMAC) o una coppia di chiavi pubblica/privata utilizzando RSA o ECDSA.

Scopo del JWT

I JWT sono comunemente usati per l’autenticazione e l’autorizzazione. Quando un utente effettua il login, viene generato un token che può essere usato per autenticare le richieste successive senza dover inviare nuovamente le credenziali dell’utente.

Configurazione​

1. Signing

  • Algoritmo: Seleziona l’algoritmo di firma da utilizzare, ad esempio RS256.
  • Private key: Chiave privata necessaria per la firma del token. Può essere inserita manualmente o tramite parametro.

2. Headers

  • Sezione in cui aggiungere le coppie chiave-valore necessarie per l’intestazione.

3. Claims

  • Sezione in cui aggiungre le coppie chiave-valore relative ai claims necessari

Ogni campo nella sezione Headers e Claims può essere valorizzato manualmente o tramite parametri e variabili del workflow.

Questa configurazione permette di impostare i dettagli necessari per generare un JSON Web Token (JWT).

Algoritmi simmetrici (HSxxx)​

Gli algoritmi HS (HMAC with SHA) usano una chiave simmetrica, cioè la stessa chiave serve sia per firmare che per verificare il token.

  • HS256 (HMAC + SHA-256)
  • Usa l’algoritmo di hashing SHA-256 combinato con HMAC.
  • Sicurezza bilanciata: considerato oggi molto sicuro se la chiave è sufficientemente lunga e casuale.
  • Uso comune per applicazioni interne dove chi firma e chi verifica coincidono.
  • HS384 (HMAC + SHA-384)
  • Variante con SHA-384, produce firme più lunghe.
  • Offre maggiore resistenza a collisioni rispetto a SHA-256.
  • HS512 (HMAC + SHA-512)
  • Variante con SHA-512, ancora più robusta e con output di 512 bit.
  • Adatta in contesti ad alta sicurezza o dove la chiave può circolare meno protetta.

Nota: Essendo simmetrici, richiedono che tutti i partecipanti conoscano la stessa chiave segreta. Questo può essere un rischio se ci sono più sistemi che devono validare il token.

Algoritmi asimmetrici (RSxxx)​

Gli algoritmi RS (RSA Signature with SHA) usano una chiave asimmetrica:

  • Una chiave privata firma il token.
  • Una chiave pubblica valida il token.

Questo è utile quando si vuole distribuire i token in ambienti dove solo il generatore deve possedere la chiave privata.

  • RS256 (RSA + SHA-256)
  • Algoritmo più diffuso per JWT in contesti enterprise.
  • Sicuro, con buona efficienza.
  • RS384 (RSA + SHA-384)
  • Variante che usa SHA-384 per una maggiore resistenza crittografica.
  • RS512 (RSA + SHA-512)
  • Variante più robusta, con SHA-512.
  • Offre la massima resistenza agli attacchi, ma con un costo computazionale maggiore.

Nota: Essendo asimmetrici, si prestano meglio a scenari distribuiti: il server che emette i token conserva la private key, mentre i client o i microservizi ottengono solo la public key per verificarne la validità.

Parametro di Output​

Al completamento dell'esecuzione, il task rende disponibili i seguenti Parametri di Output, utilizzabili come input nei task successivi del Workflow.

  • result: Tale parametro può restituire un messaggio di errore oppure il risultato dell’esecuzione del Task (il Token generato).Questo valore può essere utilizzato come input nei Task successivi (es. ">#nome_del_task.result<#")
  • resultJson: rappresenta il risultato dell’esecuzione del task in formato JSON, includendo informazioni generali, configurazioni e dettagli sull’esecuzione.