Passa al contenuto principale

Appendix A. JWT Examples (Esempi di JWT)

Questa appendice fornisce esempi di JWT.

A.1. Example Encrypted JWT (Esempio di JWT crittografato)

Questa sezione fornisce un esempio di JWT crittografato. Il JWT crittografato utilizza la serializzazione compatta JWE.

Il seguente esempio di intestazione JOSE dichiara che:

  • L'oggetto codificato è un JWT
  • Il JWT è crittografato
  • La chiave di crittografia del contenuto (CEK) è crittografata utilizzando l'algoritmo RSA-OAEP
  • Il JWT Claims Set è crittografato utilizzando l'algoritmo AES GCM
{"alg":"RSA-OAEP","enc":"A256GCM"}

Il seguente è un esempio di JWT Claims Set per il JWT crittografato:

{"iss":"joe",
"exp":1300819380,
"http://example.com/is_root":true}

Il formato di serializzazione compatta JWE è:

BASE64URL(UTF8(JWE Protected Header)) || '.' ||
BASE64URL(JWE Encrypted Key) || '.' ||
BASE64URL(JWE Initialization Vector) || '.' ||
BASE64URL(JWE Ciphertext) || '.' ||
BASE64URL(JWE Authentication Tag)

A.2. Example Nested JWT (Esempio di JWT nidificato)

Questa sezione fornisce un esempio di JWT nidificato, che dimostra la firma e la crittografia nidificate. In questo esempio, il JWT Claims Set viene prima firmato e poi il JWS risultante viene crittografato.

Nel primo passaggio, viene creato e firmato un JWT Claims Set contenente le rivendicazioni, creando un JWS. Nel secondo passaggio, questo JWS viene utilizzato come testo in chiaro per un JWE da crittografare.

L'intestazione JOSE per il JWT interno (JWS):

{"alg":"RS256"}

L'intestazione JOSE per il JWT esterno (JWE) contiene un valore "cty" (content type) di "JWT", indicando che viene trasportato un JWT nidificato:

{"alg":"RSA-OAEP","enc":"A256GCM","cty":"JWT"}

Il JWT Claims Set è lo stesso dell'esempio precedente. Il JWT nidificato risultante è un JWT prima firmato e poi crittografato.