OAuth2 per autorizzare accesso a Rest/API interne ed esterne
Introduzione
Quello che si vuole ottenere è l'uso dell'autenticazione OAuth2 per validare le richieste interne ad una web app a microservizi e le richieste da parte di uno o più di questi microservizi verso servizi API esterni, nello specifico l'uso della posta di Google.
OAuth è uno standard che le applicazioni, i dispositivi, le API e i server possono usare per ottenere un "accesso delegato sicuro" basato su token anziché sulle credenziali.
Il meccanismo è lo stesso che consente l'autenticazione mediante account di terzi.
Dettagli
OAuth2
OpenID
Flusso OAuth2
Validazione esterna
Quello che ora si vuole ottenere è che una applicazione web si autentichi verso le API di Google per poter usare i servizi di questa, come ad esempio l'invio mail.
Questa pratica viene detta, da Google, autenticazione "OAuth da server a server". Il diagramma è il seguente:
1) Creare un account di servizio su Google
2) Generare un Token Web Json (JWT)
3) Richiedere un token di accesso a Google
4) Usare questo token per fare le chiamate allo specifico servizio API di Google che si intende utilizzare.
1) Creare un account di servizio su Google
Puntare la pagina per i servizi di Google. Selezionare un progetto o crearne uno nuovo.
Selezionare la voce "+ CREA ACCOUNT DI SERVIZIO" e nella scheda di dettaglio inserisci un nome per l'account di servizio, un ID e una descrizione e dopo cliccare su "Crea".
Nella fase successiva si può specificare, facoltativamente, se assegnare un ruolo nel progetto allo specifico account di servizio che si sta creando, lasciamolo vuoto.
Cliccando su fine si ottiene la generazione di questo account di servizio che verrà rappresentato un una griglia con tutti gli altri eventualmente generati:
2) Ceazione di una chiave privata
L'elemento che ci interessa è "private_key_id", quella è la chiave privata che ci serve per firmare il JWT.
3) Abilitare il servizio
Tornare al menu generale e selezionare "API e servizi" > "Dashboard" e poi, dalla voce di menu superiore "+ABILITA API E SERVIZI":
Si aprirà un "catalogo" di API, selezionare quella desiderata, nel mio caso "Gmail API" e selezionare "Abilita".
Si viene portati in un menù contestuale nel quale nella voce "Credenziali" è elencata la chiave che abbiamo creato con l'account di servizio prima:
Cliccando sulla voce "Attiva" in alto a destra si attiva il servizio che è riservato agli account G Suite.
Fonte: https://www.soliantconsulting.com/blog/google-oauth-2-service-account/
Commenti
Posta un commento