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.