Questo documento descrive come personalizzare le impostazioni di Identity-Aware Proxy (IAP). Con queste impostazioni, puoi controllare comportamenti come:
* Compatibilità con Cloud Service Mesh e Istio su Google Kubernetes Engine. * La gestione delle richieste preflight CORS. * Come vengono autenticati gli utenti. * La pagina di errore mostrata agli utenti quando l'accesso viene negato.Gestisci impostazioni
Puoi visualizzare e aggiornare le impostazioni di IAP sul bilanciatore del carico e sulle app App Engine utilizzando la console Google Cloud , l'API IAP o Google Cloud CLI.Per aggiornare le impostazioni di IAP su tutte le risorse, incluse cartelle, progetti e organizzazioni, utilizza Google Cloud CLI o l'API.
Per gestire le impostazioni in IAP:
Console
Per visualizzare e modificare le impostazioni utilizzando la console Google Cloud :
- Vai alla pagina Identity-Aware Proxy.
Vai alla pagina Identity-Aware Proxy - Trova la tua risorsa nella scheda APPLICAZIONI.
- Apri il menu Altre azioni e fai clic su Impostazioni.
- Fai clic su Salva.
gcloud
Per ottenere e modificare le impostazioni utilizzando Google Cloud CLI, utilizza i comandi
gcloud iap settings get
e
gcloud iap settings set
come segue:
- Per recuperare le impostazioni di un progetto, una cartella o un'organizzazione, utilizza i seguenti comandi. Per configurare le impostazioni di IAP utilizzando la console Google Cloud o gcloud CLI, consulta Personalizzazione di IAP.
gcloud iap settings get --project=PROJECT-ID
gcloud iap settings get --folder=FOLDER-ID
gcloud iap settings get --organization=ORGANIZATION-ID
- Per recuperare le impostazioni per un tipo di risorsa IAP specifico in un progetto:
gcloud iap settings get --project=PROJECT-ID \ --resource-type=RESOURCE-TYPE-NAME
- Per configurare le impostazioni per un progetto, una cartella o un'organizzazione oppure un tipo di risorsa IAP in un progetto, crea un file JSON o YAML contenente le nuove impostazioni desiderate e specifica il percorso del file. Per saperne di più, consulta l'argomento
gcloud iap settings set:
gcloud iap settings set SETTING_FILE --project=PROJECT-ID \ --resource-type=RESOURCE-TYPE-NAME
API
Per ottenere e modificare le impostazioni utilizzando l'API IAP, invia richieste utilizzando i verbi HTTP GET o PATCH all'endpoint della risorsa selezionato in Google Cloud. Combina il suffisso percorso :iapSettings, un percorso della risorsa (come descritto in Risorse e autorizzazioni) e un metodo HTTP appropriato per ottenere o modificare un'impostazione. Per saperne di più, consulta getIapSettings() e updateIapSettings():
- Per recuperare o configurare le impostazioni per un tipo di risorsa IAP specifico in un progetto:
https://iap.googleapis.com/v1/projects/PROJECT-ID/iap_web/appengine-APP-ID/services/SERVICE-ID/versions/VERSION-ID:iapSettings
Per recuperare o configurare le impostazioni di un progetto:
https://iap.googleapis.com/v1/projects/PROJECT-ID:iapSettings
Per recuperare o configurare le impostazioni di una cartella:
https://iap.googleapis.com/v1/folders/FOLDER-ID:iapSettings
Per recuperare o configurare le impostazioni di un'organizzazione:
https://iap.googleapis.com/v1/organizations/ORGANIZATION-ID:iapSettings
Ruoli e autorizzazioni delle impostazioni di IAP
Questa sezione descrive i ruoli e le autorizzazioni necessari per visualizzare e aggiornare le impostazioni di IAP.
Ruoli delle impostazioni
Puoi concedere il ruolo Amministratore impostazioni IAP (roles/iap.settingsAdmin) a livello di organizzazione, cartella e progetto. Per visualizzare le autorizzazioni concesse dal ruolo Amministratore impostazioni IAP, consulta Autorizzazioni per le impostazioni.
Per scoprire di più su ruoli e autorizzazioni per IAP, consulta Ruoli e autorizzazioni di Identity-Aware Proxy.
I seguenti ruoli di base forniscono queste autorizzazioni:
Il ruolo Visualizzatore progetto (
roles/viewer) concede tutte le autorizzazionigetSettings.Il ruolo Editor (
roles/editor) concede tutte le autorizzazioni descritte nella tabella.
Autorizzazioni per le impostazioni
La tabella seguente elenca le autorizzazioni IAM necessarie per leggere e modificare le impostazioni per ogni tipo di risorsa. Per una descrizione dei diversi tipi di risorse, consulta Risorse e autorizzazioni.
| Risorsa | Autorizzazione per la visualizzazione delle impostazioni | Autorizzazione per la modifica delle impostazioni |
|---|---|---|
| Organizzazione | iap.organizations.getSettings |
iap.organizations.updateSettings |
| Cartella | iap.folders.getSettings |
iap.folders.updateSettings |
| Progetto | iap.projects.getSettings |
iap.projects.updateSettings |
| Tutti i servizi web | iap.web.getSettings |
iap.web.updateSettings |
| Tipi di web | iap.webTypes.getSettings |
iap.webTypes.updateSettings |
| Servizi web | iap.webServices.getSettings |
iap.webServices.updateSettings |
| Versioni del servizio web | iap.webServiceVersions.getSettings |
iap.webServiceVersions.updateSettings |
| Tipi di web | iap.webTypes.getSettings |
iap.webTypes.updateSettings |
Per scoprire di più sulla concessione dei ruoli IAM, consulta Concessione, modifica e revoca dell'accesso.
Personalizza le impostazioni di IAP
IAP fornisce le seguenti impostazioni di personalizzazione:
| Campo | Descrizione |
|---|---|
access_settings.cors_settings.allow_http_options |
Controlla HTTP OPTIONS (preflight CORS) |
access_settings.oauth_settings.login_hint |
Semplifica l'accesso per gli utenti di un dominio Google Workspace |
application_settings.access_denied_page_settings.access_denied_page_uri |
Mostra una pagina di errore personalizzata quando l'accesso viene negato |
application_settings.csm_settings.rctoken_aud |
Emetti RCToken di Cloud Service Mesh e Istio |
access_settings.gcip_settings |
Autenticati con Identity Platform |
access_settings.ReauthSettings |
Imposta un criterio di riautenticazione. Per maggiori dettagli, consulta Configurazione della nuova autenticazione. |
Puoi applicare le impostazioni a livello di progetto o a qualsiasi livello di risorsa IAP inferiore.
Puoi configurare le impostazioni per le risorse IAP basate sul web, ma non per le risorse a cui accedi con IAP per l'inoltro TCP.
Utilizzandoaccess_settings.cors_settings.allow_http_options come esempio, puoi configurare le impostazioni di personalizzazione come segue:
YAML
access_settings:
cors_settings:
allow_http_options: "false"JSON
{
"access_settings": {
"cors_settings": {
"allow_http_options": "false"
}
}
}Le sezioni seguenti forniscono ulteriori informazioni su ciascuna impostazione.
Consenti richieste HTTP OPTIONS (preflight CORS)
| Campo | Valore predefinito |
|---|---|
access_settings.cors_settings.allow_http_options |
false |
La policy della stessa origine del web impedisce ai browser di inviare richieste AJAX tra siti web. Per impostazione predefinita, JavaScript su una pagina pubblicata da un'origine non può utilizzare AJAX per inviare una richiesta a un'app protetta con IAP ospitata su un'origine diversa.
In alcuni casi, i browser provano automaticamente a inviare una richiesta, ma ignorano i contenuti della risposta se non includono un'intestazione Access-Control-Allow-Origin. Per consentire questi tipi di richieste, includi questa intestazione nelle risposte della tua app.
In altri casi, il browser invierà una richiesta di preflight CORS, un tipo di richiesta HTTP OPTIONS, prima di inviare la richiesta multiorigine. Se la tua app non risponde con una risposta preflight appropriata (contenente le intestazioni della risposta Access-Control-* richieste), il browser bloccherà la richiesta con un errore. Inoltre, poiché le richieste preflight non vengono inviate con credenziali di autenticazione (come un cookie di sessione IAP), anche IAP risponderà con un errore.
Per consentire queste richieste:
Aggiungi alla tua app il codice che risponde alle richieste
OPTIONS.Modifica l'impostazione
access_settings.cors_settings.allow_http_optionsintruein modo che IAP trasmetta le richiesteOPTIONSalla tua applicazione.
Esegui l'autenticazione utilizzando un dominio Google Workspace
| Campo | Valore predefinito |
|---|---|
access_settings.oauth_settings.login_hint |
"" |
Se la tua app verrà utilizzata solo dai membri di un dominio Google Workspace specifico, puoi configurare IAP per ottimizzare il flusso di autenticazione. Questo approccio offre diversi vantaggi:
Se un utente ha eseguito l'accesso con più account (ad esempio un account di lavoro e un account personale), il sistema selezionerà automaticamente l'account di lavoro anziché mostrare la UI di selezione dell'account.
Se un utente non ha eseguito l'accesso al proprio Account Google, la UI di accesso compila automaticamente la parte del dominio del suo indirizzo email (ovvero l'utente deve digitare solo
aliceanzichéalice@example.com, ad esempio).Se il tuo dominio Google Workspace è configurato per utilizzare un provider di Single Sign-On di terze parti, il sistema mostrerà la pagina di accesso personalizzata anziché quella di Google.
Per attivare questo comportamento, imposta il valore di access_settings.oauth_settings.login_hint sul nome di dominio Google Workspace (ad esempio example.com). La proprietà del dominio deve essere stata verificata: non puoi utilizzare domini DNS internet arbitrari di tua proprietà. (I domini aggiunti come dominio principale o secondario di Google Workspace sono verificati e possono quindi essere utilizzati qui.)
Se devi autenticare gli utenti esterni al dominio, puoi utilizzare l'autenticazione programmatica.
Per saperne di più, consulta la documentazione di OpenID Connect.
Imposta una pagina di errore di accesso negato personalizzata
Nota: questa funzionalità è disponibile solo nell'ambito di un abbonamento a pagamento alla sicurezza aziendale. Se ti interessa, puoi registrarti.| Campo | Valore predefinito |
|---|---|
application_settings.access_denied_page_settings.access_denied_page_uri |
"" |
In questo campo puoi impostare un URL che reindirizza gli utenti a una pagina personalizzata anziché alla pagina di errore IAP predefinita ogni volta che l'accesso viene negato da una policy.
Con questa funzionalità puoi anche incorporare l'URL per la risoluzione dei problemi. Per saperne di più, consulta Abilitazione dell'URL per la risoluzione dei problemi per la pagina di errore Accesso negato personalizzata.Emetti ID mesh RCToken di Cloud Service Mesh e Istio
| Campo | Valore predefinito |
|---|---|
application_settings.csm_settings.rctoken_aud |
"" |
Se utilizzi Istio su GKE, puoi configurare IAP in modo che generi un RCToken compatibile con Istio. Se questo campo è impostato su una stringa non vuota, IAP aggiungerà un'intestazione HTTP Ingress-Authorization contenente un RCToken. L'attestazione aud sarà impostata sul valore del campo.
Autenticati con Identity Platform
| Campo | Valore predefinito |
|---|---|
access_settings.gcip_settings |
null |
Per impostazione predefinita, IAP utilizza il sistema di identità integrato di Google. Se questo campo è impostato, IAP utilizzerà Identity Platform per autenticare gli utenti.
Utilizza Terraform per personalizzare IAP
Per configurare IAP utilizzando Terraform, consulta google_iap_settings.
Informazioni sull'ereditarietà delle impostazioni nella gerarchia delle risorse
IAP valuta sempre le richieste per una versione del servizio web specifica. Questo tipo di risorsa si trova al livello più basso della gerarchia delle risorse, che ha il seguente aspetto:
- Organization
- Folder
- Project
- All web services
- Web service type
- Web service
- Web service version
Per determinare le impostazioni da applicare a una versione del servizio web, IAP inizia con un insieme di valori predefiniti e poi esamina la gerarchia dall'alto verso il basso. Le impostazioni vengono applicate man mano che vengono trovate,
quindi i valori impostati a un livello inferiore sostituiscono quelli impostati a un livello superiore.
Ad esempio, se access_settings.cors_settings.allow_http_options è impostato su true a livello di progetto, ma su false a livello di servizio, il valore effettivo sarà false.
Consulta Risorse e autorizzazioni per scoprire di più sulla gerarchia delle risorse IAP.