Migra desde la API de OAuth Admin de IAP

La API de OAuth de Identity-Aware Proxy (IAP) para administradores ya no está disponible. En esta guía, se muestra cómo puedes migrar de forma opcional los clientes de OAuth existentes a clientes de OAuth administrados por Google. Si no usas la API de Admin de OAuth de IAP, este cambio no te afectará.

Para verificar si tu proyecto usa las APIs de Admin de OAuth, consulta Verifica el uso de las APIs de Admin de OAuth. Si tu proyecto usa las APIs de OAuth Admin, debes seguir las instrucciones de migración de este documento o puedes usar alternativas a la API de OAuth Admin.

¿Qué aspectos cambiarán?

Dejaremos de usar la API de OAuth de IAP, que incluye las siguientes APIs y grupos de comandos de gcloud CLI para la administración manual de clientes de OAuth y marcas:

Ya no puedes crear ni administrar clientes de OAuth personalizados con la API de administración de OAuth de IAP. En lugar de administrar manualmente los clientes de OAuth 2.0, IAP usa un cliente de OAuth administrado por Google. Esto simplifica la administración de clientes de OAuth, reduce los errores manuales y agiliza los procesos de implementación.

Para seguir proporcionando una marca personalizada, te recomendamos que configures clientes de OAuth personalizados.

Qué cosas seguirán iguales

Si no usas la API de Admin de OAuth de IAP, este cambio no te afectará.

Esta baja no afecta a los clientes de OAuth que configuras de forma manual con la API de Compute Engine, la API de App Engine o la consola de Google Cloud . Tampoco afecta a otras APIs de IAP ni a los grupos de comandos de gcloud CLI (incluidos sus segmentos alpha y beta) que administran las políticas de acceso, la configuración o el reenvío de TCP de IAP, como gcloud iap web (por ejemplo, get-iam-policy y remove-iam-policy-binding), gcloud iap settings y gcloud iap tcp, porque esos comandos usan la API de IdentityAwareProxyAdminService en lugar de la API de IdentityAwareProxyOAuthService obsoleta.

Puedes seguir creando configuraciones nuevas de marcas y clientes de OAuth, y administrarlas con la consola de Google Cloud . No es necesario que migres tus clientes de OAuth existentes; puedes seguir usándolos y administrándolos a través de la consola deGoogle Cloud en lugar de la API de administración de OAuth de IAP.

Verifica el uso de las APIs de administrador de OAuth de IAP

Para verificar si tu proyecto usa las APIs de OAuth de administrador de IAP, haz lo siguiente:

  1. En la consola de Google Cloud , ve a la página Uso de la API de IAP.

    Ir a Uso de la API de IAP

  2. Selecciona el proyecto en el que deseas verificar el uso de la API de Admin de OAuth de IAP.

  3. En la lista Seleccionar gráficos, selecciona Tráfico por método de API y, luego, haz clic en Aceptar.

  4. En la sección Métodos, busca los métodos con el prefijo google.cloud.iap.v1.IdentityAwareProxyOAuthService, que indica que el proyecto usa la API de Admin de OAuth de IAP.

Descripción detallada

A partir del 22 de enero de 2025, la API de Admin de OAuth 2.0 de IAP, que se usa para crear un cliente de OAuth 2.0 de IAP, dejará de estar disponible. IAP ahora usa un cliente de OAuth administrado por Google para el acceso al navegador de forma predeterminada o cuando no se configura de forma explícita ningún cliente de OAuth 2.0. El cliente de OAuth 2.0 administrado por Google restringe el acceso a las aplicaciones habilitadas para IAP a los usuarios de la misma organización cuando acceden a esas aplicaciones a través de un navegador.

Con la baja de la API de Admin de OAuth 2.0 de Identity-Aware Proxy (IAP), ya no puedes usar esta API para crear o administrar clientes de OAuth. Los clientes de OAuth creados antes de esta baja no se invalidarán. Puedes seguir usando los clientes de OAuth que creaste antes y administrarlos con la consola de Google Cloud .

Si tienes aplicaciones configuradas con clientes de OAuth creados con la API de Admin de IAP 2.0 o de otra manera, esas aplicaciones seguirán funcionando. No se requieren cambios en las aplicaciones. Sin embargo, si tus secuencias de comandos de automatización o herramientas de infraestructura como código (IaC) usan la API de Admin de OAuth 2.0 de IAP para configurar clientes nuevos o recuperar secretos de clientes existentes, debes actualizar las secuencias de comandos para que no usen la API de Admin de OAuth 2.0 de IAP.

