Questa pagina descrive come ottenere l'identità di un utente con Identity-Aware Proxy (IAP). Il recupero dell'identità dell'utente consente alla tua applicazione di verificare che una richiesta sia stata inviata tramite IAP. Per proteggere correttamente l'app, devi sempre utilizzare uno dei seguenti meccanismi per ottenere l'identità dell'utente autenticato 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 come proteggere l'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 la compatibilità, ma non dovresti considerarle un 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 App Engine
In alternativa, se hai un'app dell'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 ogni utente cambierà quando IAP è attivo.
Per ottenere l'identità dell'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.
Schermata per il consenso
Quando IAP è attivo, la prima volta che un utente accede alla tua app, viene reindirizzato a una schermata per il consenso per confermare di voler condividere la propria identità con la tua app. Ciò si verifica anche se l'utente ha concesso il consenso a questa app prima di attivare IAP e si ripeterà se disattivi IAP e poi lo riattivi.
Se utilizzi l'API Users, in genere la schermata per il consenso viene eliminata per le app e gli utenti che si trovano nello stesso dominio Google Workspace. Quando attivi IAP, la schermata per il consenso non viene eliminata automaticamente. Per eliminare la schermata per il consenso con IAP attivo:
- Vai alla Console di amministrazione Google.
Vai alla Console di amministrazione - Nell'elenco dei controlli, seleziona Sicurezza.
- Se non vedi l'opzione Sicurezza, seleziona Altri controlli dalla barra grigia nella parte inferiore della pagina, quindi seleziona Sicurezza dall'elenco dei controlli.
- Se non riesci a visualizzare i controlli, assicurati di aver eseguito l'accesso come amministratore del dominio.
- Nell'elenco delle opzioni, seleziona Controllo dell'accesso e dei dati e poi Controlli API.
- Nella sezione Autenticazione, seleziona Gestisci accesso client API.
- 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 - 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 singolo ID client OAuth 2.0 di IAP per tutte le app. Non puoi utilizzare la Google Cloud console per specificare l'ID client da utilizzare con IAP.
Passaggi successivi
- Scopri di più su Identity and Access Management.