Autentica gli utenti con identità esterne

Questa guida rapida mostra come proteggere un'app utilizzando Identity-Aware Proxy (IAP) e le identità esterne. Combinando IAP e Identity Platform, puoi autenticare gli utenti con una vasta gamma di provider di identità, come OAuth, SAML e OIDC, oltre agli Account Google.

In questa guida rapida, proteggerai un'applicazione App Engine di esempio utilizzando l'autenticazione Facebook.

Prima di iniziare

  1. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  2. Make sure that billing is enabled for your Google Cloud project.

  3. Install the Google Cloud CLI, then initialize it by running the following command:

    gcloud init

  4. Inizializza App Engine per il tuo progetto:

    gcloud app create --project=project-id
    
  5. Installa Git.

  6. Installa una versione aggiornata di Node.js.

  7. Installa lo strumento a riga di comando Firebase:

    npm install -g firebase-tools
    

Abilita le API

Innanzitutto, abilita Identity Platform:

  1. Vai alla pagina Marketplace di Identity Platform nella console Google Cloud.

    Vai alla pagina Marketplace di Identity Platform

  2. Fai clic su Abilita Identity Platform. Nella console Google Cloud viene visualizzata la pagina Identity Platform.

Quindi, abilita IAP:

  1. Vai alla pagina IAP nella console Google Cloud.

    Vai alla pagina IAP

  2. Seleziona lo stesso progetto utilizzato per Identity Platform. L'utilizzo di progetti diversi non è supportato.

  3. Fai clic su Abilita API.

Scarica ed esegui il deployment del codice campione

Il codice di questa guida rapida è composto da due componenti: un'app client e un'app di autenticazione.

L'app client è protetta da IAP. Quando riceve una richiesta da un utente non autenticato, questa viene reindirizzata all'app di autenticazione per verificare l'identità dell'utente. Se l'utente accede correttamente, l'app di autenticazione risponde con un token JWT (JSON Web Token). Per scopi dimostrativi, l'app client mostra il JWT.

Per prima cosa, scarica il codice ed esegui il deployment dell'app client:

  1. Scarica il codice di esempio:

    git clone https://github.com/GoogleCloudPlatform/iap-gcip-web-toolkit.git
    
  2. Passa alla directory dell'app client:

    cd iap-gcip-web-toolkit/sample/app
    
  3. Installa le dipendenze:

    npm install
    
  4. Esegui il deployment dell'app client in App Engine:

    npm run deploy
    

    L'app client viene avviata all'URL:

    https://[PROJECT-ID].appspot.com
    

Poi esegui il deployment dell'app di autenticazione:

  1. Passa alla directory dell'app di autenticazione:

    cd ../authui-firebaseui
    
  2. Installa le dipendenze:

    npm install
    
  3. Configura l'app di autenticazione in modo da utilizzare Firebase Hosting. Specifica l'ID progetto Google Cloud del progetto Google Cloud contenente l'app client protetta da IAP:

    firebase use project-id
    
  4. 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 configurare Identity Platform e IAP.

Configurare Identity Platform

IAP utilizza Identity Platform per autenticare le identità esterne. Questa guida rapida utilizza Facebook come esempio, ma Identity Platform supporta un'ampia gamma di provider di identità.

Creare un'app Facebook

Per autenticare gli utenti con Facebook, devi disporre di un ID app e di un app secret.

  1. Accedi a Facebook for Developers. Se non hai ancora un account Facebook, dovrai crearne uno.

  2. Vai alla pagina App di Facebook.

  3. Fai clic su Aggiungi una nuova app.

  4. Nel menu a sinistra, seleziona Impostazioni > Di base.

  5. Nella casella URL delle norme sulla privacy, inserisci un URL valido. Se esegui il deployment dell'app in produzione in un secondo momento, puoi aggiornare l'URL in modo che rimandi alle tue norme sulla privacy.

  6. Prendi nota dell'ID app e del secret dell'app. Ti serviranno nella sezione successiva.

