Eseguire la migrazione dall'API Admin OAuth IAP

L'API IAP OAuth Admin è ora obsoleta. Questa guida mostra come eseguire la migrazione facoltativa dei client OAuth esistenti ai client OAuth gestiti da Google. Se non utilizzi l'API IAP OAuth Admin, questa modifica non ti riguarda.

Per verificare se il tuo progetto utilizza le API OAuth Admin, consulta Controllare l'utilizzo delle API OAuth Admin. Se il tuo progetto utilizza le API OAuth Admin, devi seguire le istruzioni di migrazione riportate in questo documento oppure puoi utilizzare alternative all'API OAuth Admin.

Cosa cambierà?

Stiamo ritirando l'API IAP OAuth Admin, che include le seguenti API per la gestione manuale dei client e dei brand OAuth:

Non puoi più creare o gestire client OAuth personalizzati utilizzando l'API Admin IAP OAuth. Anziché gestire manualmente i client OAuth 2.0, IAP utilizza un client OAuth gestito da Google. In questo modo, la gestione dei client OAuth è più semplice, si riducono gli errori manuali e si semplificano i processi di deployment.

Per continuare a fornire branding personalizzato, ti consigliamo di configurare client OAuth personalizzati.

Cosa non cambierà?

Se non utilizzi l'API IAP OAuth Admin, questa modifica non ti riguarda.

Questo ritiro non influisce sui client OAuth che configuri manualmente utilizzando l'API Compute Engine, l'API App Engine o Google Cloud la console.

Puoi continuare a creare nuove configurazioni di brand e client OAuth e gestire le utilizzando la Google Cloud console. Non è obbligatorio eseguire la migrazione dei client OAuth esistenti; puoi continuare a utilizzarli e gestirli tramite la Google Cloud console anziché tramite l'API IAP OAuth Admin.

Controllare l'utilizzo delle API IAP OAuth Admin

Per verificare se il tuo progetto utilizza le API IAP OAuth Admin:

  1. Nella Google Cloud console, vai alla pagina Utilizzo API IAP.

    Vai a Utilizzo API IAP

  2. Seleziona il progetto di cui vuoi controllare l'utilizzo dell'API Admin IAP OAuth.

  3. Nell'elfo Seleziona grafici , seleziona Traffico per metodo API e quindi fai clic su OK.

  4. Nella sezione Metodi, cerca eventuali metodi con il prefisso google.cloud.iap.v1.IdentityAwareProxyOAuthService, che indica che il progetto utilizza l'API Admin IAP OAuth.

Descrizione dettagliata

A partire dal 22 gennaio 2025, l'API IAP OAuth 2.0 Admin, che è utilizzata per creare un client IAP OAuth 2.0, è obsoleta. Per impostazione predefinita o quando non è configurato esplicitamente alcun client OAuth 2.0, IAP utilizza un client OAuth gestito da Google per l'accesso tramite browser. Il client OAuth 2.0 gestito da Google limita l'accesso alle applicazioni abilitate per IAP agli utenti della stessa organizzazione quando accedono a queste applicazioni tramite un browser.

Con il ritiro dell'API Admin di Identity-Aware Proxy (IAP) OAuth 2.0, non puoi più utilizzare questa API per creare o gestire i 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 Google Cloud console.

Se hai applicazioni configurate con client OAuth creati utilizzando l'API Admin di IAP 2.0 o in altro modo, queste applicazioni continueranno a funzionare. Non sono necessarie modifiche alle applicazioni. Tuttavia, se gli script di automazione o gli strumenti di Infrastructure as Code (IaC) utilizzano l'API Admin IAP OAuth 2.0 per configurare nuovi client o recuperare i client secret per i client esistenti, devi aggiornare gli script in modo che non utilizzino l'API Admin IAP OAuth 2.0.

Se continuare a utilizzare il client gestito dall'utente esistente o passare all'opzione gestita da Google dipende dai tuoi requisiti di branding e accesso esterno. Per un'analisi dettagliata di tutte le differenze funzionali, consulta la tabella di confronto tra client OAuth gestiti da Google e personalizzati. Se la tua applicazione richiede un ID client personalizzato per il branding o l'accesso esterno, utilizza la Google Cloud console per creare l'ID client. Per saperne di più sui client OAuth personalizzati, consulta Personalizzare una configurazione OAuth per abilitare IAP.

Per scoprire come configurare i client OAuth 2.0 gestiti da Google per le tue applicazioni, consulta Accesso programmatico.

Se hai un requisito non 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 in modo che utilizzino un client precreato o il client OAuth gestito da Google con IAP.

  • Configurare l'accesso programmatico per le applicazioni che utilizzano i client OAuth 2.0 gestiti da Google

    Se hai già alcune applicazioni protette da IAP e prevedi di eseguirne la migrazione utilizzando il client OAuth 2.0 gestito da Google, puoi configurare l'accesso programmatico per queste applicazioni inserendo nella lista consentita i client OAuth 2.0.

