5. JOSE Header (Intestazione JOSE)
Per un oggetto JWT, i membri dell'oggetto JSON rappresentato dal JOSE Header descrivono le operazioni crittografiche applicate al JWT e, opzionalmente, proprietà aggiuntive del JWT. A seconda che il JWT sia un JWS o un JWE, si applicano le regole corrispondenti per i valori del JOSE Header.
Questa specifica specifica ulteriormente l'uso dei seguenti parametri di intestazione (Header Parameters) sia nel caso in cui il JWT sia un JWS sia nel caso in cui sia un JWE.
5.1. "typ" (Type) Header Parameter (Parametro di intestazione tipo)
Il parametro di intestazione "typ" (type) definito da [JWS] e [JWE] viene utilizzato dalle applicazioni JWT per dichiarare il tipo di media [IANA.MediaTypes] di questo JWT completo. Questo è destinato all'uso da parte dell'applicazione JWT quando valori che non sono JWT potrebbero anche essere presenti in una struttura dati dell'applicazione che può contenere un oggetto JWT; l'applicazione può utilizzare questo valore per disambiguare tra i diversi tipi di oggetti che potrebbero essere presenti. Tipicamente non viene utilizzato dalle applicazioni quando il tipo di oggetto è già noto. Questo parametro viene ignorato dalle implementazioni JWT; qualsiasi elaborazione di questo parametro viene eseguita dall'applicazione JWT. Se presente, si raccomanda (RECOMMENDED) che il suo valore sia "JWT" per indicare che questo oggetto è un JWT. Sebbene i nomi dei tipi di media non siano sensibili alle maiuscole/minuscole, si raccomanda (RECOMMENDED) che "JWT" sia sempre scritto utilizzando caratteri maiuscoli per la compatibilità con le implementazioni legacy. L'uso di questo parametro di intestazione è opzionale (OPTIONAL).
5.2. "cty" (Content Type) Header Parameter (Parametro di intestazione tipo di contenuto)
Il parametro di intestazione "cty" (content type) definito da [JWS] e [JWE] viene utilizzato da questa specifica per trasmettere informazioni strutturali sul JWT.
Nel caso normale in cui non vengono impiegate operazioni di firma o crittografia annidate, l'uso di questo parametro di intestazione non è raccomandato (NOT RECOMMENDED). Nel caso in cui venga impiegata la firma o crittografia annidata, questo parametro di intestazione deve essere presente (MUST); in questo caso, il valore deve essere (MUST) "JWT", per indicare che un JWT annidato (Nested JWT) è contenuto in questo JWT. Sebbene i nomi dei tipi di media non siano sensibili alle maiuscole/minuscole, si raccomanda (RECOMMENDED) che "JWT" sia sempre scritto utilizzando caratteri maiuscoli per la compatibilità con le implementazioni legacy. Vedere l'Appendice A.2 per un esempio di JWT annidato.
5.3. Replicating Claims as Header Parameters (Replica delle rivendicazioni come parametri di intestazione)
In alcune applicazioni, è utile rendere certe rivendicazioni direttamente visibili al software che elabora il JWT, senza dover prima decrittare o verificare il JWT. Questo può essere ottenuto replicando i valori delle rivendicazioni come valori dei parametri di intestazione.
Questa specifica non richiede né vieta la replica delle rivendicazioni nei parametri di intestazione. Tuttavia, le applicazioni che scelgono di farlo devono (MUST) seguire queste regole:
-
La presenza della rivendicazione e la semantica del valore devono (MUST) essere preservate, indipendentemente dal fatto che la rivendicazione sia nel JWT Claims Set o come parametro di intestazione.
-
Se la stessa informazione è presente in entrambe le posizioni, i loro valori devono (MUST) essere identici. Le implementazioni devono (MUST) verificare questa coerenza e rifiutare il JWT se sono incoerenti.