Aggiungere Facebook come provider di identità

Configura Identity Platform in modo da utilizzare Facebook per l'autenticazione:

  1. Vai alla pagina Provider di identità nella console Google Cloud.

    Vai alla pagina Provider di identità

  2. Fai clic su Aggiungi un fornitore.

  3. Seleziona Facebook dall'elenco dei fornitori.

  4. Inserisci l'ID app e il secret dell'app che hai ottenuto nella sezione precedente.

  5. Fai clic su Salva.

Configurare l'URI di reindirizzamento OAuth

Quando Facebook termina l'elaborazione di una richiesta dall'app di autenticazione, ha bisogno di un URI a cui reindirizzare.

  1. Torna alla pagina App di Facebook e seleziona la tua app.

  2. Nel menu a sinistra, fai clic su Prodotti.

  3. Individua il prodotto Accesso Facebook e fai clic su Configura.

  4. Nel menu di navigazione a sinistra, seleziona Impostazioni (non è necessario completare il flusso di avvio guidato).

  5. Nella casella URI di reindirizzamento OAuth validi, inserisci l'URI di reindirizzamento:

    https://project-id.firebaseapp.com/__/auth/handler
    

    Puoi trovare questo URI anche nella pagina di configurazione del provider Identity Platform.

  6. 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

  1. Vai alla pagina IAP nella console Google Cloud.

    Vai alla pagina IAP

  2. Fai clic sulla scheda APPLICAZIONI.

  3. Seleziona l'app App Engine di esempio di cui hai eseguito il deployment in precedenza. L'URL nella categoria Pubblicata dovrebbe avere il seguente aspetto:

    https://project-id.appspot.com
    
  4. Nella colonna IAP, imposta l'opzione su On.

  5. Nel riquadro laterale, fai clic su Avvia in Utilizza identità esterne per l'autorizzazione.

  6. In Pagina di accesso, seleziona Fornirò il mio URL.

  7. Nel campo Authentication URL (URL di autenticazione), inserisci l'URL dell'app di autenticazione. Dovrebbe avere il seguente aspetto:

    https://project-id.firebaseapp.com/
    

    Dopo aver inserito l'URL, la console Google Cloud aggiunge automaticamente la chiave API.

  8. Seleziona la casella con il nome del progetto. Facebook deve essere indicato come fornitore di identità.

  9. Fai clic su Salva.

Hai completato la configurazione di IAP.

Testare l'autenticazione utente

Per verificare che IAP proteggano la tua app e autentichino gli utenti con Facebook:

  1. Vai all'app App Engine client nel browser:

    https://project-id.appspot.com
    

    Dopo una breve schermata di caricamento, viene visualizzata la pagina di accesso di Identity Platform.

  2. Segui le istruzioni sullo schermo per autenticarti con Facebook.

  3. Dovresti essere reindirizzato all'app client, che mostrerà il JWT restituito da Identity Platform.

Per uscire completamente, devi uscire dall'app di esempio che hai creato e da Facebook. Devi uscire da entrambe le app perché Firebase stabilisce una sessione con Facebook valida per un'ora. Per ulteriori informazioni, vedi Gestire le sessioni degli utenti.

Complimenti! Hai eseguito correttamente il deployment di un'app in App Engine e la hai protetta con IAP e identità esterne.

Esegui la pulizia

Per evitare che al tuo account Google Cloud vengano addebitati costi relativi alle risorse utilizzate in questa pagina, segui questi passaggi.

  1. In the Google Cloud console, go to the Manage resources page.

    Go to Manage resources

  2. In the project list, select the project that you want to delete, and then click Delete.
  3. In the dialog, type the project ID, and then click Shut down to delete the project.

Inoltre, ti consigliamo di eliminare l'app Facebook che hai creato.

Passaggi successivi