È ormai uso comune usufruire di un servizio offerto da una piattaforma attraverso la creazione di un account che permette di autenticarci tramite le credenziali scelte (nome utente/email e password).
Negli ultimi anni, tuttavia, il processo di creazione di un nuovo account è stato semplificato e reso molto più rapido.
In particolare, è sempre più frequente la possibilità di accedere a un servizio offerto da un’applicazione di terze parti attraverso il proprio account social, permettendo al gestore in questione di ottenere le informazioni basilari dell’utente, e all’utente stesso di accedere rapidamente al servizio.
Questo approccio prende il nome di social login ed è una forma di single sign-on (SSO) che serve a effettuare l’autenticazione a una piattaforma di terze parti attraverso informazioni già esistenti, memorizzate da un servizio di social networking, come ad esempio Facebook, Google o Twitter.
In Oracle APEX il social login può essere implementato attraverso Open Authorization (OAuth) che fornisce un protocollo di autorizzazione sicuro da utilizzare in combinazione con i sistemi di autenticazione forniti dalle piattaforme social.
Attraverso OAuth, la piattaforma che eroga il servizio ottiene dal social network di destinazione un access token, con il quale verrà identificata. Può inoltre richiedere l’accesso alle informazioni sulle autorizzazioni dell’utente, ossia le informazioni alle quali le aziende accedono perché l’utente ha acconsentito all’utilizzo di quei dati.
In questo articolo voglio spiegarti come configurare in pochissimi minuti l’autenticazione di una applicazione APEX con Google.
IN QUESTO ARTICOLO
Come configurare l’autenticazione ad Oracle APEX con un account Google
Vediamo come possiamo configurare una applicazione APEX affinché permetta di autenticarsi usando un account Google.
Step 1: crea un progetto su Google Cloud Platform
- Collegati all’indirizzo https://console.cloud.google.com/ usando il tuo account Google e clicca suoi tuoi progetti

- Clicca su NUOVO PROGETTO

- Assegna un nome al Progetto e clicca su CREA PROGETTO

Step 2: configura la Schermata Consenso OAuth
- Seleziona il progetto che hai creato

- Vai alla sezione Schermata Consenso OAuth e seleziona il tipo utente Esterno.
- Clicca CREA.

- Per configurare la schermata di autenticazione della tua APP, Google richiede alcune informazioni:
- nome dell’applicazione
- una e-mail che gli utenti della tua app potranno utilizzare per contattarti.
- Eventualmente puoi caricare un logo.

- Nella sezione Dominio APP andrai ad indicare l’home page della tua app e i link alla Privacy piuttosto che ai Termini di Utilizzo della tua APP.

- Nella sezione Informazioni di contatto dello sviluppatore puoi inserire il tuo indirizzo email. Clicca su SALVA E CONTINUA

- Nella sezione Ambiti andrai a specificare ulteriormente le caratteristiche e l’ambito di utilizzo della tua applicazione.

- Nella sezione Utenti di Prova puoi inserire fino a 100 utenti che possono usare la tua applicazione fin tanto che è nello stato di Test in Corso. Quando hai fatto clicca su SALVA E CONTINUA.

- Quando la tua applicazione è in fase di test, solo gli utenti che hai indicato in questa lista potranno usarla. Tuttavia, per renderla effettivamente accessibile a chiunque, Google ti chiederà di verificare la tua APP in base ad una serie di criteri di cui non discuteremo in questo articolo.
Step 3: configura il client di autenticazione
- Vai alla sezione Credenziali e clicca su Crea Credenziali

- Seleziona l’opzione ID client OAuth

- Specifica il tipo di applicazione (Applicazione Web) per la quale stai configurando il client e dai un nome al client

- Vai alla sezione URI di reindirizzamento autorizzati ed aggiungi il seguente link: https://apex.oracle.com/pls/apex/apex_authentication.callback
- In questo caso ho inserito la URL della mia applicazione creata nel dominio apex.oracle.com. In generale, dovresti inserire l’URI relativa alla tua app: https://<your-host-domain>/pls/apex/apex_authentication.callback

- Al termine della procedura dovresti avere a disposizione l’ID del Client da inserire nella tua APP e l’API Key privata da usare nella tua APP APEX.

Step 4: configura il client Google in APEX
- Accedi al Workspace APEX e vai nell‘APP Builder
- Seleziona l’applicazione per la quale vuoi attivare l’autenticazione via Google e vai in Shared Components
- Clicca su Web Credentials

- Clicca su CREATE

- Inserisci le informazioni richieste, in particolare
- Authentication Type: OAuth2 client Credentials Flow
- Client ID or Username: specifica il client ID che Google ha generato
- Client Secret: l’API Key del Client

- Salva

Step 5: configura lo schema di autenticazione
- Dall’APP Builder vai in Shared Components > Authentication Schemes

- Clicca su Create

- Seleziona l’opzione Based on a pre-configured scheme from the gallery e clicca su Next

- Dai un nome allo schema di autenticazione e seleziona come tipo Social Sign-In

- Vai in Settings e configura le seguenti opzioni
- Credential Store: GOOGLE Authentication
- Authentication Provider: Google
- Scope: profile, email
- Username: email
- Additional User Attributes: email, name
- Verify Attributes: Yes

- Clicca su Create Authentication Scheme

- Lo schema di autenticazione appena creato dovrebbe essere impostato come Current

Step 6: avvia l’applicazione
- Avvia l’applicazione.
- Anziché vedere la classica Login Page di Oracle APEX, dovrebbe aprirsi la pagina di login di Google

- Seleziona l’account Google con il quale vuoi autenticarti. Una volta avviata la sessione dovresti vedere in alto a destra i dettagli del tuo account Google.

Hi Deniele,
Very nice blog…I have implemented the steps mentioned in this blogs and it worked like a charm…!
Just a quick thing – would it be possible to use either of 2 authentication? (Initially allow a user to login with Apex credential, alternatively click on Google icon and use Google authentication.) If so, how can I integrate this functionality or feature on a Login page?
If you have any blog/tutorial, can you please share with us?
Kind Regards,
Bhavin Adhvaryu
London, UK
Hi Bhavin
thanks for your appreciation!
Regarding you question, please, take a look to this tutorial: Come attivare schemi di autenticazione multipli nella stessa APP
Kind Regards
Daniele