-
Come inviare una e-mail tramite il protocollo OAuth?
Il protocollo OAuth permette di non fornire a un'applicazione un identificativo e una password che non gli permettano di accedere completamente a un servizio, ma di dargli solo le autorizzazioni necessarie per svolgere le attività per le quali è autorizzato.
Queste autorizzazioni sono concesse sotto forma di due "token":
Questa fase di autenticazione è gestita interamente dal servizio e non dall'applicazione.
Essa può essere un'autenticazione a più fattori, a esempio con un codice di verifica inviato via SMS o e-mail.
Solo una volta che l'utente si è autenticato e ha dato il suo consenso per le autorizzazioni richieste i token verranno comunicati all'applicazione.
L'utente in qualsiasi momento può riconnettersi direttamente al proprio servizio per consultare o revocare le autorizzazioni già concesse. La procedura serve perché né l'identificativo né la password possano essere compromessi.
Queste autorizzazioni sono concesse sotto forma di due "token":
- un token di accesso (access token), valido generalmente per un periodo breve, generalmente un'ora,
- un token di aggiornamento (refresh token) con una durata maggiore che permette di rinnovare il token di accesso senza dover richiedere costantemente un intervento dell'utente.
Questa fase di autenticazione è gestita interamente dal servizio e non dall'applicazione.
Essa può essere un'autenticazione a più fattori, a esempio con un codice di verifica inviato via SMS o e-mail.
Solo una volta che l'utente si è autenticato e ha dato il suo consenso per le autorizzazioni richieste i token verranno comunicati all'applicazione.
L'utente in qualsiasi momento può riconnettersi direttamente al proprio servizio per consultare o revocare le autorizzazioni già concesse. La procedura serve perché né l'identificativo né la password possano essere compromessi.
Identificazione dell'applicazione presso il servizio
I servizi concedono autorizzazioni solamente ad applicazioni conosciute. È necessario quindi che una dichiarazione preventiva permetta di ottenere:
Per il server SMTP di Microsoft smtp.office365.com si suggerisce di utilizzare un'applicazione predefinita di Index Education. Non vi dovrete occupare di questo step.
Altrimenti, è necessario che dichiariate voi stessi l'applicazione per ottenere un identificativo e un segreto. Potete consultare queste sezioni sottostanti:
- un identificativo (client ID) per identificare l'applicazione
- un segreto (client secret) che dev'essere nascosto e che evita che un'applicazione si spacci per un'altra
Per il server SMTP di Microsoft smtp.office365.com si suggerisce di utilizzare un'applicazione predefinita di Index Education. Non vi dovrete occupare di questo step.
Altrimenti, è necessario che dichiariate voi stessi l'applicazione per ottenere un identificativo e un segreto. Potete consultare queste sezioni sottostanti:
- Dichiarare da sé l'applicazione presso un servizio Google;
- Dichiarare da sé l'applicazione presso un servizio Microsoft.
Identificazione del servizio presso l'applicazione
L'applicazione necessita di più URL chiamati endpoint per iniziare gli scambi col servizio. Potete ottenere questi endpoint nell'interfaccia in cui avete dichiarato l'applicazione.
Se si tratta dell'applicazione predefinita di Index Education questi endpoint sono precompilati.
Se si tratta dell'applicazione predefinita di Index Education questi endpoint sono precompilati.
Dichiarare da sé l'applicazione presso un servizio Google
Lato Servizio:
Per cominciare, è necessario che vi connettiate a https://console.cloud.google.com/home/dashboard, facendo poi clic a sinistra su API e servizi.
- Create un nuovo progetto, rinominatelo (senza caratteri accentati), poi assicuratevi che il nuovo progetto sia selezionato. Questo non sarà il nome non sarà visualizzato dall'utente.
- Cliccate a sinistra su Libreria e poi su Gmail API. Attivate le API Gmail.
- Tutto in alto a sinistra fate clic nel menu parametri (menu hamburger) e andate in API e servizi.
- Poi cliccate a sinistra su Schermata di consenso OAuth e compilate le informazioni.
- Alla seconda schermata Livello di accesso fate clic sul tasto AGGIUNGI O ELIMINA DEI CAMPI DI APPLICAZIONE.
Sotto Aggiungi manualmente dei livelli di accesso, incollate https://mail.google.com/, cliccate AGGIUNGI ALLA TABELLA, poi AGGIORNA. - Alla domanda Quali funzionalità utilizzerete scegliete Client di messaggistica.
- Terminate la configurazione.
- Cliccate in seguito a sinistra su Identificativi, poi su + CREA DEGLI IDENTIFICATIVI, ID client OAuth.
- Tipo di applicazione: applicazione Web
- Nome: execonnect.index-education.com
- URL di reindirizzamento autorizzati: https://execonnect.index-education.com/callback
- Una finestra compare con un identificativo e un segreto: questi due parametri devono essere conservati per essere inseriti nell'applicazione.
Lato applicazione:
Nell'applicazione inserite ora, i seguenti elementi:
Potete ora ottenere dei token OAuth.
- Identificativo, Segreto: incollate qui i valori salvati precedentemente
- Endpoint dell'autorizzazione: https://accounts.google.com/o/oauth2/v2/auth?prompt=consent&access_type=offline
- Endpoint del token: https://oauth2.googleapis.com/token
- Autorizzazioni richieste: https://mail.google.com/
Potete ora ottenere dei token OAuth.
Note:
- Sono necessari i parametri prompt=consent&access_type=offline per ottenere un token d'accesso e un token di aggiornamento.
- L'autorizzazione https://www.googleapis.com/auth/gmail.send (Inviare delle e-mail a vostro nome) non è sufficiente per inviare una e-mail tramite un server SMTP, è necessario aggiungere https://mail.google.com/ (accesso completo alla casella di posta). Vedi Meccanismo OAuth 2.0
Dichiarare da sè l'applicazione presso un servizio Microsoft
Lato servizio:
Per cominciare, occorre che vi connettiate a https://portal.azure.com/, cliccando su Azure Active Directory.
- Fate clic a sinistra su Iscrizione applicazioni, poi in alto su + Nuova iscrizione. Scegliete a seconda delle vostre necessità il tipo di account preso in considerazione, poi nella sezione URL di reindirizzamento scegliete Client pubblico / nativo (mobile & desktop) con l'URL https://execonnect.index-education.com/callback.
- Una volta aggiunta l'applicazione, fate clic a sinistra su Personalizzazione e proprietà, riempite i campi e fate clic su Salva.
- Cliccate a sinistra su Autenticazione, poi al fondo, sotto Autorizza i flussi client pubblici, mettete la spunta su Sì e cliccate su Salva.
- Cliccate a sinistra su API autorizzate, poi su + Aggiungi un'autorizzazione, Microsoft Graph, Autorizzazioni delegate. Sotto Utente, togliete la spunta a User.Read, poi sotto SMTP, mettete la spunta a SMTP.Send. Cliccate in seguito su Aggiungi delle autorizzazioni.
- Cliccate a sinistra su Panoramica generale.
- Copiate il valore di fronte all'ID dell'applicazione (client) e conservatelo per inserirlo nell'applicazione.
- Cliccate in alto su Endpoint e copiate i primi due valori, Endpoint dell'autorizzazione OAuth 2.0 (v2) e Endpoint del token OAuth 2.0 (v2) per inserirli nell'applicazione.
Lato applicazione:
Nell'applicazione, inserite ora i seguenti elementi:
- Identificativo: incollate qui il primo valore precedentemente salvato
- Segreto: lasciate questo campo vuoto, le applicazioni pubbliche sono autorizzate
- Endpoint di autorizzazione e token: incollate gli altri due valori precedentemente salvati
- Autorizzazioni richieste:: https://outlook.office.com/SMTP.Send offline_access
Note:
- L'autorizzazione https://outlook.office.com/SMTP.Send è diversa da quella dichiarata nell'applicazione (SMTP.Send di Microsoft Graph), ma solo un token ottenuto con l'autorizzazione https://outlook.office.com/SMTP.Send permette di inviare una mail attraverso un server SMTP. Vedi Authenticate an IMAP, POP or SMTP connection using OAuth
- L'autorizzazione offline_access è necessaria per ottenere un token di accesso e un token di aggiornamento.
Utilizzo del protocollo OAuth per i dispositivi con vincoli di input
Esiste una variante del protocollo OAuth che permette a un dispositivo con vincoli di input (ad es. un televisore connesso) di richiedere un token OAuth, si tratta del Device Authorization Grant. Se riscontrate dei problemi con lo scenario OAuth proposto di default potete utilizzare questa variante del protocollo che funziona anche per alcune applicazioni su pc.
Nell'applicazione, tenete premuti i tasti Ctrl e Shift quando cliccate il tasto per entrare nella finestra Configurazione OAuth: questa vi lascia la possibilità di passare allo scenario Device Authorization Grant. Da qui, l'endpoint di autorizzazione viene sostituito da un endpoint periferico.
Attenzione, la procedura non funziona coi servizi di Google poiché non potete richiedere l'autorizzazione https://mail.google.com/. Vedi le Estensioni Autorizzate.
D'altra parte, questo protocollo funziona con i servizi di Microsoft.
Occorre sapere che l'endpoint periferico viene dedotto dall'endpoint di autorizzazione sostituendo al fondo autorizza con devicecode:
Nell'applicazione, tenete premuti i tasti Ctrl e Shift quando cliccate il tasto per entrare nella finestra Configurazione OAuth: questa vi lascia la possibilità di passare allo scenario Device Authorization Grant. Da qui, l'endpoint di autorizzazione viene sostituito da un endpoint periferico.
Attenzione, la procedura non funziona coi servizi di Google poiché non potete richiedere l'autorizzazione https://mail.google.com/. Vedi le Estensioni Autorizzate.
D'altra parte, questo protocollo funziona con i servizi di Microsoft.
Occorre sapere che l'endpoint periferico viene dedotto dall'endpoint di autorizzazione sostituendo al fondo autorizza con devicecode:
- https://login.microsoftonline.com/common/oauth2/v2.0/authorize diventa https://login.microsoftonline.com/common/oauth2/v2.0/devicecode
- https://login.microsoftonline.com/{xxx}/oauth2/v2.0/authorize diventa https://login.microsoftonline.com/{xxx}/oauth2/v2.0/devicecode
Questo contenuto è stato utile?
Non avete trovato risposte alla vostra domanda?
Contattate l'assistenza