Questi campi sono qui per consentire al componente di verificare il ticket di identificare la chiave utilizzata per la firma.
-
jku
è un URI che fa riferimento alla chiave pubblica utilizzata per generare la firma. Deve seguire il formato RFC7517 . L'entità che verifica il token è responsabile di verificare se tale chiave di firma può essere considerata attendibile o meno.
-
kid
è l'identificazione chiave ed è valida solo nel contesto di un determinato pubblico: il contesto dell'applicazione deve definire come utilizzare quel parametro per identificare la chiave. Può essere la fingerpring dell'utente cert x509 per la firma, può essere il numero seriale certificat, può essere un riferimento a una riga in una tabella, può essere l'ID di un segreto HMAC memorizzato in un file JSON, oppure XPath all'interno di un documento XML, qualunque sia definito dalla parte di firma.
-
x5u
deve contenere un URL per il certificato x509 utilizzato per firmare il token. Il certificato deve essere in PEM formato.
Tipicamente, avrai uno solo di questi parametri in un determinato token (in fondo ci può essere una sola chiave di firma, anche se non è impossibile avere la stessa chiave accessibile con metodi diversi (questo significa principalmente che è Non è impossibile avere sia un'intestazione jku che una x5u che puntano alla stessa chiave ma dovresti cercare di evitare questo tipo di ambiguità).
Per definizione, se qualcuno cambia le intestazioni e firma di nuovo il ticket, il risultato non è lo stesso token quindi non devi preoccuparti di questo: puoi rifiutare in modo sicuro qualsiasi token che non può validare correttamente.