Recupero dell'identità dell'utente

Questa pagina descrive come ottenere l'identità di un utente con Identity-Aware Proxy (IAP). L'ottenimento 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 IAP.

Ottenere l'identità dell'utente con le 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 di più su come proteggere la tua app con le intestazioni firmate.

IAP trasmette 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 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@gmail.com
X-Goog-Authenticated-User-Id Un identificatore univoco e persistente 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 per l'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 modificare nulla. IAP fornisce l'identità dell'utente, ma il valore dell'ID utente dell'API Users per ogni 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 è attivato, 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. Ciò si verifica anche se l'utente ha concesso il consenso a questa app prima dell'attivazione di IAP e si verificherà di nuovo se disattivi IAP e poi lo riattivi.

Se utilizzi l'API Users, in genere la schermata per il consenso viene eliminata per app e utenti che si trovano nello stesso dominio Google Workspace. Quando attivi gli acquistiIAPp, la schermata per il consenso non viene eliminata automaticamente. Per sopprimere la schermata per il consenso con IAPp attivati, 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 l'opzione Sicurezza, seleziona Altri controlli dalla 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 delle opzioni, seleziona Accesso e controllo dei dati e poi Controlli API.

  4. Nella sezione Autenticazione, seleziona Gestisci l'accesso 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 questo processo, puoi utilizzare una chiamata API per utilizzare un singolo ID client OAuth 2.0 per tutti gli acquisti in-app. Non puoi utilizzare la console Google Cloud per specificare l'ID client da utilizzare con IAP.

Passaggi successivi