Si sigues usando tu cliente administrado por el usuario existente o consideras cambiar a la opción administrada por Google, dependerá de tus requisitos de desarrollo de la marca y acceso externo. Para obtener un desglose detallado de todas las diferencias funcionales, consulta la tabla de comparación de clientes de OAuth personalizados y administrados por Google. Si tu aplicación requiere un ID de cliente personalizado para la personalización de la marca o el acceso externo, usa la consola de Google Cloud para crear el ID de cliente. Para obtener más información sobre los clientes de OAuth personalizados, consulta Personaliza una configuración de OAuth para habilitar IAP.

Para aprender a configurar clientes de OAuth 2.0 administrados por Google para tus aplicaciones, consulta Acceso programático.

Si tienes un requisito que no cumple el cliente de OAuth 2.0 administrado por Google, puedes compartir un solo cliente de OAuth con varias aplicaciones de IAP, lo que elimina la necesidad de crear un cliente de forma manual para cada aplicación nueva.

Acciones necesarias

  • Actualiza las secuencias de comandos de automatización

    Si usas Terraform, gcloud CLI (gcloud iap oauth-brands o gcloud iap oauth-clients, incluidos alpha y beta) o alguna otra herramienta para automatizar la configuración de IAP, y usas la API de Admin de OAuth 2.0 de IAP, debes actualizar las secuencias de comandos de automatización para usar un cliente creado previamente o el cliente de OAuth administrado por Google con IAP.

  • Configura el acceso programático para las aplicaciones que usan los clientes de OAuth 2.0 administrados por Google

    Si ya tienes algunas aplicaciones protegidas por IAP y planeas migrarlas con el cliente de OAuth 2.0 administrado por Google, puedes configurar el acceso programático para estas aplicaciones agregando clientes de OAuth 2.0 a la lista de entidades permitidas.

Migra recursos habilitados para IAP

Para migrar tus recursos y usar el cliente de OAuth 2.0 administrado por Google, sigue los pasos para el tipo de recurso, como un recurso de Compute Engine, que deseas migrar.

Migra recursos de App Engine habilitados para IAP

Completa los pasos de esta sección para migrar los recursos de App Engine en los que IAP está habilitado y se configuró un cliente de OAuth 2.0.

gcloud

Antes de continuar con los pasos, asegúrate de tener una versión actualizada de gcloud CLI. Para obtener instrucciones sobre cómo instalar gcloud CLI, consulta Instala gcloud CLI.

  1. Usa Google Cloud CLI para autenticarte.

    gcloud auth login
    
  2. Haz clic en la URL que aparece y accede.

  3. Después de acceder, copia el código de verificación que aparece y pégalo en la línea de comandos.

  4. Ejecuta el siguiente comando para especificar el proyecto que contiene las aplicaciones que quieres seguir protegiendo con IAP.

    gcloud config set project PROJECT_ID
    
  5. Ejecuta el siguiente comando para recuperar el ID de cliente de OAuth 2.0 configurado.

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

    Guarda el ID de cliente del comando anterior si deseas permitir el acceso programático.

  6. Para incluir el cliente de OAuth 2.0 en la lista de entidades permitidas para el acceso programático, realiza una operación de lectura, actualización y escritura en la API de configuración de IAP.

    gcloud iap settings get --resource-type=app-engine --project=$PROJECT > settings.yaml
    
  7. Actualiza el archivo settings.yaml y agrega el ID de cliente de OAuth 2.0 recuperado anteriormente en programmaticClients, como se muestra en el siguiente ejemplo.

    accessSettings:
      oauthSettings:
        programmaticClients:
        - CLIENT_ID
    
  8. Aplica la configuración nueva en la aplicación de App Engine

    gcloud iap settings set settings.yaml --resource-type=app-engine --project=PROJECT_ID
    
  9. Para migrar tus apps, ejecuta el siguiente comando.

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

