Personaliza una configuración de OAuth para habilitar IAP

En esta página, se explica cuándo y cómo personalizar una configuración de OAuth para Identity-Aware Proxy (IAP).

IAP usa un cliente de OAuth administrado por Google para autenticar a los usuarios.

El cliente de OAuth administrado por Google restringe el acceso a los usuarios de la misma organización cuando acceden a aplicaciones habilitadas para IAP a través de un navegador.

Cuándo usar una configuración de OAuth personalizada

Debes usar una configuración de OAuth personalizada para hacer lo siguiente:

  • Para permitir el acceso a aplicaciones habilitadas para IAP a usuarios ajenos a la organización.
  • Para mostrar tu propia información de marca durante la autenticación.
  • Para habilitar el acceso programático a tu aplicación.

Cuando personalices tu configuración de OAuth, debes configurar la pantalla de consentimiento de OAuth. Esto requiere que la información de desarrollo de la marca de tu aplicación pase por el proceso de verificación de Google. Para obtener más información sobre el proceso de verificación, consulta Configura tu pantalla de consentimiento de OAuth.

Eres responsable de crear y administrar las credenciales de un cliente de OAuth personalizado. Esto incluye almacenar el secreto del cliente de forma segura y compartirlo con los usuarios autorizados cuando sea necesario.

Comparación entre el cliente de OAuth administrado por Google y el cliente de OAuth personalizado

En la siguiente tabla, se muestra una comparación entre el cliente de OAuth administrado por Google y un cliente de OAuth personalizado.

Cliente de OAuth administrado por Google Cliente de OAuth personalizado
Usuarios Solo para uso interno Socios internos y externos
Brand La marca de Google Cloud Marca propiedad del cliente
Configuración de OAuth Configuración de Google Configuración del cliente
Credenciales de OAuth Administrado por Google Administrada por el cliente
Acceso de aplicaciones Solo flujo de navegador Flujo del navegador y acceso programático

Habilita IAP con una configuración de cliente de OAuth personalizada

App Engine

Console

Archivo de inclusión dinámico

Si aún no has configurado la pantalla de consentimiento de OAuth para tu proyecto, se te solicitará hacerlo. Para configurar la pantalla de consentimiento de OAuth, consulta Configura la pantalla de consentimiento de OAuth.

Configura el acceso de IAP

  1. Ve a la página Identity-Aware Proxy.
    Ir a la página Identity-Aware Proxy
  2. Selecciona el proyecto que deseas proteger con IAP.
  3. Selecciona la casilla de verificación junto al recurso al que deseas otorgar acceso.
  4. En el panel de la derecha, haz clic en Agregar principal.
  5. En el cuadro de diálogo Agregar principales que aparece, ingresa las direcciones de correo electrónico de los grupos o personas a quienes se debe asignar la función Usuario de app web protegida con IAP para el proyecto.

    Los siguientes tipos de cuentas principales pueden tener este rol:

    • Cuenta de Google: usuario@gmail.com
    • Grupo de Google: administradores@googlegroups.com
    • Cuenta de servicio: servidor@ejemplo.gserviceaccount.com
    • Dominio de Google Workspace: example.com

    Asegúrate de agregar una Cuenta de Google a la que tengas acceso.

  6. En la lista desplegable Funciones, selecciona Cloud IAP > Usuario de aplicación web protegida con IAP.
  7. Haz clic en Guardar.

Activa IAP

  1. En la página Identity-Aware Proxy, en APPLICATIONS, busca la aplicación a la que deseas restringir el acceso. Para activar IAP para un recurso,
  2. En la ventana Activar IAP que aparece, haz clic en Activar para confirmar que deseas que IAP proteja tu recurso. Después de activar IAP, se requieren credenciales de acceso para todas las conexiones a tu balanceador de cargas. Solo las cuentas con la función Usuario de la aplicación web protegida con IAP en el proyecto tendrán acceso.

gcloud

Antes de configurar tu IAP y tu proyecto, necesitas una versión actualizada de gcloud CLI. Para obtener instrucciones sobre cómo instalar gcloud CLI, consulta Instala la CLI de gcloud.

  1. Para autenticarte, usa Google Cloud CLI y ejecuta el siguiente comando.
    gcloud auth login
  2. Para acceder, sigue la URL que aparece.
  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 el recurso que deseas proteger con IAP.
    gcloud config set project PROJECT_ID
  5. Sigue las instrucciones que se indican en Cómo crear clientes de OAuth para IAP para configurar la pantalla de consentimiento de OAuth y crear el cliente de OAuth.
  6. Guarda el ID y el secreto de cliente de OAuth.
  7. Para habilitar IAP, ejecuta el siguiente comando.
    gcloud iap web enable \
        --oauth2-client-id=CLIENT_ID \
        --oauth2-client-secret=CLIENT_SECRET \
        --resource-type=app-engine

