Questo sito utilizza i cookie, anche di terze parti: cliccando su 'Chiudi', proseguendo nella navigazione, effettuando lo scroll della pagina o altro tipo di interazione col sito, acconsenti all'utilizzo dei cookie. Per maggiori informazioni o per negare il consenso a tutti o ad alcuni cookie, consulta l'informativa.

Stampa

In questo post esporrò come implementare la funzionalità di autenticazione di tipo server-flow usando come identity provider nientemeno che Facebook.

Occorre dire che se si vuole usare un IdP tra quelli supportati da Azure il processo di configurazione è praticamente uguale per tutti.

> Accedere alla console developer dell’IdP scelto

> Creare una nuova App e abilitare l’utilizzo dell’autenticazione Oauth

> Configurare la parte impostando l’URL del redirect del mobile app service di Azure e quindi prelevare gli identificativi proposti (App Id e App Secret) e che saranno usati da Azure per verificare la correttezza dei dati ricevuti dall’IdP.

> Accedere al portale Azure Impostare i dati sopra ottenuti dall’IdP nel Mobile App service.

Proteggere i controller del backend da accessi non autenticati (attributo [Authorize])

Sembra un bel casino, ma vedrete che è una passeggiata di salute !

Rimarco nuovamente che qui useremo Facebook come identity provider, ma il processo è assolutamente analogo per gli altri IdP supportati in Azure.

Per accedere al portale developer di facebook usare il link in llinkografia, e quindi selezionare nuova app "Add New App".

Dopo aver completato il processo occorre aggiungere la funzionalità di facebook login di tipo web (Add a Product -> Facebook Login -> Web)

Per completare il processo verrà richiesto l'URL (Site URL), che dovrè essere messo uguale all'URL dell'endpoint dei servizi, nel nostro caso quelli di Azure, quindi per per esempio https://focac-book-infpress.azurewebsites.net

Una volta completato il processo occorrerà inserire altri dati accedendo a Facebook Login -> Settings.

In questa parte ecco i parametri principali da gestire.

Client OAuth Login: YES
Web OAuth Login: YES
Enforce HTTPS: YES
Force Web OAuth Reauthentication: NO
Embedded Browser OAuth Login: NO
Use Strict Mode for Redirect URIs: YES (tanto è una voce immodificabile)
Valid OAuth Redirect URIs: <Vedi dopo>
Deauthorize Callback URL: <Vuoto>
Data Deletion Request URL: <Vuoto>
Redirect URI to Check: <Vuoto>

Per il campo Valid Oauth Redirect URIs occorre mettere il redirect del servizio Azure che sarà usato dall'IdP per comunicare l'avvenuta autenticazione comprensiva del token (step 3 processo di autenticazione server-flow - vedere post precedente). Tale URL è il seguente.

<URL servizio Azure>/.auth/login/<nome IdP>/callback

Quindi nel nostro caso https://focac-book-infpress.azurewebsites.net/.auth/login/facebook/callback

Oss.: Va da sè che se per caso si fosse usato com IdP google, questo URL sarabbe stato https://focac-book-infpress.azurewebsites.net/.auth/login/google/callback

 

 

Il processo di configurazione è terminato, ma occorre ancora alcuni dati per poter configurare il tutto correttamente nel portale Azure: App ID e App Secret.

Questi dati possono essere recuperati nella maschera Settings -> Basic.

A questo punto è necessario guadagnare l'accesso al portale Azure, selezionando il servizio Mobile backend che stiamo studiando.

Qui è necessario abilitare l'autenticazione (voce Authentication / Authorization) e il token store (Advanced Settings -> Token Store: ON).

Occorre anche scegliere l'IdP prescelto (Authentication Providers -> Facebook) nonchè inserire App ID e App Secret prelevato dal portale developer di facebook.

Prima di salvare occorre aggiungere in Allowed External Redirect URLs il valore apnm://easyauth.callback. E' un URL strano di cui parleremo nel prossimo post.

E' possibile testare se i dati introdotti sono corretti mimando parzialmente l'autenticazione che eseguirà la nostra app: basterà da un browser qualsiasi accedere a link di accesso all'autenticazione del servizio azure.

<URL servizio Azure>/.auth/login/<nome IdP>/callback

Quindi nel nostro caso https://focac-book-infpress.azurewebsites.net/.auth/login/facebook/callback

Verremmo redirezionati alla pagina di login di facebbok e qui, una volta inserite le corrette credenziali, si verrà nuovamente rediretti alla pagina del servizio Azure di conferma autenticazione.

Gli errori cui si può incorrerere in questa fase possono essere riconducibili a due tipologie: disattenzione o fancazzismo.

Infatti se si inseriscono nel portale Azure in Authentication / Authorization dei valori App ID e App Secret sbagliati l'autenticazione fallirà miseramente -> Disattenzione

Se accedendo alla pagina di login di Azure si verrà redirezionati automaticamente alla pagina di conferma autenticazione sempre di Azure senza, però, alcuna richiesta di login/password da parte di Facebook, vuol dire che da quello stesso browser ci si è già autenticati e si perde gran tempo in questo social -> Fancazzismo

Nel prossimo post analizzeremo il codice implementativo della app e del backend.

Linkografia

Developer portal Facebook