Eseguire la migrazione delle risorse abilitate per 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.

Eseguire 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 continuare con i passaggi, assicurati di avere una versione aggiornata di gcloud CLI. Per istruzioni su come installare gcloud CLI, consulta Installa gcloud CLI.

  1. Utilizza Google Cloud CLI per l'autenticazione.

    gcloud auth login
    
  2. Fai clic sull'URL visualizzato ed esegui l'accesso.

  3. Dopo aver eseguito l'accesso, copia il codice di verifica visualizzato e incollalo nella riga di comando.

  4. Esegui il comando seguente per specificare il progetto che contiene le applicazioni che vuoi continuare a proteggere con IAP.

    gcloud config set project PROJECT_ID
    
  5. Esegui il comando seguente 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.

  6. 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
    
  7. Aggiorna il file settings.yaml e aggiungi l'ID client OAuth 2.0 recuperato in precedenza in programmaticClients, come mostrato nell'esempio seguente.

    accessSettings:
      oauthSettings:
        programmaticClients:
        - CLIENT_ID
    
  8. Applica le nuove impostazioni all'applicazione App Engine

    gcloud iap settings set settings.yaml --resource-type=app-engine --project=PROJECT_ID
    
  9. Per eseguire la migrazione delle app, esegui il comando seguente.

    gcloud iap web enable --resource-type=app-engine
    

API

  1. Esegui il comando seguente 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"
    
  2. Esegui il comando seguente 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
    
  3. Aggiorna il file settings.json per aggiungere CLIENT_ID salvato in precedenza come client programmatico.

    {
        "accessSettings": {
          "oauthSettings": {
            "programmaticClients": [
              "CLIENT_ID"
            ]
          },
        },
    }
    
  4. 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"
    
  5. Esegui il comando seguente per preparare un file settings.json.

      cat << EOF > settings.json
      {
      "iap":
          {
            "enabled":true
          }
      }
      EOF
    
  6. Esegui il comando seguente per eseguire la migrazione delle 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"
    

Eseguire la migrazione delle 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 continuare con i passaggi, assicurati di avere una versione aggiornata di gcloud CLI. Per istruzioni su come installare gcloud CLI, consulta Installa gcloud CLI.

  1. Utilizza Google Cloud CLI per l'autenticazione.

    gcloud auth login
    
  2. Fai clic sull'URL visualizzato ed esegui l'accesso.

  3. Dopo aver eseguito l'accesso, copia il codice di verifica visualizzato e incollalo nella riga di comando.

  4. Esegui il comando seguente per specificare il progetto che contiene le applicazioni che vuoi continuare a proteggere con IAP.

    gcloud config set project PROJECT_ID
    
  5. Esegui il comando seguente 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

    
    gcloud compute backend-services describe BACKEND_SERVICE_NAME \
    --region REGION_NAME \
    --format="value(iap.oauth2ClientId)"
    

    Salva l'ID client dal comando precedente se vuoi consentire l'accesso programmatico.

  6. Per concedere l'accesso programmatico al client OAuth 2.0, 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
    
  7. Aggiorna il file settings.yaml e aggiungi l'ID client OAuth 2.0 recuperato in precedenza in programmaticClients, come mostrato nell'esempio seguente:

    accessSettings:
      oauthSettings:
        programmaticClients:
        - CLIENT_ID
    
  8. 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
  9. Per eseguire la migrazione delle applicazioni, esegui il comando seguente. Per cancellare l'ID client OAuth e il client secret OAuth, passa uno spazio singolo tra virgolette (" ") nel comando. Il servizio di backend utilizza il client OAuth gestito da Google.

    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=" "
    
  10. Per verificare di aver rimosso l'ID client OAuth e il client secret OAuth e che il servizio di backend utilizza un client OAuth gestito da Google, esegui gcloud compute backend-services describe. Per cancellare questi campi durante la migrazione, il gcloud compute backend-services update comando utilizza un singolo spazio (" "), che l'API Compute Engine interpreta come un'istruzione per rimuovere i valori oauth2ClientId e oauth2ClientSecret.

    Ambito globale

    gcloud compute backend-services describe BACKEND_SERVICE_NAME \
        --global
    

    Ambito regionale

    gcloud compute backend-services describe BACKEND_SERVICE_NAME \
        --region REGION_NAME
    

    Dopo aver eseguito il comando describe, esamina la sezione iap dell'output. La migrazione è riuscita quando il campo oauth2ClientId mostra un singolo spazio (' ') e il campo oauth2ClientSecret contiene l' hash SHA256 (36a9e7f1c95b82ffb99743e0c5c4ce95d83c9a430aac59f84ef3cbfab6145068) di un singolo spazio.