Después de habilitar IAP, puedes usar gcloud CLI para modificar la política de acceso de IAP con el rol de IAM roles/iap.httpsResourceAccessor. Obtén más información sobre cómo administrar funciones y permisos.

API

  1. Sigue las instrucciones que se indican en Cómo crear clientes de OAuth para IAP para configurar la pantalla de consentimiento de OAuth y crear el cliente de OAuth.

  2. Guarda el ID y el secreto de cliente de OAuth.

  3. Ejecuta el siguiente comando para preparar un archivo settings.json.

    cat << EOF > settings.json
    {
    "iap":
      {
        "enabled":true,
        "oauth2ClientId" : CLIENT_ID,
        "oauth2ClientSecret" : CLIENT_SECRET,
      }
    }
    EOF
    

  4. Ejecuta el siguiente comando para habilitar la 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://appengine.googleapis.com/v1/apps/PROJECT_ID?updateMask=iap"
    

Después de habilitar IAP, puedes usar Google Cloud CLI para modificar la política de acceso de IAP con el rol de IAM roles/iap.httpsResourceAccessor. Obtén más información sobre cómo administrar funciones y permisos.

Compute Engine

Console

Si aún no has configurado la pantalla de consentimiento de OAuth para tu proyecto, se te solicitará hacerlo. Para configurar la pantalla de consentimiento de OAuth, consulta Configura la pantalla de consentimiento de OAuth.

Configura el acceso de IAP

  1. Ve a la página Identity-Aware Proxy.
    Ir a la página Identity-Aware Proxy
  2. Selecciona el proyecto que deseas proteger con IAP.
  3. Selecciona la casilla de verificación junto al recurso al que deseas otorgar acceso.

    Si no ves un recurso, asegúrate de que se haya creado y de que el controlador de entrada de Compute Engine de BackendConfig esté sincronizado.

    Para verificar que el servicio de backend esté disponible, ejecuta el siguiente comando de gcloud:

    gcloud compute backend-services list
  4. En el panel de la derecha, haz clic en Agregar principal.
  5. En el cuadro de diálogo Agregar principales que aparece, ingresa las direcciones de correo electrónico de los grupos o personas a quienes se debe asignar la función Usuario de app web protegida con IAP para el proyecto.

    Los siguientes tipos de cuentas principales pueden tener este rol:

    • Cuenta de Google: usuario@gmail.com
    • Grupo de Google: administradores@googlegroups.com
    • Cuenta de servicio: servidor@ejemplo.gserviceaccount.com
    • Dominio de Google Workspace: example.com

    Asegúrate de agregar una Cuenta de Google a la que tengas acceso.

  6. En la lista desplegable Funciones, selecciona Cloud IAP > Usuario de aplicación web protegida con IAP.
  7. Haz clic en Guardar.

gcloud

Antes de configurar tu IAP y tu proyecto, necesitas una versión actualizada de la gcloud CLI. Para obtener instrucciones sobre cómo instalar gcloud CLI, consulta Instala la CLI de gcloud.

  1. Para autenticarte, usa Google Cloud CLI y ejecuta el siguiente comando.
    gcloud auth login
  2. Para acceder, sigue la URL que aparece.
  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 el recurso que deseas proteger con IAP.
    gcloud config set project PROJECT_ID
  5. Sigue las instrucciones que se indican en Cómo crear clientes de OAuth para IAP para configurar la pantalla de consentimiento de OAuth y crear el cliente de OAuth.
  6. Guarda el ID y el secreto de cliente de OAuth.
  7. Para habilitar la IAP, ejecuta el comando con alcance global o regional.

    Alcance global
    gcloud compute backend-services update BACKEND_SERVICE_NAME \
        --global \
        --iap=enabled,oauth2-client-id=CLIENT_ID,oauth2-client-secret=CLIENT_SECRET
    Alcance regional
    gcloud compute backend-services update BACKEND_SERVICE_NAME \
        --region REGION_NAME \
        --iap=enabled,oauth2-client-id=CLIENT_ID,oauth2-client-secret=CLIENT_SECRET
        

Después de habilitar IAP, puedes usar gcloud CLI para modificar la política de acceso de IAP con el rol de IAM roles/iap.httpsResourceAccessor. Obtén más información sobre cómo administrar funciones y permisos.

API

  1. Sigue las instrucciones que se indican en Cómo crear clientes de OAuth para IAP para configurar la pantalla de consentimiento de OAuth y crear el cliente de OAuth.

  2. Guarda el ID y el secreto de cliente de OAuth.

  3. Ejecuta el siguiente comando para preparar un archivo settings.json.

    cat << EOF > settings.json
    {
    "iap":
      {
        "enabled":true
      }
    }
    EOF
    

  4. Ejecuta el siguiente comando para habilitar la 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://compute.googleapis.com/compute/v1/projects/PROJECT_ID/REGION/backendServices/BACKEND_SERVICE_NAME"
    

