Integrazione di un servizio di terze parti protetto da autenticazione
In questa sezione viene descritta la modalità di integrazione con un servizio di terze parti protetto da autenticazione tramite il token JWT dell'utente.
Dataset e micro servizi esterni alla piattaforma possono essere facilmente integrati tramite il flusso di autenticazione basato su JWT (JSON Web Token) e JWKS (JSON Web Key Set)
Questo flusso di autenticazione prevede alcuni passaggi chiave e interazioni tra:
client (browser dell'utente)
area personale
micro servizio esterno
Di seguito il processo punto per punto:
1. Il client richiede il token
Il client invia una richiesta all'area personale per ottenere un JWT, spesso includendo le credenziali dell'utente o altre forme di autorizzazione.
Questa operazione può essere effettuata facendo una chiamata alle API:
oppure come utente non autenticato effettuando una chiamata POST alle API
3. Il client richiede la risorsa al micro servizio esterno:
Il client invia una richiesta al micro servizio esterno per accedere a una risorsa protetta, includendo il JWT nell'intestazione Authorization.
curl --request GET \
--url '{Url API micro servizio esterno}' \
--header 'Authorization: Bearer {JWT Token}'
4. Il micro servizio esterno convalida il token
Per verificare la validità del token il micro servizio esterno deve:
Estrarre il JWT dalla richiesta
Recuperare il JWKS dall'area personale, il JWKS contiene le chiavi pubbliche necessarie per verificare la firma del JWT.
Verificare la firma del JWT e convalidare le sue richieste
L'area personale espone per ogni sua istanza il JWKS all'indirizzo:
https://instance_url/.well-known/jwks.json
Ad esempio:
5. Accesso concesso/negato:
In base alla validità del JWT il micro servizio esterno concede o nega l'accesso alla risorsa richiesta.
Oltre alla validità del token si possono verificare le affermazioni in esso contenute.
Il payload del token prodotto dall'area personale presenta delle informazioni utili a capire se quello specifico utente oltre ad avere un token valido ha i permessi per ottenere la risorsa richiesta.