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

El cliente de OAuth administrado por Google restringe el acceso a los usuarios dentro 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:

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

Cuando personalizas 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 Cómo configurar 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 usuarios autorizados cuando sea necesario.

Comparación de clientes OAuth personalizados y clientes de OAuth administrados por Google

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 del cliente
Configuración de OAuth La configuración de Google Configurada por el cliente
Credenciales de OAuth Administrado por Google Administrada por el cliente
Acceso a aplicaciones Solo flujo del navegador Flujo del navegador y acceso programático

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

App Engine

Consola

Archivo de inclusión dinámico

Si aún no has configurado la pantalla de consentimiento de OAuth de tu proyecto, se te solicitará que lo hagas. Consulta Cómo configurar la pantalla de consentimiento de OAuth para configurarla.

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 lateral derecho, 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 que deben tener el rol Usuario de app web protegida con IAP para el proyecto.

    Los siguientes tipos de principales pueden tener este rol:

    • Cuenta de Google: usuario@gmail.com
    • Grupo de Google: administradores@googlegroups.com
    • Cuenta de servicio: servidor@ejemplo.cuentadeserviciog.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 app web protegida con IAP.
  7. Haz clic en Guardar.

Activa IAP

  1. En la página de Identity-Aware Proxy, en Aplicaciones, busca la aplicación a la que deseas restringir el acceso. Si quieres 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. A fin de obtener instrucciones para 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 ingresar, 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 en Crea clientes de OAuth para IAP a fin de configurar la pantalla de consentimiento de OAuth y crear el cliente de OAuth.
  6. Guarda el ID y 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 \
        --versions=VERSION

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

API

  1. Sigue las instrucciones en Crea clientes de OAuth para IAP a fin de configurar la pantalla de consentimiento de OAuth y crear el cliente de OAuth.

  2. Guarda el ID y 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 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 la función de IAM roles/iap.httpsResourceAccessor. Obtén más información sobre cómo administrar funciones y permisos.

Compute Engine

Consola

Si aún no has configurado la pantalla de consentimiento de OAuth de tu proyecto, se te solicitará que lo hagas. Consulta Cómo configurar la pantalla de consentimiento de OAuth para configurarla.

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 lateral derecho, 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 que deben tener el rol Usuario de app web protegida con IAP para el proyecto.

    Los siguientes tipos de principales pueden tener este rol:

    • Cuenta de Google: usuario@gmail.com
    • Grupo de Google: administradores@googlegroups.com
    • Cuenta de servicio: servidor@ejemplo.cuentadeserviciog.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 app 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. A fin de obtener instrucciones para 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 ingresar, 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 en Crea clientes de OAuth para IAP. a fin de configurar la pantalla de consentimiento de OAuth y crear el cliente de OAuth.
  6. Guarda el ID y secreto de cliente de OAuth.
  7. Para habilitar 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 la función de IAM roles/iap.httpsResourceAccessor. Obtén más información sobre cómo administrar funciones y permisos.

API

  1. Sigue las instrucciones en Crea clientes de OAuth para IAP a fin de configurar la pantalla de consentimiento de OAuth y crear el cliente de OAuth.

  2. Guarda el ID y 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 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 la función de IAM roles/iap.httpsResourceAccessor. Obtén más información sobre cómo administrar funciones y permisos.

Cloud Run

Consola

Si no configuraste la pantalla de consentimiento de OAuth de tu proyecto, se te solicitará que lo hagas. Consulta Cómo configurar tu pantalla de consentimiento de OAuth para configurarla.

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 grupos o personas que deben tener la función Usuario de aplicación 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 user@google.com o algún otro dominio de Google Workspace.
    • Grupo de Google: administradores@googlegroups.com
    • Cuenta de servicio: servidor@ejemplo.cuentadeserviciog.com
    • Dominio de Google Workspace: example.com
  6. En la lista Funciones, selecciona Cloud IAP > Usuario de aplicación web protegida con IAP.

  7. Haz clic en Guardar.

Activa IAP

  1. En la página IAP, en Aplicaciones, busca el servicio de backend del balanceador de cargas al que quieres 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 que IAP envíe tráfico al servicio de backend de Cloud Run, sigue las instrucciones en Agrega principales a un servicio para agregar el siguiente principio y la función.

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

gcloud

  1. Sigue las instrucciones en Crea clientes de OAuth para IAP a fin de configurar la pantalla de consentimiento de OAuth y crear el cliente de OAuth.
  2. Guarda el ID y secreto de cliente de OAuth.
  3. Si no lo hiciste antes, ejecuta el siguiente comando para crear una cuenta de servicio. Si creaste una cuenta de servicio anteriormente, ejecutar el comando no crea cuentas de servicio duplicadas.
    gcloud beta services identity create \
        --service=iap.googleapis.com --project=PROJECT_ID
    
  4. Otorga el permiso de invocador a la cuenta de servicio, creada en el paso anterior, ejecutando el siguiente comando.
    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. Habilita IAP ejecutando 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 y secreto de cliente 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: Es la región en la que deseas habilitar IAP.

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