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
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
-
Ve a la página Identity-Aware Proxy.
Ir a la página Identity-Aware Proxy - Selecciona el proyecto que deseas proteger con IAP.
- Selecciona la casilla de verificación junto al recurso al que deseas otorgar acceso.
- En el panel de la derecha, haz clic en Agregar principal.
-
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.
- En la lista desplegable Funciones, selecciona Cloud IAP > Usuario de aplicación web protegida con IAP.
- Haz clic en Guardar.
Activa IAP
-
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,
- 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 IAP y tu proyecto, necesitas una versión actualizada de gcloud CLI. Para obtener instrucciones sobre cómo instalar gcloud CLI, consulta Instala gcloud CLI.
-
Para realizar la autenticación, usa Google Cloud CLI y ejecuta el siguiente comando.
gcloud auth login
- Para acceder, sigue la URL que aparece.
- Después de acceder, copia el código de verificación que aparece y pégalo en la línea de comandos.
-
Ejecuta el siguiente comando para especificar el proyecto que contiene el recurso que quieres proteger con IAP.
gcloud config set project PROJECT_ID
- Sigue las instrucciones que se indican en Crea clientes de OAuth para IAP para configurar la pantalla de consentimiento de OAuth y crear el cliente de OAuth.
- Guarda el ID de cliente y el secreto de OAuth.
-
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 la CLI de gcloud 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
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.
Guarda el ID de cliente y el secreto de OAuth.
Ejecuta el siguiente comando para preparar un archivo
settings.json
.cat << EOF > settings.json { "iap": { "enabled":true, "oauth2ClientId" : CLIENT_ID, "oauth2ClientSecret" : CLIENT_SECRET, } } EOF
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 la Google Cloud CLI para modificar el
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
Consola
Si no has configurado la pantalla de consentimiento de OAuth para tu proyecto, podrás que se te solicite hacerlo. Para configurar tu pantalla de consentimiento de OAuth, consulta Configura tu pantalla de consentimiento de OAuth.
Configura el acceso de IAP
-
Ve a la página Identity-Aware Proxy.
Ir a la página Identity-Aware Proxy - Selecciona el proyecto que deseas proteger con IAP.
-
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 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: gcloud:
gcloud compute backend-services list
- En el panel de la derecha, haz clic en Agregar principal.
-
En el diálogo Agregar principales que aparece, ingresa las direcciones de correo electrónico de los grupos o
Las personas que deberían tener la función Usuario de aplicación 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.gserviceaccount.com
- Dominio de Google Workspace: example.com
Asegúrate de agregar una Cuenta de Google a la que tengas acceso.
- En la lista desplegable Funciones, selecciona Cloud IAP > Usuario de aplicación web protegida con IAP.
- Haz clic en Guardar.
gcloud
Antes de configurar tu IAP y tu proyecto, necesitas una versión actualizada de la CLI de gcloud. Para obtener instrucciones sobre cómo instalar la CLI de gcloud, consulta Instala la CLI de gcloud.
-
Para autenticarte, usa Google Cloud CLI y ejecuta el siguiente comando.
gcloud auth login
- Para acceder, sigue la URL que aparece.
- Después de acceder, copia el código de verificación que aparece y pégalo en la línea de comandos.
-
Ejecuta el siguiente comando para especificar el proyecto que contiene el recurso que deseas proteger con IAP.
gcloud config set project PROJECT_ID
- 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.
- Guarda el ID y el secreto de cliente de OAuth.
-
Para habilitar la IAP, ejecuta el comando con alcance global o regional.
Alcance global Alcance regionalgcloud compute backend-services update BACKEND_SERVICE_NAME \ --global \ --iap=enabled,oauth2-client-id=CLIENT_ID,oauth2-client-secret=CLIENT_SECRET
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
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.
Guarda el ID y el secreto de cliente de OAuth.
Ejecuta el siguiente comando para preparar un archivo
settings.json
.cat << EOF > settings.json { "iap": { "enabled":true } } EOF
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
Consola
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
- Abre la página Identity-Aware Proxy.
Ir a Identity-Aware Proxy - Selecciona el proyecto que deseas proteger con IAP.
- En Aplicaciones, selecciona la casilla de verificación junto al servicio de backend del balanceador de cargas al que deseas agregar miembros.
- En el panel de la derecha, haz clic en Agregar miembro.
En el diálogo Agregar miembros, ingresa las cuentas de grupos o personas. que deben tener la función de 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
Selecciona Cloud IAP > Usuario de aplicación web protegida con IAP de la lista Funciones.
Haz clic en Guardar.
Activa IAP
- 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.
- 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 la función Usuario de aplicación web protegida con IAP en el proyecto.
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
- Función: Invocador de Cloud Run
- Principal:
gcloud
- 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.
- Guarda el ID de cliente y el secreto de OAuth.
- Si aún no lo hiciste, 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
- 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'
Para habilitar los 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
Permiso regional
Reemplaza lo siguiente:gcloud compute backend-services update BACKEND_SERVICE_NAME \ --region REGION_NAME \ --iap=enabled,oauth2-client-id=CLIENT_ID,oauth2-client-secret=CLIENT_SECRET
- 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 el rol de Identity and Access Management roles/iap.httpsResourceAccessor
. Consulta Administra roles y permisos para obtener más información.