API

  1. Ejecuta el siguiente comando para recuperar el ID de cliente de OAuth 2.0 configurado.

    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. Ejecuta el siguiente comando para recuperar la configuración de IAP existente en un archivo 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. Actualiza el archivo settings.json para agregar el CLIENT_ID guardado anteriormente como cliente programático.

    {
        "accessSettings": {
          "oauthSettings": {
            "programmaticClients": [
              "CLIENT_ID"
            ]
          },
        },
    }
    
  4. Ejecuta el siguiente comando para actualizar la configuración de 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. Ejecuta el siguiente comando para preparar un archivo settings.json.

      cat << EOF > settings.json
      {
      "iap":
          {
            "enabled":true
          }
      }
      EOF
    
  6. Ejecuta el siguiente comando para migrar tus apps.

      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 recursos de Compute Engine habilitados para IAP

Completa los pasos de esta sección para migrar los recursos de Compute Engine en los que IAP está habilitado y se configuró un cliente de OAuth 2.0.

gcloud

Antes de continuar con los pasos, asegúrate de tener una versión actualizada de gcloud CLI. Para obtener instrucciones sobre cómo instalar gcloud CLI, consulta Instala gcloud CLI.

  1. Usa Google Cloud CLI para autenticarte.

    gcloud auth login
    
  2. Haz clic en la URL que aparece y accede.

  3. Después de acceder, copia el código de verificación que aparece y pégalo en la línea de comandos.

  4. Ejecuta el siguiente comando para especificar el proyecto que contiene las aplicaciones que quieres seguir protegiendo con IAP.

    gcloud config set project PROJECT_ID
    
  5. Ejecuta el siguiente comando para recuperar el ID de cliente de OAuth 2.0 configurado.

    Alcance global

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

    Alcance regional

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

    Guarda el ID de cliente del comando anterior si quieres permitir el acceso programático.

  6. Para otorgar acceso programático al cliente de OAuth 2.0, realiza una operación de lectura, actualización y escritura en la API de configuración de IAP.

    Alcance global

    gcloud iap settings get \
        --resource-type=compute \
        --project=PROJECT_ID \
        --service=BACKEND_SERVICE_NAME > settings.yaml
    

    Alcance regional

    gcloud iap settings get \
        --resource-type=compute \
        --project=PROJECT_ID \
        --service=BACKEND_SERVICE_NAME \
        --region=REGION_NAME > settings.yaml
    
  7. Actualiza el archivo settings.yaml y agrega el ID de cliente de OAuth 2.0 que recuperaste antes en programmaticClients, como se muestra en el siguiente ejemplo:

    accessSettings:
      oauthSettings:
        programmaticClients:
        - CLIENT_ID
    
  8. Aplica la configuración nueva en la aplicación de Compute Engine:

    Alcance global

    gcloud iap settings set settings.yaml \
        --resource-type=compute \
        --project=PROJECT_ID \
        --service=BACKEND_SERVICE_NAME

    Alcance regional

    gcloud iap settings set settings.yaml \
        --resource-type=compute \
        --project=PROJECT_ID \
        --service=BACKEND_SERVICE_NAME \
        --region=REGION_NAME
  9. Para migrar tus aplicaciones, ejecuta el siguiente comando. Para borrar el ID de cliente de OAuth y el secreto de OAuth, pasa un solo espacio entre comillas (" ") en el comando. El servicio de backend usa el cliente de OAuth administrado por Google.

    Alcance global

    gcloud compute backend-services update BACKEND_SERVICE_NAME \
        --global \
        --iap=enabled,oauth2-client-id=" ",oauth2-client-secret=" "
    

    Alcance regional

    gcloud compute backend-services update BACKEND_SERVICE_NAME \
        --region REGION_NAME \
        --iap=enabled,oauth2-client-id=" ",oauth2-client-secret=" "
    
  10. Para confirmar que quitaste el ID de cliente de OAuth y el secreto de cliente de OAuth, y que el servicio de backend usa un cliente de OAuth administrado por Google, ejecuta gcloud compute backend-services describe. Para borrar estos campos durante la migración, el comando gcloud compute backend-services update usa un solo espacio (" "), que la API de Compute Engine interpreta como una instrucción para quitar los valores oauth2ClientId y oauth2ClientSecret.

    Alcance global

    gcloud compute backend-services describe BACKEND_SERVICE_NAME \
        --global
    

    Alcance regional

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

    Después de ejecutar el comando describe, examina la sección iap del resultado. Se indica una migración correcta cuando el campo oauth2ClientId muestra un solo espacio (' ') y el campo oauth2ClientSecret contiene el hash SHA256 (36a9e7f1c95b82ffb99743e0c5c4ce95d83c9a430aac59f84ef3cbfab6145068) de un solo espacio.

