Autentica gli utenti con identità esterne
Questa guida rapida mostra come proteggere un'app utilizzando Identity-Aware Proxy (IAP) e identità esterne. Combinando IAP e Identity Platform, autenticare gli utenti con un'ampia gamma di provider di identità, come OAuth SAML e OIDC, oltre a Google Account.
In questa guida rapida, proteggerai un'app di App Engine di esempio utilizzando Facebook autenticazione.
Prima di iniziare
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Make sure that billing is enabled for your Google Cloud project.
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
Inizializza App Engine per il tuo progetto:
gcloud app create --project=project-id
Installa una versione corrente di Node.js.
Installa lo strumento a riga di comando Firebase:
npm install -g firebase-tools
Abilita le API
Innanzitutto, abilita Identity Platform:
Vai alla pagina Identity Platform Marketplace nella nella console Google Cloud.
Fai clic su Abilita Identity Platform. Viene visualizzata la pagina Identity Platform nella console Google Cloud.
Quindi, abilita IAP:
Vai alla pagina IAP nella console Google Cloud.
Seleziona lo stesso progetto che hai utilizzato per Identity Platform. L'utilizzo di diverse progetti non supportati.
Fai clic su Abilita API.
Scarica ed esegui il deployment del codice campione
Il codice di questa guida rapida ha due componenti: un'app client e un app di autenticazione.
L'app client è protetta da IAP. Quando riceve un richiesta da un utente non autenticato, la reindirizza alla di autenticazione per verificare l'identità dell'utente. Se l'utente accede l'app di autenticazione risponde con un token JWT (JSON Web Token). Per dimostrativi, l'app client visualizza il JWT.
Per prima cosa, scarica il codice ed esegui il deployment dell'app client:
Scarica il codice di esempio:
git clone https://github.com/GoogleCloudPlatform/iap-gcip-web-toolkit.git
Passa alla directory dell'app client:
cd iap-gcip-web-toolkit/sample/app
Installa le dipendenze:
npm install
Esegui il deployment dell'app client in App Engine:
npm run deploy
L'app client viene avviata all'URL:
https://[PROJECT-ID].appspot.com
Quindi, esegui il deployment dell'app di autenticazione:
Passa alla directory dell'app di autenticazione:
cd ../authui-firebaseui
Installa le dipendenze:
npm install
Configura l'app di autenticazione in modo da utilizzare Firebase Hosting. Specifica i dati di Google Cloud l'ID del progetto Google Cloud che contiene l'IAP. dell'app client protetta:
firebase use project-id
Esegui il deployment dell'app:
npm run deploy
L'app di autenticazione viene avviata all'URL:
https://[PROJECT-ID].firebaseapp.com
Hai eseguito il deployment delle app client e di autenticazione. Il passaggio successivo consiste nel e configurare Identity Platform e IAP.
Configura Identity Platform
IAP utilizza Identity Platform per eseguire l'autenticazione le identità di altro tipo. Questa guida rapida utilizza Facebook come esempio, ma Identity Platform supporta un'ampia gamma di provider di identità.
Crea un'app Facebook
Per autenticare gli utenti con Facebook, devi disporre di un ID app e un Segreto dell'app.
Accedi a Facebook per gli sviluppatori. Se non hai ancora Facebook di fatturazione, dovrai crearne uno.
Vai su Facebook App.
Fai clic su Add a New App (Aggiungi una nuova app).
Nel menu a sinistra, seleziona Impostazioni > Base.
Nella casella URL delle norme sulla privacy, inserisci un URL valido. Se esegui il deployment l'app alla versione di produzione in un secondo momento, puoi aggiornare l'URL in modo che rimandi alla tua privacy .
Prendi nota del tuo ID e del tuo secret. Ti serviranno nei prossimi .
Aggiungi Facebook come provider di identità
Configura Identity Platform per utilizzare Facebook per l'autenticazione:
Vai alla pagina Provider di identità nella console Google Cloud.
Fai clic su Add a provider (Aggiungi un provider).
Seleziona Facebook dall'elenco dei provider.
Inserisci l'ID e il secret dell'app ottenuto nella precedente .
Fai clic su Salva.
Configura l'URI di reindirizzamento OAuth
Quando Facebook termina di elaborare una richiesta dall'app di autenticazione, necessita di un URI al quale effettuare il reindirizzamento.
Torna a Facebook App e seleziona la tua app.
Nel menu a sinistra, fai clic su Prodotti.
Individua il prodotto Facebook Login e fai clic su Set (Configura).
Nel menu di navigazione a sinistra, seleziona Impostazioni (non devi completare il flusso della guida rapida).
Nella casella URI di reindirizzamento OAuth validi, inserisci l'URI di reindirizzamento:
https://project-id.firebaseapp.com/__/auth/handler
Puoi trovare questo URI anche nel provider Identity Platform di configurazione del deployment.
Fai clic su Salva modifiche.
Hai completato la configurazione di Identity Platform. Ora puoi configurare IAP per utilizzarlo per l'autenticazione.
Abilita IAP per utilizzare le identità esterne
Vai alla pagina IAP nella console Google Cloud.
Fai clic sulla scheda APPLICAZIONI.
Seleziona l'app App Engine di esempio di cui hai eseguito il deployment in precedenza. L'URL nella categoria Pubblicati dovrebbe essere simile al seguente:
https://project-id.appspot.com
Nella colonna IAP, imposta l'opzione su On.
Nel riquadro laterale, fai clic su Avvia per Utilizza identità esterne per l'autorizzazione.
Nella sezione Pagina di accesso, seleziona Fornirò il mio.
Nel campo URL di autenticazione, inserisci l'URL del di autenticazione, Dovrebbe avere il seguente aspetto:
https://project-id.firebaseapp.com/
Dopo aver inserito l'URL, la console Google Cloud automaticamente accoda la chiave API.
Seleziona la casella con il nome del tuo progetto. Facebook dovrebbe essere elencato come o il provider di identità.
Fai clic su Salva.
Hai terminato la configurazione di IAP.
Testare l'autenticazione utente
Per verificare che IAP protegge la tua app e autentica Utenti con Facebook:
Vai all'app client App Engine nel tuo browser:
https://project-id.appspot.com
Dopo una breve schermata di caricamento, il sistema ti reindirizzerà alla pagina di accesso a Identity Platform.
Segui le istruzioni sullo schermo per autenticarti con Facebook.
Il sistema dovrebbe reindirizzarti all'app client, che mostrerà il JWT restituito da Identity Platform.
Per uscire completamente dall'app di esempio che hai creato, devi uscire dall'app e Facebook Devi uscire da entrambe le app perché Firebase stabilisce una sessione con Facebook e una durata di un'ora. Per ulteriori informazioni, consulta Gestire gli utenti Sessioni.
Complimenti! Hai eseguito il deployment di un'app in App Engine lo proteggeva con IAP e identità esterne.
Esegui la pulizia
Per evitare che al tuo account Google Cloud vengano addebitati costi per le risorse utilizzate in questa pagina, segui questi passaggi.
- In the Google Cloud console, go to the Manage resources page.
- In the project list, select the project that you want to delete, and then click Delete.
- In the dialog, type the project ID, and then click Shut down to delete the project.
Inoltre, potresti voler eliminare l'app di Facebook che hai creato.
Passaggi successivi
- Personalizza la tua interfaccia utente di autenticazione con FirebaseUI, oppure creare una UI personalizzata da zero.
- Scopri di più sulla configurazione dei provider di identità con Identity Platform.
- Scopri come creare silos unici di utenti e configurazioni con Multitenancy di Identity Platform.