Token Web JSON (JWT)
I token web JSON (JWT) sono uno standard aperto, definito nella specifica JSON Web Token (JWT) RFC 7519. Rappresentano in modo sicuro le rivendicazioni tra due parti. Le attestazioni possono essere correlate a qualsiasi processo aziendale, ma in genere vengono utilizzate per rappresentare un'identità e le relative associazioni. Ad esempio, un utente la cui identità rappresenta JWT appartiene a un ruolo o gruppo di amministratore.
Per un'introduzione a JWT, vedere JWT (RFC 7519).
Le attestazioni in un JWT sono codificate come oggetto JSON e normalmente sono firmate digitalmente con un codice di autenticazione del messaggio (MAC). Lo scenario più comune per l'utilizzo di un JWT è l'autenticazione. Quando l'utente ha effettuato l'accesso, ogni richiesta successiva include il JWT, che consente all'utente di accedere ai servizi consentiti da quel token.
Per vedere qualeCICS® i metodi di accesso supportano JWT, vedere Quale metodo di autenticazione posso utilizzare con quale metodo di accesso? .
Perché usare JWT?
- Sono leggeri e facili da usare da parte delle applicazioni client: ad esempio, le applicazioni mobili.
- Sono autonomi, il che significa che il server Liberty JVM può consumare direttamente il token e utilizzare un'attestazione del token come identità per eseguire la richiesta.
- Possono essere firmati simmetricamente da un segreto condiviso utilizzando l'algoritmo HMAC o asimmetricamente utilizzando una chiave privata.
- Hanno un meccanismo di scadenza integrato.
- Possono essere estesi per contenere attestazioni personalizzate.
- Sono ampiamente adottati da diverse soluzioni Single Sign-On e standard noti, come Come funziona:OpenID Collegare .
Anatomia di un JWT
- Intestazione
- L'intestazione è generalmente composta da due parti: il tipo di token, che è JWT, e l'algoritmo utilizzato, come HMACSHA256 o RSASHA256 . ÈBase64Url codificato per formare la prima parte del JWT.
- Payload
- Il payload contiene le attestazioni. Esiste una serie di rivendicazioni registrate, ad esempio,
iss(emittente),exp(data di scadenza),sub(oggetto) eaud(pubblico). Queste attestazioni non sono obbligatorie ma consigliate per fornire una serie di attestazioni utili e interoperabili. Il payload può anche includere attributi aggiuntivi che definiscono le richieste personalizzate, come il ruolo del dipendente. In genere, l'attestazione dell'oggetto viene utilizzata per creare il fileOpenID Connetti l'oggetto dell'utente. Tuttavia, il server Liberty JVM può essere configurato per utilizzare un'attestazione alternativa. Il carico utile èBase64Url codificato per formare la seconda parte del JWT. - Firma
- Per creare la parte della firma, l'intestazione codificata e il payload codificato vengono firmati utilizzando l'algoritmo di firma dell'intestazione. La firma viene utilizzata per verificare che l'emittente del JWT sia chi dice di essere e per garantire che il messaggio non sia stato modificato lungo il percorso.

- L'utente accede utilizzando le credenziali.
- Quando l'utente viene autenticato, viene creato un JWT e restituito all'utente.
- Quando l'utente vuole accedere a una risorsa protetta, l'applicazione client invia il JWT, in genere nell'intestazione HTTP Authorization.
- Il JWT viene quindi utilizzato dal server delle applicazioni, ad esempioCICS , per identificare l'utente e consentire l'accesso alla risorsa.
Supporto per JWT inCICS Libertà
- OpenID Funzionalità Connect Client (OIDC).
CICS La libertà sostieneOpenID Collegare1.0 . Puoi usare ilopenidConnectClient-1.0 funzionalità per configurare un server Liberty JVM per accettare un JWT come token di autenticazione. Per ulteriori informazioni, vedere Come funziona:OpenID Collegare .
- Funzionalità JWT
La Libertàjwt-1.0 La funzionalità fornisce una serie di API che puoi utilizzare per lavorare con i JWT. È possibile utilizzare la funzionalità per creare o utilizzare un JWT.
- Impresa Java Security API
Enterprise Java™ Security API è un'API per i fornitori di servizi standard di Enterprise Java che consente l'implementazione di meccanismi di autenticazione e di identity store nelle applicazioni web Enterprise Java. È possibile sviluppare un meccanismo di autenticazione HTTP personalizzato che autentichi una richiesta che utilizza un JWT.
- JASPIC (Java Authentication Service Provider Interface for Containers)
JASPIC è un'API del fornitore di servizi standard Enterprise Java che consente l'implementazione di meccanismi di autenticazione nelle applicazioni Web Enterprise Java. È possibile sviluppare un provider di autenticazione JASPIC personalizzato che autentica una richiesta che utilizza un JWT.
- Interceptor dell'associazione fiduciaria (TAI)
Un Trust Association Interceptor (TAI) è unWebSphere® API proprietaria del fornitore di servizi che consente l'integrazione di servizi di sicurezza di terze parti. È possibile implementare un TAI che ispeziona le richieste HTTP per un token di sicurezza specifico, ad esempio un JWT, e lo convalida. Il server CICS Liberty deve essere configurato per utilizzare il TAI implementato.
Supporto per JWT inCICS
CICS supporta solo JWT creati daRACF . Con questa funzionalità, puoi convertire le credenziali di autenticazione di base di un utente in un JWT che viene quindi utilizzato come token di sessione sicura limitato nel tempo. Puoi convalidare questo token sicuro nelle richieste successive utilizzando il fileCICS comando API,VERIFY TOKEN . Questo supporto può essere utilizzato anche per convertire un token MFA in un JWT per supportare l'uso dei token MFA su richieste senza stato che memorizzano nella cache le credenziali. Password, passphrase, token MFA ePassTickets sono tutte credenziali supportate.
Se si desidera che le richieste HTTPS o SOAP accettino un JWT creato da RACF, è necessario scrivere intestazioni personalizzate.
Il diagramma seguente mostra uno scenario in cui le credenziali di autenticazione di base vengono convertite in un JWT per le richieste successive, doveuser è l'ID utente epw è la parola d'ordine.