API

  1. Esegui il comando seguente 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"
    
  2. Esegui il comando seguente 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
    
  3. Aggiorna il file settings.json per aggiungere salvato in precedenzaCLIENT_ID come client programmatico.

    {
        "accessSettings": {
          "oauthSettings": {
            "programmaticClients": [
              "CLIENT_ID"
            ]
          },
        },
    }
    
  4. 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"
    
  5. Esegui il comando seguente per preparare un file settings.json.

    cat << EOF > settings.json
    {
    "iap":
          {
            "enabled":true,
            "oauth2ClientId": " ",
            "oauth2ClientSecret": " "
          }
    }
    EOF
    
  6. Esegui il comando seguente 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"
    
  7. Per verificare che l'ID client OAuth non sia impostato, esegui il seguente comando con 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 delle risorse abilitate per IAP esistenti in modo che utilizzino un client OAuth gestito da Google, devi annullare esplicitamente l'impostazione dei campi oauth2_client_id e oauth2_client_secret. Per annullare l'impostazione dei campi, aggiorna i valori a un singolo carattere di spazio vuoto, come mostrato nell'esempio seguente:

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 per IAP, puoi ignorarli.

Per saperne di più sull'utilizzo di Terraform con Google Cloud, consulta la documentazione di Terraform.

Eseguire la migrazione delle risorse Cloud Run abilitate per 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 continuare con i passaggi, assicurati di avere una versione aggiornata di gcloud CLI. Per istruzioni su come installare la gcloud CLI, consulta Installa la gcloud CLI.

  1. Per eseguire l'autenticazione, utilizza Google Cloud CLI ed esegui il comando seguente.

    gcloud auth login
    
  2. Fai clic sull'URL visualizzato ed esegui l'accesso.

  3. Dopo aver eseguito l'accesso, copia il codice di verifica visualizzato e incollalo nella riga di comando.

  4. Esegui il comando seguente per specificare il progetto che contiene le applicazioni che vuoi continuare a proteggere con IAP.

    gcloud config set project PROJECT_ID
    
  5. Esegui il comando seguente 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

    
    gcloud compute backend-services describe BACKEND_SERVICE_NAME \
      --region REGION_NAME \
      --format="value(iap.oauth2ClientId)"
    

    Salva l'ID client dal comando precedente se vuoi consentire l'accesso programmatico.

  6. 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
    
  7. Aggiorna il file settings.yaml e aggiungi l'ID client OAuth 2.0 recuperato in precedenza in programmaticClients, come mostrato nell'esempio.

    accessSettings:
      oauthSettings:
        programmaticClients:
        - CLIENT_ID
    
  8. 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
    
  9. 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=" "
    
  10. Per verificare che l'ID client OAuth non sia impostato, esegui il seguente comando con 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

  1. Esegui il comando seguente 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"
    
  2. Esegui il comando seguente 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
    
  3. Aggiorna il file settings.json per aggiungere salvato in precedenzaCLIENT_ID come client programmatico.

    {
        "accessSettings": {
          "oauthSettings": {
            "programmaticClients": [
              "CLIENT_ID"
            ]
          },
        },
    }
    
  4. 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"
    
  5. Esegui il comando seguente per preparare un file settings.json.

    cat << EOF > settings.json
    {
    "iap":
          {
            "enabled":true,
            "oauth2ClientId": " ",
            "oauth2ClientSecret": " "
          }
    }
    EOF
    
  6. Esegui il comando seguente 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"
    
  7. Per verificare che l'ID client OAuth non sia impostato, esegui il seguente comando con 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"
    

Eseguire la migrazione delle risorse Google Kubernetes Engine abilitate per IAP

Aggiungi il seguente blocco IAP alla definizione di risorsa personalizzata (CRD) BackendConfig . In questo modo, IAP viene abilitato 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 in IAP

Puoi autenticarti in IAP senza dover utilizzare l'API OAuth Admin ritirata utilizzando un JWT dell'account di servizio.

Recuperare un client secret OAuth

Quando crei un client OAuth personalizzato nella Google Cloud console, il client secret viene visualizzato solo in quel momento. Sei responsabile dell'archiviazione sicura di questo secret. Secret Manager è il servizio consigliato per archiviare in modo sicuro i client secret OAuth.

Se utilizzi Secret Manager per archiviare il client secret OAuth, consulta Accedere a una versione del secret per istruzioni su come recuperare il client secret.

Verificare se utilizzi l'API Admin IAP OAuth

Per verificare se il tuo progetto utilizza le API IAP OAuth Admin, consulta Controllare l'utilizzo delle API OAuth Admin.

Alternative all'utilizzo dell'API Admin OAuth

Se devi ottenere le credenziali client OAuth senza utilizzare l'API OAuth, puoi utilizzare i seguenti metodi:

  • Google Cloud console: puoi ottenere manualmente le credenziali OAuth tramite la pagina Credenziali.

  • Secret Manager: puoi archiviare e recuperare il secret utilizzando Secret Manager. Per scoprire come utilizzare Secret Manager con Terraform, consulta google_secret_manager_secret.

  • JWT dell'account di servizio: utilizza i JSON Web Token (JWT) dell'account di servizio per l'autenticazione. Con i JWT dell'account di servizio, non devi utilizzare i client OAuth.