Try using it in your preferred language.

English

  • English
  • 汉语
  • Español
  • Bahasa Indonesia
  • Português
  • Русский
  • 日本語
  • 한국어
  • Deutsch
  • Français
  • Italiano
  • Türkçe
  • Tiếng Việt
  • ไทย
  • Polski
  • Nederlands
  • हिन्दी
  • Magyar
translation

Questo è un post tradotto da IA.

Seize the day

Cos'è JWT (JSON Web Token)?

Seleziona la lingua

  • Italiano
  • English
  • 汉语
  • Español
  • Bahasa Indonesia
  • Português
  • Русский
  • 日本語
  • 한국어
  • Deutsch
  • Français
  • Türkçe
  • Tiếng Việt
  • ไทย
  • Polski
  • Nederlands
  • हिन्दी
  • Magyar

Testo riassunto dall'intelligenza artificiale durumis

  • JSON Web Token (JWT) è uno standard per la trasmissione sicura di informazioni utilizzando oggetti JSON, incapsulando le informazioni necessarie nel token e crittografandole per l'utilizzo.
  • JWT è composto da un'intestazione, un payload e una firma. L'intestazione contiene il tipo di token e l'algoritmo di firma utilizzato, mentre il payload memorizza le informazioni sul token in formato chiave-valore.
  • La firma può essere decriptata solo dal server che ha emesso il token utilizzando la chiave privata. JWT contiene tutte le informazioni di cui ha bisogno, quindi non è necessario alcun archivio separato, il che aumenta la scalabilità nei sistemi distribuiti.

Cos'è JWT?

JSON Web Token (JWT) è uno standard aperto (RFC 7519) che fornisce un modo sicuro per trasferire informazioni come un oggetto JSON. In poche parole, le informazioni necessarie sono inserite nel token e crittografate per l'uso.


JWT è enfatizzato come un token firmato (token firmato). Quando si utilizza una coppia di chiavi pubblica/privata per la firma, questa firma garantisce che solo la parte in possesso della chiave privata abbia firmato il token. In altre parole, il server che possiede la chiave può sapere se questo token è valido.


Struttura JWT

JWT è composto da intestazione (Header), carico utile (Payload) e firma (Signature).

Ogni parte è codificata in Base64 ed è separata da un punto (.).

Intestazione