Después de habilitar IAP, puedes usar gcloud CLI para modificar la política de acceso de IAP con el rol de IAM roles/iap.httpsResourceAccessor. Obtén más información sobre cómo administrar funciones y permisos.

Cloud Run

Console

Si aún no configuraste la pantalla de consentimiento de OAuth de tu proyecto, se te solicitará hacerlo. Para configurarla, consulta Configura tu pantalla de consentimiento de OAuth.

Configura el acceso de IAP

  1. Abre la página Identity-Aware Proxy.
    Ir a Identity-Aware Proxy
  2. Selecciona el proyecto que deseas proteger con IAP.
  3. En Aplicaciones, selecciona la casilla de verificación junto al servicio de backend del balanceador de cargas al que deseas agregar miembros.
  4. En el panel de la derecha, haz clic en Agregar miembro.
  5. En el cuadro de diálogo Agregar miembros, ingresa las cuentas de los grupos o personas que deben tener el rol Usuario de app web protegida con IAP para el proyecto. Las siguientes cuentas pueden ser miembros:

    • Cuenta de Google: usuario@gmail.com. También puede ser una cuenta de Google Workspace, como usuario@google.com o algún otro dominio de Google Workspace.
    • Grupo de Google: administradores@googlegroups.com
    • Cuenta de servicio: servidor@ejemplo.gserviceaccount.com
    • Dominio de Google Workspace: example.com
  6. En la lista Roles, selecciona Cloud IAP > Usuario de aplicación web protegida con IAP.

  7. Haz clic en Guardar.

Activa IAP

  1. En la página de IAP, en Aplicaciones, busca el servicio de backend del balanceador de cargas al que deseas restringir el acceso. Haz clic en el botón de activación IAP para habilitar IAP en un recurso.
  2. En la ventana Activar IAP que aparece, haz clic en Activar para confirmar que deseas que IAP proteja tu recurso. Después de activar IAP, se requieren credenciales de acceso para todas las conexiones a tu balanceador de cargas. Solo se otorgará acceso a las cuentas con el rol Usuario de la aplicación web protegida con IAP en el proyecto.
  3. Para autorizar a IAP para que envíe tráfico al servicio de Cloud Run de backend, sigue las instrucciones que se indican en Cómo agregar principales a un servicio para agregar el siguiente principal y rol.

    • Principal: service-[PROJECT-NUMBER]@gcp-sa-iap.iam.gserviceaccount.com
    • Rol: Invocador de Cloud Run

gcloud

  1. Sigue las instrucciones que se indican en Cómo crear clientes de OAuth para IAP para configurar la pantalla de consentimiento de OAuth y crear el cliente de OAuth.
  2. Guarda el ID y el secreto de cliente de OAuth.
  3. Si aún no lo has hecho, ejecuta el siguiente comando para crear una cuenta de servicio. Si ya creaste una cuenta de servicio, ejecutar el comando no creará cuentas de servicio duplicadas.
    gcloud beta services identity create \
        --service=iap.googleapis.com --project=PROJECT_ID
    
  4. Ejecuta el siguiente comando para otorgar el permiso de invocador a la cuenta de servicio que creaste en el paso anterior.
    gcloud run services add-iam-policy-binding SERVICE-NAME \
        --member='serviceAccount:service-PROJECT-NUMBER@gcp-sa-iap.iam.gserviceaccount.com' \
        --role='roles/run.invoker'
    
  5. Para habilitar IAP, ejecuta el comando con alcance global o regional, según si el servicio de backend del balanceador de cargas es global o regional. Usa el ID de cliente y el secreto de OAuth del paso anterior.

    Alcance global

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

    Alcance regional

    gcloud compute backend-services update BACKEND_SERVICE_NAME \
        --region REGION_NAME \
        --iap=enabled,oauth2-client-id=CLIENT_ID,oauth2-client-secret=CLIENT_SECRET
    
    Reemplaza lo siguiente:

    • BACKEND_SERVICE_NAME: el nombre del servicio de backend.
    • CLIENT_ID: Es el ID de cliente de OAuth del paso anterior.
    • CLIENT_SECRET: Es el secreto del cliente de OAuth del paso anterior.
    • REGION_NAME: La región en la que deseas habilitar los IAP.

Después de habilitar IAP, puedes usar Google Cloud CLI para modificar la política de acceso de IAP con el rol de Identity and Access Management roles/iap.httpsResourceAccessor. Consulta Cómo administrar roles y permisos para obtener más información.