API

  1. Ejecuta el siguiente comando para recuperar el ID de cliente de OAuth 2.0 configurado.

    Alcance global

    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"
    

    Alcance regional

    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. Ejecuta el siguiente comando para recuperar la configuración de IAP existente en un archivo settings.json.

    Alcance global

    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
    

    Alcance regional

    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. Actualiza el archivo settings.json para agregar el CLIENT_ID guardado anteriormente como cliente programático.

    {
        "accessSettings": {
          "oauthSettings": {
            "programmaticClients": [
              "CLIENT_ID"
            ]
          },
        },
    }
    
  4. Ejecuta el siguiente comando para actualizar la configuración de IAP.

    Alcance global

    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"
    

    Alcance regional

    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. Ejecuta el siguiente comando para preparar un archivo settings.json.

    cat << EOF > settings.json
    {
    "iap":
          {
            "enabled":true,
            "oauth2ClientId": " ",
            "oauth2ClientSecret": " "
          }
    }
    EOF
    
  6. Ejecuta el siguiente comando para migrar tus recursos de IAP.

    Alcance global

    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"
    

    Alcance regional

    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. Para confirmar que el ID de cliente de OAuth no esté configurado, ejecuta el siguiente comando de alcance global o regional. Después de ejecutar el comando, verifica el resultado para asegurarte de que el campo de ID de cliente de OAuth esté vacío.

    Alcance global

    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"
    

    Alcance regional

    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

Si migras recursos existentes habilitados para IAP para usar un cliente de OAuth administrado por Google, debes anular de forma explícita la configuración de los campos oauth2_client_id y oauth2_client_secret. Para anular la configuración de los campos, actualiza los valores a un solo carácter de espacio en blanco, como se muestra en el siguiente ejemplo:

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 = " "
  }
}

Los campos oauth2_client_id y oauth2_client_secret son opcionales y, si trabajas con recursos nuevos habilitados para IAP, puedes ignorarlos.

Para obtener más información sobre el uso de Terraform con Google Cloud, consulta la documentación de Terraform.

Migra recursos de Cloud Run habilitados para IAP

Completa los pasos de esta sección para migrar los recursos de Cloud Run en los que IAP está habilitado y se configuró un cliente de OAuth 2.0.

gcloud

Antes de continuar con los pasos, asegúrate de tener una versión actualizada de gcloud CLI. Para obtener instrucciones sobre cómo instalar gcloud CLI, consulta Instala gcloud CLI.

  1. Para autenticarte, usa Google Cloud CLI y ejecuta el siguiente comando.

    gcloud auth login
    
  2. Haz clic en la URL que aparece y accede.

  3. Después de acceder, copia el código de verificación que aparece y pégalo en la línea de comandos.

  4. Ejecuta el siguiente comando para especificar el proyecto que contiene las aplicaciones que quieres seguir protegiendo con IAP.

    gcloud config set project PROJECT_ID
    
  5. Ejecuta el siguiente comando para recuperar el ID de cliente de OAuth 2.0 configurado.

    Alcance global

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

    Alcance regional

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

    Guarda el ID de cliente del comando anterior si quieres permitir el acceso programático.

  6. Para agregar el cliente de OAuth 2.0 a la lista de entidades permitidas para el acceso programático, realiza una operación de lectura, actualización y escritura en la API de configuración de IAP.

    Alcance global

    gcloud iap settings get \
        --resource-type=compute \
        --project=PROJECT_ID \
        --service=BACKEND_SERVICE_NAME > settings.yaml
    

    Alcance regional

    gcloud iap settings get \
        --resource-type=compute \
        --project=PROJECT_ID \
        --service=BACKEND_SERVICE_NAME \
        --region=REGION_NAME > settings.yaml
    
  7. Actualiza el archivo settings.yaml y agrega el ID de cliente de OAuth 2.0 recuperado anteriormente en programmaticClients, como se muestra en el ejemplo.

    accessSettings:
      oauthSettings:
        programmaticClients:
        - CLIENT_ID
    
  8. Aplica la configuración nueva en la aplicación de Compute Engine.

    Alcance global

    gcloud iap settings set settings.yaml \
        --resource-type=compute \
        --project=PROJECT_ID \
        --service=BACKEND_SERVICE_NAME
    

    Alcance regional

    gcloud iap settings set settings.yaml \
        --resource-type=compute \
        --project=PROJECT_ID \
        --service=BACKEND_SERVICE_NAME \
        --region=REGION_NAME
    
  9. Para migrar tus recursos, ejecuta el comando con alcance global o regional.

    Alcance global

    gcloud compute backend-services update BACKEND_SERVICE_NAME \
        --global \
        --iap=enabled,oauth2-client-id=" ",oauth2-client-secret=" "
    

    Alcance regional

    gcloud compute backend-services update BACKEND_SERVICE_NAME \
        --region REGION_NAME \
        --iap=enabled,oauth2-client-id=" ",oauth2-client-secret=" "
    
  10. Para confirmar que el ID de cliente de OAuth no esté configurado, ejecuta el siguiente comando de alcance global o regional. Después de ejecutar el comando, verifica el resultado para asegurarte de que el campo de ID de cliente de OAuth esté vacío.

    Alcance global

    gcloud compute backend-services describe BACKEND_SERVICE_NAME \
        --global
    

    Alcance regional

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