{
    "alg": "HS256",
    "typ": "JWT"

L'intestazione contiene due informazioni principali. Il tipo di token (typ) e l'algoritmo di firma utilizzato (alg). L'algoritmo di firma viene utilizzato per creare e verificare la firma.

typ è impostato su "JWT" e alg è scritto come HMAC, SHA256, ecc. Secondo l'esempio sopra, significa che l'algoritmo HS256 viene utilizzato con la chiave privata.

Carico utile

{
    "sub": "1234567890",
    "name": "John Doe",
    "iat": 1516239022


Il carico utile include le asserzioni che si desidera trasmettere nel token. Salva le informazioni di identificazione dell'utente o le proprietà relative al token in formato chiave-valore. In altre parole, lo sviluppatore può inserirlo a piacimento!

Secondo le specifiche standard, il nome della chiave è definito in modo compatto con 3 lettere.

Le asserzioni registrate sono le seguenti.

  • iss (Issuer): emittente del token (include le informazioni di identificazione univoche dell'emittente del token)
  • sub (Subject): entità a cui è destinato il token
  • aud (Audience): destinatario del token
  • exp (Expiration Time): ora di scadenza del token (dopo questa ora, non è più valido)
  • nbf (Not Before): data di attivazione del token (il token non può essere utilizzato prima di questa ora)
  • iat (Issued At): ora di emissione del token
  • jti (JWT Id): identificatore del token JWT (valore utilizzato per distinguere gli emittenti se sono più di uno)


Se ci sono altri valori necessari tra questi valori, puoi aggiungerli e usarli.

Tuttavia, il carico utile non è un valore firmato non crittografato, quindi non contiene informazioni sensibili.

Può essere letto da chiunque se decodificato.jwt.io Puoi anche verificarlo direttamente sul sito.

Firma

HMACSHA256(
    base64UrlEncode(header) + "." +
    base64UrlEncode(payload),
    your-256-bit-secret

Il valore codificato in base64 di Header e Payload è collegato da un punto (.) e firmato utilizzando your-256-bit-secret, la chiave privata posseduta dal server.

Pertanto, solo il server che ha emesso il token può decrittografare la firma (Signature) utilizzando la chiave privata.

Se si pensa alla decodifica, si può sapere se base64UrlEncode(header) corrisponde al valore di header di JWT e se base64UrlEncode(payload) corrisponde dopo aver decodificato la firma con la chiave privata.

L'intestazione e il carico utile esclusi la firma sono solo codificati, quindi è possibile visualizzare le informazioni nel corpo, ma l'integrità e la sicurezza delle informazioni sono mantenute dalla firma.



JWT è autonomo (Self-contained) che contiene tutte le informazioni necessarie e è stato creato per ovviare agli svantaggi della sessione che deve essere stateless. JWT non richiede un archivio separato.

Non è necessario mantenere la sessione sul lato server, quindi è stateless, il che aumenta la scalabilità nei sistemi distribuiti o nell'architettura dei microservizi.

La firma, la firma digitale, garantisce la sicurezza e l'integrità dei dati.

nofunfromdev
Seize the day
Seize the day
nofunfromdev
Utilizza un certificato di autenticazione finanziario gratuito invece di un certificato di autenticazione congiunto a pagamento! Ti presentiamo un certificato di autenticazione finanziario che puoi ottenere gratuitamente al posto di un certificato di autenticazione congiunto. È facile da ottenere in 3 minuti e può essere utilizzato per 3 anni. Puoi richiederlo dal sito web della ba
길리
길리
길리
길리
길리

17 aprile 2024

Worldcoin, la scansione dell'iride è davvero sicura? Worldcoin assegna le monete tramite la scansione dell'iride, ma solleva diverse criticità, tra cui il dibattito sul commercio di dati personali, la mancanza di trasparenza nell'utilizzo delle informazioni e il rischio di trasferimento dei server all'ester
세상 모든 정보
세상 모든 정보
세상 모든 정보
세상 모든 정보

31 marzo 2024

[Spring] Che cos'è Filter, Interceptor, Argument Resolver? Scopri di più sui concetti e sulle differenze tra Filter, Interceptor e Argument Resolver nelle applicazioni web Spring. Scopri come implementare ciascuna funzione, quando usarla, i pro e i contro e usa esempi di codice reali per comprenderli. Inoltre,
제이온
제이온
제이온
제이온
제이온

27 aprile 2024

Cos'è un modello linguistico di grandi dimensioni (LLM)? I modelli linguistici di grandi dimensioni (LLM) sono una tecnologia di base dell'intelligenza artificiale che impara da un'enorme quantità di dati di testo per acquisire capacità di elaborazione del linguaggio simili a quelle umane, e possono essere util
세상 모든 정보
세상 모든 정보
세상 모든 정보
세상 모든 정보

1 aprile 2024

[Effective Java] Item 1. Consider static factory methods instead of constructors I metodi di fabbrica statici sono un modo flessibile ed efficiente per creare istanze invece di costruttori. Possono avere un nome, restituire istanze che soddisfano determinate condizioni e migliorare le prestazioni tramite il caching. A differenza del m
제이온
제이온
제이온
제이온

27 aprile 2024

[Effictive Java] Item 6. Evitare la creazione di oggetti non necessari Questa è una guida su come ridurre la creazione di oggetti non necessari in Java. Per gli oggetti immutabili come String e Boolean, è meglio usare i letterali e per le espressioni regolari è meglio mettere in cache l'istanza di Pattern. Inoltre, l'autobox
제이온
제이온
제이온
제이온

28 aprile 2024