Un JWT (JSON Web Token) è uno standard industriale RFC 7519 che definisce un metodo compatto e autonomo per trasmettere informazioni in modo sicuro tra le parti come un oggetto JSON. Queste informazioni possono essere verificate e attendibili perché sono firmate digitalmente. I JWT possono essere firmati usando un algoritmo segreto (con l'algoritmo HMAC) o usando una coppia di chiavi pubblica/privata usando RSA o ECDSA.
I JWT sono comunemente usati per l'autenticazione e l'autorizzazione. In generale, quando un utente effettua il login, il server genera un JWT e lo restituisce al client. Il client quindi memorizza il JWT (solitamente in un cookie o nello storage locale) e lo include in ogni richiesta successiva al server. Il server quindi verifica il JWT per autenticare l'utente e autorizzarlo ad accedere alle risorse richieste.
Componenti di un JWT:
Un JWT è composto da tre parti, separate da punti (.
):
Header (Intestazione): L'header specifica l'algoritmo di hashing utilizzato per firmare il token, come HS256
(HMAC SHA256) o RS256
(RSA SHA256). Contiene anche il tipo di token, che è sempre "JWT"
.
Payload (Carico utile): Il payload contiene le claims (affermazioni). Le claims sono affermazioni su un'entità (solitamente l'utente) e dati aggiuntivi. Esistono tre tipi di claims:
iss
(issuer), sub
(subject), aud
(audience), exp
(expiration time), nbf
(not before), iat
(issued at) e jti
(JWT ID).Signature (Firma): La firma viene creata prendendo l'header codificato Base64Url, il payload codificato Base64Url, un segreto e l'algoritmo specificato nell'header, quindi firmando tutto questo. La firma viene utilizzata per verificare che il messaggio non sia stato modificato lungo il percorso e che il mittente del JWT sia chi dice di essere.
Esempio di JWT (struttura):
header.payload.signature
Vantaggi dei JWT:
Considerazioni sulla sicurezza:
exp
claim) per i JWT per limitare la finestra di vulnerabilità in caso di compromissione del token. Token con durata illimitata sono una pratica di sicurezza inaccettabile.Concetti importanti:
I JWT sono uno strumento potente per l'autenticazione e l'autorizzazione, ma è importante comprendere le implicazioni di sicurezza e utilizzarli correttamente per evitare vulnerabilità.
Ne Demek sitesindeki bilgiler kullanıcılar vasıtasıyla veya otomatik oluşturulmuştur. Buradaki bilgilerin doğru olduğu garanti edilmez. Düzeltilmesi gereken bilgi olduğunu düşünüyorsanız bizimle iletişime geçiniz. Her türlü görüş, destek ve önerileriniz için iletisim@nedemek.page