Questa guida spiega come eseguire la migrazione dai client OAuth 2.0 creati utilizzando l'API OAuth Admin di Identity-Aware Proxy (IAP) ai client OAuth 2.0 gestiti da Google e implementati automaticamente da IAP.
Che cosa cambia
Stiamo ritirando l'API OAuth Admin di IAP, che include le seguenti API per la gestione manuale di client e brand OAuth:
Anziché gestire manualmente i client OAuth 2.0, IAP ora crea e gestisce automaticamente i client OAuth quando necessario. Questa modifica semplifica la gestione dei client, riduce gli errori manuali e ottimizza i processi di deployment.
Che cosa non cambierà
Questo ritiro non influisce sui client OAuth che configuri manualmente utilizzando l'API Compute Engine, l'API App Engine o la console Google Cloud .
Puoi continuare a creare nuove configurazioni di brand e client OAuth e a gestirle utilizzando la console Google Cloud . Le configurazioni esistenti continueranno a essere completamente supportate.
Se non utilizzi l'API IAP OAuth Admin, questa modifica non ti riguarda.
Descrizione dettagliata
A partire dal 22 gennaio 2025, l'API IAP OAuth 2.0 Admin, utilizzata per creare un client IAP OAuth 2.0, è ritirata. L'API IAP OAuth 2.0 Admin non è più necessaria perché non devi più configurare i client OAuth. Ora IAP utilizza un client OAuth gestito da Google per l'accesso al browser per impostazione predefinita o quando non è configurato esplicitamente alcun client OAuth 2.0. Il client OAuth 2.0 gestito da Google limita l'accesso alle applicazioni abilitate a IAP agli utenti della stessa organizzazione quando accedono a queste applicazioni tramite un browser.
Con il ritiro dell'API Identity-Aware Proxy (IAP) OAuth 2.0 Admin, non puoi più creare o gestire nuovi client OAuth. I client OAuth creati prima di questo ritiro non verranno invalidati. Puoi continuare a utilizzare i client OAuth che hai creato in precedenza e gestirli utilizzando la console Google Cloud .
Se hai configurato applicazioni con client OAuth creati utilizzando l'API IAP 2.0 Admin o in altro modo, queste applicazioni continueranno a funzionare. Non sono necessarie modifiche alle applicazioni. Tuttavia, se hai configurato l'automazione per creare nuovi client durante il deployment dell'applicazione o recuperare i segreti client per i client esistenti, devi aggiornare gli script di automazione per rimuovere la dipendenza dall'API IAP OAuth 2.0 Admin.
Se prevedi di utilizzare il client OAuth 2.0 gestito da Google, utilizza la guida "Accesso programmatico" per configurare l'accesso programmatico per queste applicazioni.
Se hai un requisito che non viene soddisfatto dal client OAuth 2.0 gestito da Google, puoi condividere un singolo client OAuth con più applicazioni IAP, eliminando la necessità di creare manualmente un client per ogni nuova applicazione.
Azioni richieste
Aggiornare gli script di automazione
Se utilizzi Terraform o altri strumenti per automatizzare la configurazione di IAP e utilizzi l'API IAP OAuth 2.0 Admin, devi aggiornare gli script di automazione per utilizzare un client creato in precedenza o il client OAuth gestito da Google con IAP.
Configurare l'accesso programmatico per le applicazioni utilizzando i client OAuth2.0 gestiti da Google
Se hai già alcune applicazioni protette da IAP e prevedi di eseguirne la migrazione per utilizzare il client OAuth 2.0 gestito da Google, puoi configurare l'accesso programmatico per queste applicazioni inserendo i client OAuth 2.0 nella lista consentita.
Esegui la migrazione delle risorse abilitate a IAP
Per eseguire la migrazione delle risorse in modo che utilizzino il client OAuth 2.0 gestito da Google, segui i passaggi per il tipo di risorsa, ad esempio una risorsa Compute Engine, di cui vuoi eseguire la migrazione.
Esegui la migrazione delle risorse App Engine abilitate per IAP
Completa i passaggi descritti in questa sezione per eseguire la migrazione delle risorse App Engine in cui IAP è abilitato e un client OAuth 2.0 è configurato.
gcloud
Prima di procedere con i passaggi, assicurati di avere una versione aggiornata di gcloud CLI. Per istruzioni su come installare gcloud CLI, consulta Installa gcloud CLI.
Utilizza Google Cloud CLI per l'autenticazione.
gcloud auth login
Fai clic sull'URL visualizzato e accedi.
Dopo aver eseguito l'accesso, copia il codice di verifica visualizzato e incollalo nella riga di comando.
Esegui questo comando per specificare il progetto che contiene le applicazioni che vuoi continuare a proteggere con IAP.
gcloud config set project PROJECT_ID
Esegui questo comando per recuperare l'ID client OAuth 2.0 configurato.
gcloud app describe --format="value(iap.oauth2ClientId)"
Salva l'ID client dal comando precedente se vuoi consentire l'accesso programmatico.
Per inserire nella lista consentita il client OAuth 2.0 per l'accesso programmatico, esegui un'operazione di lettura-aggiornamento-scrittura sull'API delle impostazioni IAP.
gcloud iap settings get --resource-type=app-engine --project=$PROJECT > settings.yaml
Aggiorna il file settings.yaml e aggiungi l'ID client OAuth 2.0 recuperato in precedenza in
programmaticClients
come nell'esempio mostrato.accessSettings: oauthSettings: programmaticClients: - CLIENT_ID
Applica le nuove impostazioni all'applicazione App Engine
gcloud iap settings set settings.yaml --resource-type=app-engine --project=PROJECT_ID
Per eseguire la migrazione delle tue app, esegui questo comando.
gcloud iap web enable --resource-type=app-engine
API
Esegui questo comando per recuperare l'ID client OAuth 2.0 configurato.
curl -X GET \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Accept: application/json" \ -H "Content-Type: application/json" \ "https://appengine.googleapis.com/v1/apps/PROJECT_ID?fields=iap"
Esegui questo comando per recuperare le impostazioni IAP esistenti in un file
settings.json
.curl -X GET \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Accept: application/json" \ -H "Content-Type: application/json" \ "https://iap.googleapis.com/v1/projects/PROJECT_ID/iap_web/appengine-PROJECT_ID:iapSettings" > settings.json
Aggiorna il file
settings.json
per aggiungere CLIENT_ID salvato in precedenza come cliente programmatico.{ "accessSettings": { "oauthSettings": { "programmaticClients": [ "CLIENT_ID" ] }, }, }
Esegui il comando seguente per aggiornare le impostazioni IAP.
curl -X PATCH \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Accept: application/json" \ -H "Content-Type: application/json" \ -d "@settings.json" \ "https://iap.googleapis.com/v1/projects/PROJECT_ID/iap_web/appengine-PROJECT_ID:iapSettings"
Esegui questo comando per preparare un file
settings.json
.cat << EOF > settings.json { "iap": { "enabled":true } } EOF
Esegui questo comando per eseguire la migrazione delle tue app.
curl -X PATCH \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Accept: application/json" \ -H "Content-Type: application/json" \ -d @settings.json \ "https://appengine.googleapis.com/v1/apps/PROJECT_ID?updateMask=iap"
Migra le risorse Compute Engine abilitate per IAP
Completa i passaggi descritti in questa sezione per eseguire la migrazione delle risorse Compute Engine in cui IAP è abilitato e un client OAuth 2.0 è configurato.
gcloud
Prima di procedere con i passaggi, assicurati di avere una versione aggiornata di gcloud CLI. Per istruzioni su come installare gcloud CLI, consulta Installa gcloud CLI.
Utilizza Google Cloud CLI per l'autenticazione.
gcloud auth login
Fai clic sull'URL visualizzato e accedi.
Dopo aver eseguito l'accesso, copia il codice di verifica visualizzato e incollalo nella riga di comando.
Esegui questo comando per specificare il progetto che contiene le applicazioni che vuoi continuare a proteggere con IAP.
gcloud config set project PROJECT_ID
Esegui questo comando per recuperare l'ID client OAuth 2.0 configurato.
Ambito globale
gcloud compute backend-services describe BACKEND_SERVICE_NAME \ --global \ --format="value(iap.oauth2ClientId)"
Ambito regionale
Salva l'ID client del comando precedente se vuoi consentire l'accesso programmatico.gcloud compute backend-services describe BACKEND_SERVICE_NAME \ --region REGION_NAME \ --format="value(iap.oauth2ClientId)"
Per inserire nella lista consentita il client OAuth 2.0 per l'accesso programmatico, esegui un'operazione di lettura-aggiornamento-scrittura sull'API delle impostazioni IAP.
Ambito globale
gcloud iap settings get \ --resource-type=compute \ --project=PROJECT_ID \ --service=BACKEND_SERVICE_NAME > settings.yaml
Ambito regionale
gcloud iap settings get \ --resource-type=compute \ --project=PROJECT_ID \ --service=BACKEND_SERVICE_NAME \ --region=REGION_NAME > settings.yaml
Aggiorna il file settings.yaml e aggiungi l'ID client OAuth 2.0 recuperato in precedenza in
programmaticClients
come nell'esempio mostrato.accessSettings: oauthSettings: programmaticClients: - CLIENT_ID
Applica le nuove impostazioni all'applicazione Compute Engine
Ambito globale
gcloud iap settings set settings.yaml \ --resource-type=compute \ --project=PROJECT_ID \ --service=BACKEND_SERVICE_NAME
Ambito regionale
gcloud iap settings set settings.yaml \ --resource-type=compute \ --project=PROJECT_ID \ --service=BACKEND_SERVICE_NAME \ --region=REGION_NAME
Per eseguire la migrazione delle applicazioni, esegui il comando con ambito globale o regionale.
Ambito globale
gcloud compute backend-services update BACKEND_SERVICE_NAME \ --global \ --iap=enabled,oauth2-client-id=" ",oauth2-client-secret=" "
Ambito regionale
gcloud compute backend-services update BACKEND_SERVICE_NAME \ --region REGION_NAME \ --iap=enabled,oauth2-client-id=" ",oauth2-client-secret=" "
Per confermare che l'ID client OAuth non è impostato, esegui il seguente comando di ambito globale o regionale. Dopo aver eseguito il comando, controlla l'output per assicurarti che il campo ID client OAuth sia vuoto.
Ambito globale
gcloud compute backend-services describe BACKEND_SERVICE_NAME \ --global
Ambito regionale
gcloud compute backend-services describe BACKEND_SERVICE_NAME \ --region REGION_NAME
API
Esegui questo comando per recuperare l'ID client OAuth 2.0 configurato.
Ambito globale
curl -X GET \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Accept: application/json" \ -H "Content-Type: application/json" \ "https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/backendServices/BACKEND_SERVICE_NAME?fields=iap.oauth2ClientId"
Ambito regionale
curl -X GET \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Accept: application/json" \ -H "Content-Type: application/json" \ "https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION_NAME/backendServices/BACKEND_SERVICE_NAME?fields=iap.oauth2ClientId"
Esegui questo comando per recuperare le impostazioni IAP esistenti in un file
settings.json
.Ambito globale
curl -X GET \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://iap.googleapis.com/v1/projects/PROJECT_ID/iap_web/compute/services/BACKEND_SERVICE_NAME:iapSettings" > settings.json
Ambito regionale
curl -X GET \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://iap.googleapis.com/v1/projects/PROJECT_ID/iap_web/compute-REGION_NAME/services/BACKEND_SERVICE_NAME:iapSettings" > settings.json
Aggiorna il file
settings.json
per aggiungere CLIENT_ID salvato in precedenza come cliente programmatico.{ "accessSettings": { "oauthSettings": { "programmaticClients": [ "CLIENT_ID" ] }, }, }
Esegui il comando seguente per aggiornare le impostazioni IAP.
Ambito globale
curl -X PATCH \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Accept: application/json" \ -H "Content-Type: application/json" \ -d "@settings.json" \ "https://iap.googleapis.com/v1/projects/PROJECT_ID/iap_web/compute/services/BACKEND_SERVICE_NAME:iapSettings"
Ambito regionale
curl -X PATCH \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Accept: application/json" \ -H "Content-Type: application/json" \ -d "@settings.json" \ "https://iap.googleapis.com/v1/projects/PROJECT_ID/iap_web/compute-REGION_NAME/services/BACKEND_SERVICE_NAME:iapSettings"
Esegui questo comando per preparare un file
settings.json
.cat << EOF > settings.json { "iap": { "enabled":true, "oauth2ClientId": " ", "oauth2ClientSecret": " " } } EOF
Esegui questo comando per eseguire la migrazione delle risorse IAP.
Ambito globale
curl -X PATCH \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Accept: application/json" \ -H "Content-Type: application/json" \ -d @settings.json \ "https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/backendServices/BACKEND_SERVICE_NAME"
Ambito regionale
curl -X PATCH
-H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Accept: application/json" \ -H "Content-Type: application/json" \ -d @settings.json \ "https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION_NAME/backendServices/BACKEND_SERVICE_NAME"Per confermare che l'ID client OAuth non è impostato, esegui il seguente comando di ambito globale o regionale. Dopo aver eseguito il comando, controlla l'output per assicurarti che il campo ID client OAuth sia vuoto.
Ambito globale
curl -X PATCH \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/backendServices/BACKEND_SERVICE_NAME"
Ambito regionale
curl -X PATCH \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION_NAME/backendServices/BACKEND_SERVICE_NAME"
Terraform
Se esegui la migrazione di risorse esistenti abilitate per IAP in modo che utilizzino un
client OAuth gestito da Google, devi annullare esplicitamente l'impostazione dei campi oauth2_client_id
e oauth2_client_secret
aggiornandoli a un singolo spazio vuoto.
Esempio:
resource "google_compute_backend_service" "default" {
name = "tf-test-backend-service-external"
protocol = "HTTP"
load_balancing_scheme = "EXTERNAL"
iap {
oauth2_client_id = " "
oauth2_client_secret = " "
}
}
I campi oauth2_client_id
e oauth2_client_secret
sono facoltativi e
se lavori con nuove risorse abilitate aIAPp, puoi
ignorarli.
Per saperne di più, consulta la documentazione di Terraform.
Esegui la migrazione delle risorse Cloud Run abilitate a IAP
Completa i passaggi descritti in questa sezione per eseguire la migrazione delle risorse Cloud Run in cui IAP è abilitato e un client OAuth 2.0 è configurato.
gcloud
Prima di procedere con i passaggi, assicurati di avere una versione aggiornata di gcloud CLI. Per istruzioni su come installare gcloud CLI, vedi Installa gcloud CLI.
Per l'autenticazione, utilizza Google Cloud CLI ed esegui il comando seguente.
gcloud auth login
Fai clic sull'URL visualizzato e accedi.
Dopo aver eseguito l'accesso, copia il codice di verifica visualizzato e incollalo nella riga di comando.
Esegui questo comando per specificare il progetto che contiene le applicazioni che vuoi continuare a proteggere con IAP.
gcloud config set project PROJECT_ID
Esegui questo comando per recuperare l'ID client OAuth 2.0 configurato.
Ambito globale
gcloud compute backend-services describe BACKEND_SERVICE_NAME \ --global \ --format="value(iap.oauth2ClientId)"
Ambito regionale
Salva l'ID client del comando precedente se vuoi consentire l'accesso programmatico.gcloud compute backend-services describe BACKEND_SERVICE_NAME \ --region REGION_NAME \ --format="value(iap.oauth2ClientId)"
Per inserire nella lista consentita il client OAuth 2.0 per l'accesso programmatico, esegui un'operazione di lettura-aggiornamento-scrittura sull'API delle impostazioni IAP.
Ambito globale
gcloud iap settings get \ --resource-type=compute \ --project=PROJECT_ID \ --service=BACKEND_SERVICE_NAME > settings.yaml
Ambito regionale
gcloud iap settings get \ --resource-type=compute \ --project=PROJECT_ID \ --service=BACKEND_SERVICE_NAME \ --region=REGION_NAME > settings.yaml
Aggiorna il file settings.yaml e aggiungi l'ID client OAuth 2.0 recuperato in precedenza in
programmaticClients
come nell'esempio mostrato.accessSettings: oauthSettings: programmaticClients: - CLIENT_ID
Applica le nuove impostazioni all'applicazione Compute Engine
Ambito globale
gcloud iap settings set settings.yaml \ --resource-type=compute \ --project=PROJECT_ID \ --service=BACKEND_SERVICE_NAME
Ambito regionale
gcloud iap settings set settings.yaml \ --resource-type=compute \ --project=PROJECT_ID \ --service=BACKEND_SERVICE_NAME \ --region=REGION_NAME
Per eseguire la migrazione delle risorse, esegui il comando con ambito globale o regionale.
Ambito globale
gcloud compute backend-services update BACKEND_SERVICE_NAME \ --global \ --iap=enabled,oauth2-client-id=" ",oauth2-client-secret=" "
Ambito regionale
gcloud compute backend-services update BACKEND_SERVICE_NAME \ --region REGION_NAME \ --iap=enabled,oauth2-client-id=" ",oauth2-client-secret=" "
Per confermare che l'ID client OAuth non è impostato, esegui il seguente comando di ambito globale o regionale. Dopo aver eseguito il comando, controlla l'output per assicurarti che il campo ID client OAuth sia vuoto.
Ambito globale
gcloud compute backend-services describe BACKEND_SERVICE_NAME \ --global
Ambito regionale
gcloud compute backend-services describe BACKEND_SERVICE_NAME \ --region REGION_NAME
API
Esegui questo comando per recuperare l'ID client OAuth 2.0 configurato.
Ambito globale
curl -X GET \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Accept: application/json" \ -H "Content-Type: application/json" \ "https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/backendServices/BACKEND_SERVICE_NAME?fields=iap.oauth2ClientId"
Ambito regionale
curl -X GET \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Accept: application/json" \ -H "Content-Type: application/json" \ "https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION_NAME/backendServices/BACKEND_SERVICE_NAME?fields=iap.oauth2ClientId"
Esegui questo comando per recuperare le impostazioni IAP esistenti in un file
settings.json
.Ambito globale
curl -X GET \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://iap.googleapis.com/v1/projects/PROJECT_ID/iap_web/compute/services/BACKEND_SERVICE_NAME:iapSettings" > settings.json
Ambito regionale
curl -X GET \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://iap.googleapis.com/v1/projects/PROJECT_ID/iap_web/compute-REGION_NAME/services/BACKEND_SERVICE_NAME:iapSettings" > settings.json
Aggiorna il file
settings.json
per aggiungere CLIENT_ID salvato in precedenza come cliente programmatico.{ "accessSettings": { "oauthSettings": { "programmaticClients": [ "CLIENT_ID" ] }, }, }
Esegui il comando seguente per aggiornare le impostazioni IAP.
Ambito globale
curl -X PATCH \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Accept: application/json" \ -H "Content-Type: application/json" \ -d "@settings.json" \ "https://iap.googleapis.com/v1/projects/PROJECT_ID/iap_web/compute/services/BACKEND_SERVICE_NAME:iapSettings"
Ambito regionale
curl -X PATCH \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Accept: application/json" \ -H "Content-Type: application/json" \ -d "@settings.json" \ "https://iap.googleapis.com/v1/projects/PROJECT_ID/iap_web/compute-REGION_NAME/services/BACKEND_SERVICE_NAME:iapSettings"
Esegui questo comando per preparare un file
settings.json
.cat << EOF > settings.json { "iap": { "enabled":true, "oauth2ClientId": " ", "oauth2ClientSecret": " " } } EOF
Esegui questo comando per eseguire la migrazione delle risorse.
Ambito globale
curl -X PATCH \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Accept: application/json" \ -H "Content-Type: application/json" \ -d @settings.json \ "https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/backendServices/BACKEND_SERVICE_NAME"
Ambito regionale
curl -X PATCH
-H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Accept: application/json" \ -H "Content-Type: application/json" \ -d @settings.json \ "https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION_NAME/backendServices/BACKEND_SERVICE_NAME"Per confermare che l'ID client OAuth non è impostato, esegui il seguente comando di ambito globale o regionale. Dopo aver eseguito il comando, controlla l'output per assicurarti che il campo ID client OAuth sia vuoto.
Ambito globale
curl -X PATCH \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/backendServices/BACKEND_SERVICE_NAME"
Ambito regionale
curl -X PATCH \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION_NAME/backendServices/BACKEND_SERVICE_NAME"
Migra le risorse Google Kubernetes Engine abilitate per IAP
Aggiungi il seguente blocco IAP alla definizione di risorsa personalizzata (CRD) BackendConfig. In questo modo viene abilitato IAP con il client OAuth 2.0 gestito da Google.
apiVersion: cloud.google.com/v1
kind: BackendConfig
metadata:
name: config-default
namespace: my-namespace
spec:
iap:
enabled: true
Utilizzare un JWT dell'account di servizio per l'autenticazione a IAP
Puoi autenticarti in IAP senza dover utilizzare l'API OAuth Admin deprecata utilizzando un JWT dell'account di servizio.
Ottenere il secret di un client OAuth
Per ottenere il secret di un client OAuth senza utilizzare l'API OAuth Admin ritirata, utilizza Secret Manager seguendo le istruzioni riportate in questo esempio di Terraform: google_secret_manager_secret
.
Determinare se utilizzi l'API OAuth Admin
Per verificare se utilizzi l'API OAuth Admin, completa i seguenti passaggi.
Nella console Google Cloud , apri la pagina delle API IAP, quindi seleziona il progetto che vuoi analizzare.
Vai alla pagina delle API IAPNell'elenco Seleziona grafici, seleziona Traffico per metodo API, quindi fai clic su Ok.
Nella sezione Metodi, cerca i metodi con il prefisso
google.cloud.iap.v1.IdentityAwareProxyOAuthService
, che indica che il progetto utilizza l'API OAuth Admin.