Recupero dell'identità dell'utente

Questa pagina descrive come ottenere l'identità di un utente con Identity-Aware Proxy (IAP). L'acquisizione dell'identità dell'utente consente alla tua applicazione di verificare che una richiesta sia stata inviata tramite IAP. Per proteggere correttamente la tua app, devi sempre utilizzare uno dei seguenti meccanismi per ottenere l'identità utente autenticata da IAP.

Ottenere l'identità dell'utente con intestazioni firmate

Per assicurarti che una richiesta alla tua app Compute Engine, GKE, Cloud Run, ambiente standard App Engine o ambiente flessibile App Engine sia stata autorizzata da IAP, la tua app deve convalidare ogni richiesta controllando l'intestazione della richiesta HTTP x-goog-iap-jwt-assertion. Scopri come proteggere la tua app con le intestazioni firmate.

IAP trasmette anche l'identità dell'utente al tuo servizio di backend nelle seguenti intestazioni HTTP. Queste intestazioni devono avere il prefisso dello spazio dei nomi accounts.google.com. Queste intestazioni sono disponibili per la compatibilità, ma non devi fare affidamento su di esse come meccanismo di sicurezza. Se utilizzi queste intestazioni, devi confrontarle con le informazioni sull'identità dell'intestazione JWT autenticata elencata sopra.

Nome intestazione Descrizione Valore di esempio
X-Goog-Authenticated-User-Email L'indirizzo email dell'utente accounts.google.com:example@example.com
X-Goog-Authenticated-User-Id Un identificatore univoco e permanente per l'utente. accounts.google.com:userIDvalue

Ottenere l'identità dell'utente con l'API Users dell'ambiente standard App Engine

In alternativa, se hai un'app nell'ambiente standard App Engine, puoi utilizzare l'API Users per ottenere l'identità dell'utente nel codice dell'app.

Se la tua applicazione utilizza già questa API, non devi apportare modifiche. IAP fornisce l'identità dell'utente, ma il valore dell'ID utente dell'API Users di ciascun utente cambierà quando IAP viene attivato.

Per ottenere l'identità utente verificata da IAP per una richiesta, chiama l'API Users per restituire l'utente corrente. Se la funzione restituisce un utente, ad esempio req.getUserPrincipal() != null in Java, l'utente è stato autenticato da IAP.

Quando IAP è abilitato, la prima volta che un utente accede alla tua app, viene reindirizzato a una schermata per il consenso per confermare che vuole condividere la propria identità con la tua app. Questo avviene anche se l'utente ha concesso il consenso a questa app prima che tu abilitassi IAP e si ripeterà se disabiliti IAP e poi lo riabiliti.

Se utilizzi l'API Users, normalmente la schermata per il consenso viene soppressa per le app e gli utenti che si trovano nello stesso dominio Google Workspace. Quando attivi IAP, la schermata per il consenso non viene disattivata automaticamente. Per disattivare la schermata per il consenso con IAP abilitato, segui questi passaggi:

  1. Vai alla Console di amministrazione Google.

    Vai alla Console di amministrazione

  2. Nell'elenco dei controlli, seleziona Sicurezza.

    1. Se non vedi Sicurezza nell'elenco, seleziona Altri controlli dalla barra grigia in fondo alla pagina, quindi seleziona Sicurezza dall'elenco dei controlli.

    2. Se non riesci a visualizzare i controlli, assicurati di aver eseguito l'accesso come amministratore del dominio.

  3. Nell'elenco delle opzioni, seleziona Accesso e controlli relativi ai dati e poi Controlli API.

  4. Nella sezione Autenticazione, seleziona Gestisci l'accesso dei client API.

  5. Nel campo Nome client, inserisci l'ID client OAuth 2.0 di IAP. Puoi trovare l'ID client IAP nella pagina Credenziali.

    Vai alla pagina delle credenziali IAP

  6. Nel campo Uno o più ambiti API, inserisci email, openid.

  7. Fai clic su Autorizza.

Per semplificare questa procedura, puoi utilizzare una chiamata API per utilizzare un singolo ID client OAuth 2.0 di IAP per tutte le app. Non puoi utilizzare la console Google Cloud per specificare l'ID client da utilizzare con IAP.

Passaggi successivi