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 da IAP.

Recupero dell'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 di più sulla protezione dell'app con 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

Recupero dell'identità dell'utente con l'API Users dell'ambiente standard di 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 apportare alcuna modifica. 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 gli acquisti in-app sono attivati, 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. Ciò si verifica anche se l'utente ha concesso il consenso a questa app prima dell'attivazione degli acquisti in-app e si verificherà di nuovo se disattivi gli IAP in-IAP e poi li riattivi.

Se utilizzi l'API Users, in genere la schermata di consenso viene eliminata per le app e gli utenti che si trovano nello stesso dominio Google Workspace. Quando attivi gli acquistiIAPp, la schermata del consenso non viene eliminata automaticamente. Per sopprimere la schermata del 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 controllo dei dati e poi Controlli API.
  4. Nella sezione Autenticazione, seleziona Gestisci 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 IAP per tutte le app. Non puoi utilizzare la console Google Cloud per specificare l'ID client da utilizzare con IAP.

Passaggi successivi