Google Auth Mechanism Emanuel Di Nardo [email protected] m Quattro meccanismi di accesso: 1. OAuth 2.0 (Web e Installed) 2. OAuth 1.0 (deprecato) 3. OpenID (Web) 4. Hybrid Protocol (Web) OAuth 2.0 Permette l’accesso ad API private Fornisce sicurezza e protezione per gli utenti L’applicazione di terze parti non può conoscere i dati inseriti in fase di login Autenticazione sicura fornita da Google Utilizzo di token di sicurezza • Utilizzo: Registrare l’applicazione su Google APIs Console e scegliere i servizi da utilizzare • Generazione OAuth ID Verranno generate chiavi univoche per l’utilizzo dei servizi • Effettuare il login/autorizzazione tramite il seguente url: https://accounts.google.com/o/oauth2/auth Aggiungendo i seguenti parametri con metodo HTTP GET: • Il parametro ‘scope’ definisce a quali informazioni stiamo cercando di accedere: Lo scope è indicato nella documentazione della risorse a cui si tenta di accedere (calendar/gmail/contacts/ecc...) Es. informazioni account Informazioni sull’intero account: https://www.googleapis.com/auth/userinfo.profile Informazioni sull’indirizzo email: https://www.googleapis.com/auth/userinfo.email Possono essere inseriti entrambi! Gli altri parametri variano in base al tipo di applicazione che stiamo costruendo. Web server: response_type: code; redirect_uri: specificato nella generazione dell’OAuth ID; Client-side: response_type: token; redirect_uri: specificato nella generazione dell’OAuth ID; Installed app: reponse_type: code; redirect_uri: • Dopo l’accesso verrà mostrata una finestra di autorizzazione per l’utente Nel caso di response_type: code dovrà essere generata una nuova richiesta per avere il token di accesso: Richiesta di tipo POST con parametri: https://accounts.google.com/o/oauth2/token La risposta sarà un JSON come il seguente: • Per effettuare una richiesta specifica dobbiamo consultare la documentazione della risorsa desiderata. Vengono utilizzati solitamente i metodi HTTP [GET, POST, DELETE] Es.: Richiesta informazioni utente: https://www.googleapis.com/oauth2/v1/userinfo?access_token=1/fFBGRNJru1FQd44 AzqT3Zg Richiesta Google Calendar: https://www.googleapis.com/calendar/v3/calendars/calendarId/events/eventId?access _token=1/fFBGRNJru1FQd44AzqT3Zg Alla scadenza del token expires_in dobbiamo richiederne uno nuovo, utilizziamo la chiave refresh_token Nuova richiesta HTTP POST: https://accounts.google.com/o/oauth2/token Problema di sicurezza client-side: I token devono essere validati! Aggiungere il parametro access_token con il valore appena ricevuto al seguente URL: https://www.googleapis.com/oauth2/v1/tokeninfo In risposta avremo un nuovo JSON: La verifica è valida solo se audience corrisponde al proprio In sintesi: Materiale disponibile al seguente indirizzo: http://goo.gl/jJzfh http://students.uniparthenope.it