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, puoi autenticare gli utenti con un'ampia gamma di provider di identità, ad esempio OAuth, SAML e OIDC, oltre che con gli Account Google.

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

Prima di iniziare

  1. Nella pagina del selettore di progetti della console Google Cloud, seleziona o crea un progetto Google Cloud.

    Vai al selettore progetti

  2. Assicurati che la fatturazione sia attivata per il tuo progetto Google Cloud.

  3. Installa Google Cloud CLI, quindi initialize eseguendo questo comando:

    gcloud init

  4. Inizializza App Engine per il tuo progetto:

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

  6. Installa una versione corrente 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 Identity Platform Marketplace nella console Google Cloud.

    Vai alla pagina Marketplace di Identity Platform

  2. Fai clic su Abilita Identity Platform. La pagina Identity Platform viene visualizzata nella console Google Cloud.

Quindi, abilita IAP:

  1. Vai alla pagina IAP nella console Google Cloud.

    Vai alla pagina IAP

  2. Seleziona lo stesso progetto che hai 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 ha 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, la reindirizza all'app di autenticazione per verificare l'identità dell'utente. Se l'utente esegue l'accesso, l'app di autenticazione risponde con un token JWT (JSON Web Token). A scopo dimostrativo, 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
    

Quindi, 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 del progetto Google Cloud che contiene 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 prevede la configurazione di Identity Platform e IAP.

Configura 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à.

Crea un'app Facebook

Per autenticare gli utenti con Facebook, sono necessari un ID app e un app secret.

  1. Accedi a Facebook per gli sviluppatori. Se non hai ancora un account Facebook, devi crearne uno.

  2. Vai alla pagina Apps di Facebook.

  3. Fai clic su Add a New App (Aggiungi una nuova app).

  4. Seleziona Impostazioni > Di base nel menu a sinistra.

  5. Nella casella URL 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 ai tuoi criteri sulla privacy.

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

Aggiungi Facebook come provider di identità

Configura Identity Platform per 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 Add a Provider (Aggiungi un provider).

  3. Seleziona Facebook dall'elenco dei provider.

  4. Inserisci l'ID e il secret dell'app ottenuti nella sezione precedente.

  5. Fai clic su Salva.

Configura l'URI di reindirizzamento OAuth

Quando Facebook completa l'elaborazione di una richiesta dall'app di autenticazione, ha bisogno di un URI per il reindirizzamento.

  1. Torna alla pagina App di Facebook e seleziona l'app.

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

  3. Individua il prodotto Facebook Login e fai clic su Set Up.

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

  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 Pubblicati dovrebbe essere simile a questo:

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

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

  6. In Pagina di accesso, seleziona Fornirò una mia password.

  7. Nel campo URL di autenticazione, inserisci l'URL dell'app di autenticazione. Dovrebbe avere un aspetto simile a questo:

    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 elencato come provider di identità.

  9. Fai clic su Salva.

Hai terminato la configurazione di IAP.

Testare l'autenticazione degli utenti

Per verificare che IAP protegge la tua app e autentica gli utenti con Facebook:

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

    https://project-id.appspot.com
    

    Dopo una breve schermata di caricamento, il sistema ti reindirizzerà alla pagina di accesso di Identity Platform.

  2. Segui le istruzioni sullo schermo per eseguire l'autenticazione 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, consulta Gestione delle sessioni utente.

Complimenti! Hai eseguito il deployment di un'app in App Engine e l'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. Nella console Google Cloud, vai alla pagina Gestisci risorse.

    Vai a Gestisci risorse

  2. Nell'elenco dei progetti, seleziona il progetto che vuoi eliminare, quindi fai clic su Elimina.
  3. Nella finestra di dialogo, digita l'ID del progetto e fai clic su Chiudi per eliminare il progetto.

Inoltre, potresti voler eliminare l'app di Facebook che hai creato.

Passaggi successivi