4.1. Autenticazione¶
La piattaforma necessità di un Identity Provider OAuth2 per l’autenticazione e autorizzazione nell’accesso ai componenti dell’architettura.
Nell’ambiente di staging è stato utilizzato Keycloak come Identity Provider ma un qualunque IDP compatibile OAuth2 può andare bene.
Per configurare i vari componenti è necessario procurarsi l’endpoint per ottenere il token jwt e l’endpoint contenente i certificati pubblici del IDP, per esempio:
- jwt.issuer-uri -> https://dica33.ba.cnr.it/keycloak/realms/trasparenzai
- jwt.jwk-set-uri -> https://dica33.ba.cnr.it/keycloak/realms/trasparenzai/protocol/openid-connect/certs
Sarà necessario impostare questi due parametri nei vari microservizi, come spiegato nel seguito.
Ci sono due tipologie di accesso ai servizi della piattaforma, quello degli utenti (le persone fisiche) e quello dei client (i vari componenti si autenticano se devono comunicare tra di loro).
Per quanto riguarda i client è necessario creare tre Service Account di tipo OpenId Connect e autenticazione di tipo client_credentials, i tre client_id devono essere:
crawler
result-aggregator
task-scheduler
I valori dei rispettivi client secret dovrà essere impostato nei microservizi crawler-service, result-aggregator-service e task-scheduler-service.
A questi tre service account deve inoltre essere assegnato un Service Account Role di tipo ROLE_SUPERUSER.
È inoltre necessario creare un client, sempre di tipo OpenId Connect, per l’interfaccia Web Angular JS, il client si deve chiamare angular-public e deve avere impostato come valid redirect url il valore https://www.trasparenzai.it/*.