Eseguire la migrazione dall'API Admin OAuth IAP

L'API OAuth Admin di Identity-Aware Proxy (IAP) è stata ritirata. 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 Admin OAuth, consulta Verifica l'utilizzo delle API Admin OAuth. Se il tuo progetto utilizza le API OAuth Admin, devi seguire le istruzioni di migrazione riportate in questo documento oppure puoi utilizzare le alternative all'API OAuth Admin.

Cosa cambierà?

Stiamo ritirando l'API OAuth Admin di IAP, che include le seguenti API e i seguenti gruppi di comandi gcloud CLI 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 viene semplificata, gli errori manuali vengono ridotti e i processi di deployment vengono ottimizzati.

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

Che cosa rimane invariato

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

Questa deprecazione non influisce sui client OAuth configurati manualmente utilizzando l'API Compute Engine, l'API App Engine o la console Google Cloud . Inoltre, non influisce su altre API IAP o gruppi di comandi gcloud CLI (inclusi i canali di rilascio alpha e beta) che gestiscono policy di accesso, impostazioni o forwarding TCP di IAP, come gcloud iap web (ad esempio get-iam-policy e remove-iam-policy-binding), gcloud iap settings e gcloud iap tcp, perché questi comandi utilizzano l'API IdentityAwareProxyAdminService anziché l'API IdentityAwareProxyOAuthService deprecata.

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

Controlla l'utilizzo delle API OAuth Admin di IAP

Per verificare se il tuo progetto utilizza le API Admin OAuth di IAP, segui questi passaggi:

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

    Vai a Utilizzo dell'API IAP

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

  3. Nell'elenco Seleziona grafici, seleziona Traffico per metodo API, quindi fai clic su Ok.

  4. Nella sezione Metodi, cerca i 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 Admin OAuth 2.0 di IAP, utilizzata per creare un client OAuth 2.0 di IAP, è deprecata. IAP ora 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 per IAP agli utenti della stessa organizzazione quando accedono a queste applicazioni tramite un browser.

Con il ritiro dell'API Admin OAuth 2.0 di Identity-Aware Proxy (IAP), non puoi più utilizzare questa API per creare o gestire client OAuth. I client OAuth creati prima di questa deprecazione non verranno invalidati. Puoi continuare a utilizzare i client OAuth che hai creato in precedenza e gestirli utilizzando la console Google Cloud .

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 richieste modifiche alle applicazioni. Tuttavia, se i tuoi script di automazione o gli strumenti di Infrastructure as Code (IaC) utilizzano l'API Admin OAuth 2.0 di IAP per configurare nuovi client o recuperare i secret client per i client esistenti, devi aggiornare gli script in modo che non utilizzino l'API Admin OAuth 2.0 di IAP.

La scelta di continuare a utilizzare il client gestito dall'utente esistente o di passare all'opzione gestita da Google dipende dai requisiti di branding e di accesso esterno. Per un'analisi dettagliata di tutte le differenze funzionali, consulta la tabella di confronto dei 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 console Google Cloud per creare l'ID client. Per saperne di più sui client OAuth personalizzati, consulta Personalizza 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 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

  • Aggiorna gli script di automazione

    Se utilizzi Terraform, gcloud CLI (gcloud iap oauth-brands o gcloud iap oauth-clients, inclusi alpha e beta) 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 precreato o il client OAuth gestito da Google con IAP.

  • Configura 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 i client OAuth 2.0 nella lista consentita.

Esegui 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.

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.

  1. Utilizza Google Cloud CLI per l'autenticazione.

    gcloud auth login
    
  2. Fai clic sull'URL visualizzato e accedi.

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

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

    gcloud config set project PROJECT_ID
    
  5. Esegui questo comando per recuperare l'ID client OAuth 2.0 configurato.

    gcloud app describe --format="value(iap.oauth2ClientId)"
    

    Salva l'ID client del 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 tue app, esegui questo comando.

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

API

  1. 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"
    
  2. 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
    
  3. Aggiorna il file settings.json per aggiungere CLIENT_ID salvato in precedenza come client di pubblicità programmatica.

    {
        "accessSettings": {
          "oauthSettings": {
            "programmaticClients": [
              "CLIENT_ID"
            ]
          },
        },
    }
    
  4. Esegui questo comando per aggiornare le impostazioni di 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 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"
    

Esegui 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 è abilitato IAP ed è configurato un client OAuth 2.0.

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.

  1. Utilizza Google Cloud CLI per l'autenticazione.

    gcloud auth login
    
  2. Fai clic sull'URL visualizzato e accedi.

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

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

    gcloud config set project PROJECT_ID
    
  5. 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

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

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

  6. Per concedere al client OAuth 2.0 l'accesso programmatico, esegui un'operazione di lettura-aggiornamento-scrittura sull'API delle impostazioni di 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 tue applicazioni, esegui questo comando: Per cancellare l'ID client OAuth e il 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 confermare 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 comando gcloud compute backend-services update 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. Una migrazione riuscita è indicata quando il campo oauth2ClientId mostra un singolo spazio (' ') e il campo oauth2ClientSecret contiene l'hash SHA256 (36a9e7f1c95b82ffb99743e0c5c4ce95d83c9a430aac59f84ef3cbfab6145068) di un singolo spazio.

API

  1. 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"
    
  2. 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
    
  3. Aggiorna il file settings.json per aggiungere CLIENT_ID salvato in precedenza come cliente di pubblicità programmatica.

    {
        "accessSettings": {
          "oauthSettings": {
            "programmaticClients": [
              "CLIENT_ID"
            ]
          },
        },
    }
    
  4. Esegui questo comando per aggiornare le impostazioni di 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 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"
    
  7. Per verificare che l'ID client OAuth non sia impostato, esegui il seguente comando con scope globale o regionale. Dopo aver eseguito il comando, controlla l'output per assicurarti che il campo dell'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 per utilizzare 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 con 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 utilizzi nuove risorse abilitate per IAP, puoi ignorarli.

Per ulteriori informazioni sull'utilizzo di Terraform con Google Cloud, consulta la documentazione di Terraform.

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

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

    gcloud auth login
    
  2. Fai clic sull'URL visualizzato e accedi.

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

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

    gcloud config set project PROJECT_ID
    
  5. 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

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

    Salva l'ID client del 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 scope 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 scope globale o regionale. Dopo aver eseguito il comando, controlla l'output per assicurarti che il campo dell'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 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"
    
  2. 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
    
  3. Aggiorna il file settings.json per aggiungere CLIENT_ID salvato in precedenza come cliente di pubblicità programmatica.

    {
        "accessSettings": {
          "oauthSettings": {
            "programmaticClients": [
              "CLIENT_ID"
            ]
          },
        },
    }
    
  4. Esegui questo comando per aggiornare le impostazioni di 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 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"
    
  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 dell'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"
    

Esegui 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

Utilizza un JWT dell'account di servizio per l'autenticazione in IAP

Puoi eseguire l'autenticazione in IAP senza dover utilizzare l'API Admin OAuth deprecata utilizzando un JWT del service account.

Ottieni un client secret OAuth

Quando crei un client OAuth personalizzato nella console Google Cloud , il client secret viene visualizzato solo in quel momento. Sei responsabile della conservazione 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 Accedi a una versione del secret per istruzioni su come ottenere il client secret.

Verifica se utilizzi l'API Admin IAP OAuth

Per verificare se il tuo progetto utilizza le API OAuth Admin di IAP, consulta Verifica 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 degli account di servizio: utilizza i token web JSON (JWT) degli account di servizio per l'autenticazione. Con i JWT dei account di servizio, non è necessario utilizzare i client OAuth.