Questo articolo descrive come personalizzare le impostazioni di Identity-Aware Proxy (IAP). Con queste impostazioni, puoi controllare comportamenti tra cui:
- Compatibilità con GKE Enterprise 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.
Gestione delle impostazioni
Puoi visualizzare e aggiornare le impostazioni IAP su bilanciatori di carico e applicazioni App Engine utilizzando la console Google Cloud, l'API IAP o Google Cloud CLI.
Per aggiornare le impostazioni IAP su tutte le risorse, tra cui cartelle, progetti e organizzazioni, utilizza l'API o Google Cloud CLI.
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 risorsa nella scheda APPLICATIONS (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 mostrato di seguito:
- Per ottenere le impostazioni di un progetto, di una cartella o di un'organizzazione, utilizza i seguenti comandi. Per configurare le impostazioni IAP utilizzando la console Google Cloud o lgcloud CLI, consulta Personalizzare IAP.
gcloud iap settings get --project=PROJECT-ID
gcloud iap settings get --folder=FOLDER-ID
gcloud iap settings get --organization=ORGANIZATION-ID
- Per ottenere 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 impostare le impostazioni per un progetto, una cartella o un'organizzazione o 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 ulteriori informazioni, 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, effettua richieste utilizzando i verbi HTTP GET
o PATCH
all'endpoint della risorsa desiderato in Google Cloud. Combina il suffisso del percorso :iapSettings
, un percorso della risorsa (come descritto in Risorse e autorizzazioni) e un metodo HTTP appropriato per recuperare o modificare un'impostazione. Per ulteriori informazioni, consulta
getIapSettings()
e
updateIapSettings()
.
- Per ottenere o impostare 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 ottenere o impostare le impostazioni di un progetto:
https://iap.googleapis.com/v1/projects/PROJECT-ID:iapSettings
- Per recuperare o impostare le impostazioni di una cartella:
https://iap.googleapis.com/v1/folders/FOLDER-ID:iapSettings
- Per recuperare o impostare le impostazioni di un'organizzazione:
https://iap.googleapis.com/v1/organizations/ORGANIZATION-ID:iapSettings
Informazioni sul controllo dell'accesso per le impostazioni
Per visualizzare e modificare le impostazioni IAP, sono necessarie autorizzazioni specifiche. La tabella seguente elenca le autorizzazioni 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 |
Tipo di servizio web | iap.webTypes.getSettings |
iap.webTypes.updateSettings |
Servizio web | iap.webServices.getSettings |
iap.webServices.updateSettings |
Versione del servizio web | iap.webServiceVersions.getSettings |
iap.webServiceVersions.updateSettings |
Il ruolo IAP Settings Admin (roles/iap.settingsAdmin
) concede tutte queste autorizzazioni, così come il ruolo Project Editor (roles/editor
). Il ruolo Project Viewer (roles/viewer
) concede tutte le autorizzazioni getSettings
.
Per scoprire di più sulla concessione dei ruoli IAM, consulta Concedere, modificare e revocare l'accesso.
Personalizzazione delle impostazioni di IAP
IAP fornisce le seguenti impostazioni di personalizzazione:
Campo | Descrizione |
---|---|
access_settings.cors_settings.allow_http_options |
Controlla le OPZIONI HTTP (preflight CORS) |
access_settings.oauth_settings.login_hint |
Semplificare l'accesso per gli utenti di un dominio G Suite |
application_settings.access_denied_page_settings.access_denied_page_uri |
Mostrare una pagina di errore personalizzata quando l'accesso viene negato |
application_settings.csm_settings.rctoken_aud |
Emettere token RC di GKE Enterprise e Istio |
access_settings.gcip_settings |
Eseguire l'autenticazione con Identity Platform |
access_settings.ReauthSettings |
Imposta un criterio di riautenticazione. Per maggiori dettagli, vedi Configurare la riconferma dell'autenticazione |
Puoi applicare le impostazioni a livello di progetto o a qualsiasi livello inferiore della risorsa IAP.
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.
Utilizzando access_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 ogni impostazione.
Consentire le richieste OPTIONS HTTP (preflight CORS)
Campo | Valore predefinito |
---|---|
access_settings.cors_settings.allow_http_options |
false |
Il criterio della stessa origine del web impedisce ai browser di inviare richieste AJAX tra siti web. Per impostazione predefinita, JavaScript in una pagina pubblicata da un'origine non può utilizzare AJAX per inviare una richiesta a un'app protetta con IAP ospitata su un'altra origine.
In alcuni casi,
i browser tenteranno automaticamente una richiesta, ma elimineranno i contenuti della
risposta se non include un'intestazione Access-Control-Allow-Origin
. Per consentire
questi tipi di richieste, includi questa intestazione nelle risposte dell'app.
In altri casi, il browser invierà una
richiesta di preflight CORS,
un tipo di richiesta HTTP OPTIONS
, prima di inviare la richiesta cross-origin. Se la tua app non risponde con una risposta di preflight appropriata (contenente le intestazioni di risposta Access-Control-*
richieste), il browser bloccherà la richiesta con un errore. Inoltre, poiché le richieste di preflight non vengono inviate con alcuna credenziale di autenticazione (ad esempio un cookie della 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_options
intrue
in modo che IAP inoltri le richiesteOPTIONS
alla tua applicazione.
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 l'IAP per ottimizzare il flusso di autenticazione. Questo approccio presenta 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 il suo account di lavoro anziché mostrare l'interfaccia utente di selezione dell'account.
Se un utente non ha eseguito l'accesso al proprio Account Google, l'interfaccia utente di accesso completerà automaticamente la parte di dominio del suo indirizzo email (ad esempio, l'utente dovrà solo digitare
alice
anzichéalice@example.com
).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 di internet arbitrari di tua proprietà. I domini che sono stati aggiunti come dominio principale o secondario di Google Workspace sono verificati e possono essere utilizzati qui.
Se devi autenticare gli utenti esterni al dominio, puoi utilizzare l'autenticazione programmatica.
Per ulteriori informazioni, consulta la documentazione di OpenID Connect.
Impostazione di una pagina di errore di accesso negato personalizzata
Campo | Valore predefinito |
---|---|
application_settings.access_denied_page_settings.access_denied_page_uri |
"" |
In questo campo puoi impostare un URL che reindirizzi gli utenti a una pagina personalizzata anziché alla pagina di errore IAP predefinita ogni volta che l'accesso viene negato da un criterio.
Con questa funzionalità puoi anche incorporare l'URL per la risoluzione dei problemi. Per ulteriori informazioni, consulta Attivare l'URL per la risoluzione dei problemi per la pagina di errore Accesso negato personalizzata.
Emissione di ID mesh GKE Enterprise e Istio RCToken
Campo | Valore predefinito |
---|---|
application_settings.csm_settings.rctoken_aud |
"" |
Se utilizzi Istio su
GKE, puoi configurare
IAP per produrre un token RC compatibile con Istio. Se questo campo è impostato su una stringa non vuota, IAP aggiungerà un'intestazione HTTP Ingress-Authorization
contenente un RCToken. L'attributo aud
sarà impostato sul valore del campo.
Autenticazione con Identity Platform
Campo | Valore predefinito |
---|---|
access_settings.gcip_settings |
null |
Per impostazione predefinita, l'IAP utilizza il sistema di identità nativo di Google. Se questo campo è impostato, IAP utilizzerà Identity Platform per autenticare gli utenti.
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 per una versione del servizio web, IAP inizia con un insieme predefinito di valori, quindi esamina la gerarchia dall'alto verso il basso. Le impostazioni vengono applicate man mano che vengono rilevate, pertanto i valori impostati a un livello inferiore hanno la precedenza su 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.