API

  1. Ejecuta el siguiente comando para recuperar el ID de cliente de OAuth 2.0 configurado.

    Alcance global

    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"
    

    Alcance regional

    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. Ejecuta el siguiente comando para recuperar la configuración de IAP existente en un archivo settings.json.

    Alcance global

    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
    

    Alcance regional

    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. Actualiza el archivo settings.json para agregar el CLIENT_ID guardado anteriormente como cliente programático.

    {
        "accessSettings": {
          "oauthSettings": {
            "programmaticClients": [
              "CLIENT_ID"
            ]
          },
        },
    }
    
  4. Ejecuta el siguiente comando para actualizar la configuración de IAP.

    Alcance global

    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"
    

    Alcance regional

    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. Ejecuta el siguiente comando para preparar un archivo settings.json.

    cat << EOF > settings.json
    {
    "iap":
          {
            "enabled":true,
            "oauth2ClientId": " ",
            "oauth2ClientSecret": " "
          }
    }
    EOF
    
  6. Ejecuta el siguiente comando para migrar tus recursos.

    Alcance global

    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"
    

    Alcance regional

    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. Para confirmar que no se estableció el ID de cliente de OAuth, ejecuta el siguiente comando de alcance global o regional. Después de ejecutar el comando, verifica el resultado para asegurarte de que el campo de ID de cliente de OAuth esté vacío.

    Alcance global

    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"
    

    Alcance regional

    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 recursos de Google Kubernetes Engine habilitados para IAP

Agrega el siguiente bloque de IAP a la definición de recurso personalizado (CRD) de BackendConfig. Esto habilita IAP con el cliente de OAuth 2.0 administrado por Google.

apiVersion: cloud.google.com/v1
kind: BackendConfig
metadata:
  name: config-default
  namespace: my-namespace
spec:
  iap:
    enabled: true

Usa un JWT de cuenta de servicio para autenticarte en IAP

Puedes autenticarte en IAP sin tener que usar la API de Admin de OAuth obsoleta con un JWT de cuenta de servicio.

Obtén un secreto del cliente de OAuth

Cuando creas un cliente de OAuth personalizado en la consola de Google Cloud , el secreto del cliente solo se muestra en ese momento. Eres responsable de almacenar este secreto de forma segura. Secret Manager es el servicio recomendado para almacenar de forma segura los secretos de cliente de OAuth.

Si usas Secret Manager para almacenar el secreto del cliente de OAuth, consulta Accede a una versión de un secreto para obtener instrucciones sobre cómo obtener el secreto del cliente.

Verifica si usas la API de Admin de OAuth de IAP

Para verificar si tu proyecto usa las APIs de OAuth Admin de IAP, consulta Verifica el uso de las APIs de OAuth Admin.

Alternativas al uso de la API de Admin de OAuth

Si necesitas obtener credenciales de cliente de OAuth sin usar la API de OAuth, puedes usar los siguientes métodos:

  • Google Cloud console: Puedes obtener credenciales de OAuth de forma manual a través de la página Credenciales.

  • Secret Manager: Puedes almacenar y recuperar el Secret con Secret Manager. Para aprender a usar Secret Manager con Terraform, consulta google_secret_manager_secret.

  • JWT de cuenta de servicio: Usa tokens web JSON (JWT) de cuenta de servicio para la autenticación. Con los JWT de cuentas de servicio, no necesitas usar clientes de OAuth.