Recupero dell'identità dell'utente

In questa pagina viene descritto come ottenere l'identità di un utente con Identity-Aware Proxy (IAP). Ottenere l'identità dell'utente consente all'applicazione di verificare che una richiesta sia arrivata tramite IAP. Per proteggere correttamente la tua app, devi sempre utilizzare uno dei meccanismi riportati di seguito per ottenere l'identità utente autenticata da IAP.

Recupero dell'identità dell'utente con intestazioni firmate

Per assicurarti che una richiesta all'app di Compute Engine, GKE, Cloud Run, dell'ambiente standard di App Engine o dell'ambiente flessibile di 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 passa anche l'identità dell'utente al 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 garantire la compatibilità, ma non devi usarle 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@gmail.com
X-Goog-Authenticated-User-Id Un identificatore univoco permanente per l'utente. accounts.google.com:userIDvalue

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

In alternativa, se hai un'app dell'ambiente standard di 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 alcuna modifica. 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à dell'utente con verifica 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 di consenso per confermare che vuole condividere la propria identità con la tua app. Questo si verifica anche se l'utente ha concesso il consenso per questa app prima che tu abilitassi IAP, e si verificherà di nuovo se disattivi IAP e poi lo riattivi.

Se utilizzi l'API Users, di solito viene eliminata la schermata di consenso per le app e gli utenti che si trovano all'interno dello stesso dominio Google Workspace. Quando attivi IAP, la schermata di consenso non viene eliminata automaticamente. Per eliminare 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 Sicurezza non è presente nell'elenco, seleziona Altri controlli nella barra grigia nella parte inferiore della 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 di opzioni, seleziona Mostra altro e poi Impostazioni avanzate.
  4. Nella sezione Autenticazione, seleziona Gestisci accesso client API.
  5. Nel campo Nome client, inserisci l'ID client IAP OAuth 2.0. 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 questo processo, puoi utilizzare una chiamata API per utilizzare un singolo ID client OAuth 2.0 IAP per tutte le app. Non puoi utilizzare la console Google Cloud per specificare l'ID client da utilizzare con IAP.

Passaggi successivi