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 arrivata tramite IAP. Per proteggere correttamente la tua app, devi sempre utilizzare uno dei meccanismi riportati di seguito per ottenere l'identità utente autenticata dall'IAP.
Acquisizione dell'identità dell'utente con intestazioni firmate
Per assicurarti che una richiesta all'app Compute Engine, GKE, Cloud Run, nell'ambiente standard App Engine o nell'ambiente flessibile App Engine sia stata autorizzata da IAP, l'app deve convalidare ogni richiesta controllando l'intestazione della richiesta HTTP x-goog-iap-jwt-assertion
.
Scopri come proteggere l'app con intestazioni firmate.
IAP passa inoltre l'identità dell'utente al tuo servizio di backend nelle seguenti intestazioni HTTP. Queste intestazioni devono avere il prefisso dello spazio dei nomiaccounts.google.com
. Questi intestazioni sono disponibili per motivi di 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
|
Recuperare l'identità dell'utente con l'API Users per l'ambiente standard di App Engine
In alternativa, se hai un'app per l'ambiente standard App Engine, puoi utilizzare l'API Users per recuperare l'identità dell'utente nel codice dell'app.
Se la tua applicazione utilizza già questa API, non devi modificare nulla. L'IAP fornisce l'identità dell'utente, ma il valore dell'ID utente dell'API Users di ogni utente cambierà quando l'IAP viene attivato.
Per ottenere l'identità utente verificata tramite 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.
Schermata consenso
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 di voler condividere la propria identità con la tua app. Questo accade anche se l'utente ha concesso il consenso a questa app prima di attivare gli IAP e si ripeterà se disattivi gli acquisti in-app e poi li riattivi.
Se utilizzi l'API Users, in genere viene eliminata la schermata di consenso per le app e gli utenti che si trovano nello stesso dominio Google Workspace. Quando attivi la funzionalità IAP, la schermata del consenso non viene eliminata automaticamente. Per nascondere la schermata del consenso con IAP abilitato, segui i passaggi riportati di seguito:
- Vai alla Console di amministrazione Google.
Vai alla Console di amministrazione - Nell'elenco dei controlli, seleziona Sicurezza.
- Se non vedi Sicurezza nell'elenco, seleziona Altri controlli dalla barra grigia in fondo alla pagina, quindi seleziona Sicurezza dall'elenco dei controlli.
- Se non riesci a vedere i controlli, assicurati di aver eseguito l'accesso come amministratore del dominio.
- Nell'elenco delle opzioni, seleziona Mostra altro e poi Impostazioni avanzate.
- Nella sezione Autenticazione, seleziona Gestisci accesso client API.
- Nel campo Nome client, inserisci l'ID client OAuth 2.0 IAP. Puoi trovare l'ID client IAP nella
pagina Credenziali.
Vai alla pagina delle credenziali IAP - Nel campo Uno o più ambiti API, inserisci
email, openid
. - Fai clic su Autorizza.
Per semplificare questa procedura, puoi utilizzare una chiamata API per utilizzare un unico 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
- Scopri di più su Identity and Access Management.