|
|
ASP.NET MVC - Accesso con Facebook, Twitter, Linkedin e Google OAuth2 |
|
|
Articolo orginale su Microsoft di Rick Anderson
Autore originale: Rick Anderson
|
Costruire un'applicazione ASP.NET MVC che permetta all'utente di loggarsi con OAuth 2.0 con l'utilizzo di credenziali fornite da un sistema di autenticazione esterno come Facebook, Twitter, Linkedin, Microsoft o Google. Abilitare queste credenziali nel proprio sito internet fornisce un significativo vantaggio per milioni di utenti che hanno già i loro account su questi sistemi esterni. Questi utenti dovrebbero essere più invogliati a registrarsi sul proprio sito internet senza dover effettuare una nuova registrazione con nuove credenziali.
|
User Authentication
Quando si crea un nuovo progetto in Microsoft Visual Studio, selezionare la voce MVC e, se il sistema di Autenticazione (Authentication) non è impostato a Individual User Account, selezionare il comando Cambia autenticazione (Change Authentication) e selezionare la voce appropriata.
|
Aggiornare il pacchetto NuGet all'ultima versione OWIN
Utilizzare il Gestore Pacchetti NuGet (NuGet Package Manager) per aggiornare OWIN. Selezionare Aggiorna (Update) dal menu a sinistra una volta selezionato il pacchetto desiderato. Tip: si può scegliere la voce "Aggiorna tutti" (Update All) per aggiornare tutti i pacchetti installati nel progetto.
|
Impostare il progeto SSL
Per connettersi a provider di autenticazione (authentication providers) esterni come Google e Facebook, è necessario impostare IIS-Express all'utilizzo di SSL. È importante mantenere la connessione SSL dopo aver effettuato il login (e non tornare alla navigazione HTTP), il login cookie è segreto come username e password ed abbandonando la connessione SSL, si trametterebbero in chiaro le credenziali.
- All'interno della soluzione, selezionare il progetto MVC con il tasto destro del mouse
- Premere il tasto F4 per mostrare le proprietà del progetto
- Modificare la voce SSL Enabled a true
- Copiare l'indirizzo SSL (probabilmente simile a https://localhost:44300)
- Visualizzare le proprietà con il tasto destro del mouse sul progetto
- Selezionare il tab WEB ed incollare l'indirizzo SSL nel campo Project Url
- Aggiungere l'attributo RequireHttps nell'Home Controller per indicare la necessità di utilizzare HTTPS.
Un altro approccio più sicuro è quello di aggiungere il filtro RequireHttps all'applicazione.
- Eventualmente installare il certificato richiesto
|
Creare una Google app per OAuth2 e collegarla al progetto
- Navigare nella Goolge Developers Console
- Selezionare la voce Create Project ed inserire un nome al progetto ed un ID (si possono utilizzare i valori di default). In pochi istanti il nuovo progetto verrà creato e si verrà reindirizzati nella pagina specifica
- Nel tab di sinistra, cliccare su APIs & auth, e successivamente Credentials
-
Selezionare la voce Create New Client ID sotto OAuth
- Nella maschera di Create Client ID, lasciare il valore Web application per il tipo di applicazione
- Impostare Authorized JavaScript dell'indirizzo SSL il valore precedente (https://localhost:44300)
- Impostare Authorized redirect URI a: https://localhost:44300/signin-google
- Selezionare Consent
- Impostare il proprio indirizzo email ed il nome del prodotto
- Premere Save
- Selezionare il menu APIs e scorrere fino alla voce Google+ API ed abilitarlo (ON)
- Copiare ed incollare l'AppId e App Secret nel metodo UseGoogleAuthentication()
|
Creare una Facebook app e collegarla al progetto
- Navigare nella Pagina per sviluppatori di Facebook
- Se non si è registrati come sviluppatori su Facebook, effettuare la registrazione
- Nel tab Apps, cliccare Create New App
- Impostare una App Name ed una Category, poi premere Create App(questo deve essere univoco all'interno di Facebook.)
L'App Namespace è la parte di URL che l'App utilizzerà per accedere all'applicazione Facebook per effettuare l'autenticazione. Se non viene specificate una App Namespace, verrà utilizzato l'App ID
- Effettuare il Security Check
- Selezionare Settings dal menu di sinistra
- Nella sezione Basic Settings, selezionare Add Platform per specificare che si sta aggiungendo un sito internet (selezionare Website nella scelta della piattaforma)
- Prendere nota di del proprio AppID e App Secret per aggiungerli all'applicazione MVC. Aggiungere una mail e salvare i dati.
Ricordarsi che si sarà autorizzati ad autenticarsi utilizzando l'email alias che si è utilizzato per la registrazione.
- Copiare App ID e App Secret nel file App_Start\Startup.Auth.cs
|
|
|
|
|
|
|
|
|
I23 di Boccaletti Emanuele 41121 Modena (MO) Tel. +39 347 1302420 emanuele@i23.eu Skype: emanuele.boccaletti |
|
|
|
|