Questo articolo descrive come personalizzare Identity-Aware Proxy (IAP). Con queste impostazioni, puoi controllare comportamentali, 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 sul bilanciatore del carico alle app di App Engine utilizzando la console Google Cloud, l'API IAP oppure 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 APPLICAZIONI.
- Apri il menu Altre azioni e fai clic su Impostazioni.
- Fai clic su Salva.
gcloud
Per recuperare e modificare le impostazioni utilizzando Google Cloud CLI, utilizza la
gcloud iap settings get
e
gcloud iap settings set
come mostrato di seguito:
- Per visualizzare le impostazioni per un progetto, una cartella o un'organizzazione, utilizza quanto segue tramite comandi SQL. Per configurare le impostazioni 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 ottenere le impostazioni per un tipo di risorsa IAP specifico all'interno di un progetto:
gcloud iap settings get --project=PROJECT-ID \ --resource-type=RESOURCE-TYPE-NAME
- Per configurare le impostazioni per un progetto, una cartella, un'organizzazione oppure per
di risorsa IAP in un progetto, creare un file JSON o
YAML che contiene le nuove impostazioni desiderate e specificare il percorso
del file. Consulta le
gcloud iap settings set
per ulteriori informazioni:
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,
richieste utilizzando i verbi HTTP GET
o PATCH
per inviare
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. Consulta
getIapSettings()
e
updateIapSettings()
per ulteriori informazioni:
- Per ottenere o configurare le impostazioni per un tipo di risorsa IAP specifico all'interno di 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 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. Nella tabella seguente sono elencate le autorizzazioni necessarie per leggere e modificare. le impostazioni per ogni tipo di risorsa. Consulta Risorse e autorizzazioni per una descrizione dei diversi tipi di risorse.
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 servizio web | iap.webServiceVersions.getSettings |
iap.webServiceVersions.updateSettings |
Il ruolo Amministratore impostazioni IAP (roles/iap.settingsAdmin
) concede tutte queste funzionalità
autorizzazioni appropriate, così come Editor di progetto (roles/editor
). Visualizzatore progetto
(roles/viewer
) concede tutte le autorizzazioni getSettings
.
Per saperne di più sulla concessione dei ruoli IAM, consulta Concessione, modifica e revoca dell'accesso.
Personalizzazione delle impostazioni 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 |
Mostra una pagina di errore personalizzata quando l'accesso viene negato |
application_settings.csm_settings.rctoken_aud |
Problema di GKE Enterprise e Istio RCToken |
access_settings.gcip_settings |
Autenticazione con Identity Platform |
access_settings.ReauthSettings |
Imposta un criterio di riautenticazione. Per maggiori dettagli, consulta Configurare la riautenticazione. |
Puoi applicare le impostazioni a livello di progetto o a qualsiasi livello inferiore a livello di risorsa IAP.
Puoi configurare le impostazioni per le risorse IAP basate sul web, non a risorse a cui si accede con IAP per inoltro TCP.
Utilizzando access_settings.cors_settings.allow_http_options
come esempio, puoi
configura 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 richieste HTTP OPTIONS (preflight CORS)
Campo | Valore predefinito |
---|---|
access_settings.cors_settings.allow_http_options |
false |
Il web criterio della stessa origine 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 in hosting su un'altra origine dati.
In alcuni casi,
i browser tenteranno automaticamente una richiesta, ma scarteranno i contenuti dei
se non include un'intestazione Access-Control-Allow-Origin
. Per consentire
ad esempio, includi questa intestazione nelle risposte della tua app.
In altri casi, il browser invia un'email
richiesta 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 il
intestazioni di risposta Access-Control-*
richieste), il browser bloccherà
contenente 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
.Cambia l'impostazione
access_settings.cors_settings.allow_http_options
intrue
in modo che IAP passiOPTIONS
richieste alla tua applicazione.
Autenticazione tramite un dominio Google Workspace
Campo | Valore predefinito |
---|---|
access_settings.oauth_settings.login_hint |
"" |
Se solo i membri di un dominio Google Workspace specifico utilizzeranno la tua app, puoi configurare IAP per ottimizzare il flusso di autenticazione. Questo approccio comporta 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 anziché visualizzare l'interfaccia utente di selezione degli account.
Se un utente non ha eseguito l'accesso al proprio Account Google, l'interfaccia utente di accesso riempirà automaticamente la parte del dominio dell'indirizzo email (ovvero l'utente deve digitare solo
alice
anzichéalice@example.com
, per esempio).Se il tuo dominio Google Workspace è configurato per Utilizzare un provider 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
al tuo Google Workspace
nome di dominio (ad esempio example.com
). La proprietà del dominio deve essere stata verificata:
non puoi utilizzare domini DNS internet arbitrari di tua proprietà. (i domini con
Aggiunto come dominio principale o secondario di Google Workspace.
sono verificati e possono quindi essere utilizzati qui.)
Se devi autenticare gli utenti al di fuori del dominio, puoi utilizzare autenticazione programmatica.
Per ulteriori informazioni, consulta 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é la pagina di errore IAP predefinita ogni volta che l'accesso viene negato da un .
Con questa funzionalità puoi anche incorporare l'URL per la risoluzione dei problemi. Per saperne di più, consulta Attivazione dell'URL per la risoluzione dei problemi per la pagina di errore Accesso negato personalizzata.
Emissione degli 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 è
su una stringa non vuota, IAP aggiungerà un
Intestazione HTTP Ingress-Authorization
contenente un RCToken. La dichiarazione aud
verrà 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 servizio web. Questo tipo di risorsa è al livello più basso gerarchia delle risorse, che è simile alla seguente:
- Organization - Folder - Project - All web services - Web service type - Web service - Web service version
Per stabilire quali impostazioni applicare a una versione del servizio web,
IAP inizia con un insieme di valori predefinito e poi
percorre la gerarchia dall'alto verso il basso. Le impostazioni vengono applicate
non appena vengono trovate.
pertanto 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 false
a livello di servizio, quindi efficace
sarà false
.
Vedi Risorse e autorizzazioni per saperne di più sulla gerarchia delle risorse IAP.