Este documento contiene preguntas frecuentes sobre Identity-Aware Proxy (IAP).
¿Qué aplicaciones puedo proteger con IAP?
Las compras en la aplicación se pueden usar con lo siguiente:
- Aplicaciones del entorno estándar y del entorno flexible de App Engine
- Instancias de Compute Engine con servicios de backend de balanceo de carga HTTP(S)
- Contenedores de Google Kubernetes Engine
- Aplicaciones de Cloud Run con servicios de backend de balanceo de carga HTTP y HTTPS
- Cloud Run con un solo clic y sin servicios de backend de balanceo de carga
IAP no se puede usar con Cloud CDN.
¿Por qué hay un # al final de mi URL después de iniciar sesión en mi aplicación?
En algunos navegadores y en determinadas condiciones, se puede añadir un #
a la URL después de la autenticación. Esto es normal y no causará problemas al iniciar sesión.
¿Por qué fallan mis solicitudes y devuelven 405 Method Not Allowed
?
Esto suele ocurrir cuando no se adjuntan cookies a tus solicitudes. Los métodos de JavaScript no adjuntan cookies de forma predeterminada.
Cada método de solicitud requiere un enfoque diferente:
- Para
XMLHttpRequest
, asigna el valortrue
awithCredentials
- En la API Fetch,
asigna el valor
include
osame-origin
acredentials
.
Para gestionar los errores relacionados con las sesiones, consulta Gestionar sesiones de IAP.
¿Por qué recibo un HTTP 401 Unauthorized
en lugar de un 302 Redirect
?
IAP envía un 302 Redirect
solo cuando tu cliente está configurado para gestionar redirecciones.
Añade HTTP Accept="text/html,*/*"
a los encabezados de solicitud para indicar que se admiten las redirecciones.
¿Por qué las solicitudes POST no activan redirecciones?
Los navegadores no redirigen en respuesta a las solicitudes POST. En su lugar, IAP devuelve un código de estado 401 Unauthorized
.
En las solicitudes POST a recursos protegidos mediante IAP, incluye una de las siguientes opciones:
- Un token de ID en un encabezado
Authorization: Bearer
- Cookies válidas (consulta la sección sobre cómo actualizar sesiones)
¿Puedo usar las compras en aplicaciones si he inhabilitado la API?
Sí, los recursos protegidos por IAP siguen siendo accesibles cuando la API está inhabilitada, pero no podrás modificar los permisos de gestión de identidades y accesos.
¿Cómo puedo evitar que los usuarios con el rol Propietario usen IAP para TCP?
Lo ideal es limitar el uso del rol de propietario (roles/owner
) y usar permisos más granulares. Consulta las prácticas recomendadas de gestión de identidades y accesos para obtener más información.
Si no es posible, puedes bloquear las compras en aplicaciones para TCP mediante las reglas de cortafuegos.
¿Qué dominio usa IAP para TCP?
IAP usa los siguientes dominios propiedad de Google:
tunnel.cloudproxy.app
mtls.tunnel.cloudproxy.app
(cuando está habilitado el acceso basado en certificados )
¿Por qué recibo Server Error
?
Si ves lo siguiente:
The server encountered a temporary error and could not complete your request. Please try again in 30 seconds.
Es posible que tu cortafuegos esté bloqueando las IPs del balanceador de carga.
Comprueba que tu cortafuegos permite el tráfico de 130.211.0.0/22
y 35.191.0.0/16
. Si estas IPs no pueden acceder a tu backend, tus aplicaciones no estarán disponibles.
En el caso de las conexiones TCP de IAP a VMs específicas, asegúrate también de que la VM acepte conexiones del intervalo 35.235.240.0/20
.
¿Por qué recibo errores de servidor internos de forma intermitente?
Los mensajes como An internal server error occurred while authorizing your request.
Error code X
indican errores del backend.
Los códigos de error 1
, 30
, 62
, 63
, 64
o 703
suelen reflejar problemas transitorios. Implementa un tiempo de espera exponencial para los reintentos.
¿Cómo puedo solucionar los errores de cuota superada (código de error 429)?
El código de error 429 se produce cuando tu aplicación supera los límites de solicitudes de IAP. El servicio aplica cuotas independientes:
- Solicitudes basadas en navegador: 360.000 por minuto y proyecto
- Solicitudes programáticas: 360.000 por minuto y proyecto
Una solicitud programática es aquella que incluye un encabezado AUTHORIZATION
o PROXY-AUTHORIZATION
y no tiene ninguna cookie de compra en la aplicación. Todas las demás solicitudes (incluidas las que no tienen credenciales) se consideran solicitudes de navegador.
Estos límites se aplican de forma colectiva a todos los recursos protegidos por IAP de tu proyecto.
Si tienes problemas relacionados con las cuotas, prueba estas soluciones:
- Evita las pruebas de carga en producción: usa rutas de red alternativas que omitan IAP
- En el caso del tráfico de servicio a servicio, implementa un tiempo de espera exponencial para gestionar los errores 429 correctamente
- Distribuir aplicaciones con mucho tráfico entre varios proyectos
- Usar Apigee u otras soluciones de pasarela de APIs similares para aplicaciones basadas en APIs
- Ponte en contacto con el Google Cloud equipo de Asistencia para aumentar las cuotas si el problema se debe al crecimiento orgánico
Códigos de error
En la siguiente tabla se enumeran los códigos y mensajes de error habituales que se devuelven al configurar y usar las compras en aplicaciones.
Código de error | Descripción | Solución de problemas |
---|---|---|
7 | ID o secreto de cliente de OAuth vacíos | Visita la página Credenciales para verificar tu ID y tu secreto de cliente. Si parecen correctos, pero no funcionan, usa los métodos de la API para comprobar los ajustes (GET en Compute Engine y GET en App Engine) y restablecerlos con PATCH . |
9 | Redirección de OAuth fallida | Se trata de un error interno que se ha registrado automáticamente. No hace falta que hagas nada. |
9 (con reglas de reescritura de ruta) | Redirección de OAuth fallida | Las reglas de reescritura de rutas de tu balanceador de carga impiden que se complete OAuth. Asegúrate de que todos los back-ends que hay detrás de tu balanceador de carga usen IDs de cliente de OAuth idénticos. Puedes actualizarlo con el comando gcloud compute backend-services update. |
9 (con reglas de enrutamiento de rutas) | Redirección de OAuth fallida | Crea variantes de reglas de ruta para ambas versiones de cada ruta (con y sin barras al final) y dirígelas al mismo backend. Por ejemplo, incluya reglas para /path/ y /path . |
11 | ID de cliente de OAuth configurado incorrectamente | Comprueba tu ID de cliente y tu secreto en la página Credenciales. Si parecen correctos, pero no funcionan, usa los métodos de la API para comprobar los ajustes (GET en Compute Engine y GET en App Engine) y restablecerlos con PATCH . |
13 | Token de OIDC no válido | Vaya a la página Credenciales para confirmar que su ID de cliente no se ha eliminado ni modificado incorrectamente. |
51 | El navegador no admite la agrupación de conexiones | Pide a los usuarios finales que actualicen sus navegadores a las versiones actuales. Para obtener más información sobre los requisitos de conexión, consulta Restringir el acceso a los recursos. |
52 | El nombre de host no coincide con el certificado SSL | Tu administrador del sistema debe actualizar el certificado SSL para que coincida con el nombre de host. Consulta Restringir el acceso a los recursos si necesitas ayuda. |
52 (con la entrada de mapa de certificado principal) | El nombre de host no coincide con el certificado SSL | IAP no admite entradas de mapa de certificados principales. Usa entradas independientes para asignar cada certificado al nombre de host correcto. Consulta las instrucciones para crear una entrada de mapa de certificados. |
53 | Nombre de host no incluido en los dominios permitidos | Un administrador debe añadir tu nombre de host a la lista de dominios permitidos. Para obtener instrucciones, consulte Restringir el acceso a los recursos. |
253, HTTP 429 | Cuota de solicitudes superada | Has alcanzado los límites de solicitudes (360.000 por minuto para cada tipo de solicitud). Puedes distribuir las cargas de trabajo en varios proyectos, implementar la limitación de solicitudes del lado del cliente o ponerte en contacto con el equipo de Asistencia para solicitar un aumento de la cuota si lo necesitas para un crecimiento legítimo. |
551 | IAP enabled in multiple places | No puedes habilitar IAP en la regla de reenvío y en el servicio de backend. Inhabilítelo en una ubicación siguiendo las instrucciones de la sección Habilitar en Compute Engine. |
700, 701 | Problemas con el proveedor del grupo de Workforce | Configure exactamente un proveedor para su grupo de trabajadores. Consulta los requisitos detallados de los grupos de trabajadores. |
705 | Falta el ID de cliente de OAuth de la identidad de los empleados | Sigue todo el proceso de configuración: primero, crea un ID de cliente de OAuth y, después, actualiza la configuración de IAP. |
708 | Nombre de grupo de Workforce no válido | Comprueba que el grupo de trabajadores exista y que use el formato correcto: locations/global/workforcePools/WORKFORCE_POOL_ID . |
4003 | Problema de conexión o con el cortafuegos | Comprueba que el proceso de la VM se esté ejecutando y esté escuchando en el puerto esperado. También debes comprobar que tus reglas de cortafuegos permitan las conexiones en ese puerto. |
4010 | Conexión cerrada por el destino | Restablece la VM. Si los problemas persisten, examina auth.log (normalmente en /var/log/ ) o usa la consola de serie para obtener diagnósticos más detallados. |
4033 | Problema de permisos, existencia o estado de la VM | Confirma que tienes asignado el rol de usuario de túnel para el recurso en la página IAP y comprueba que la VM existe y está en ejecución. |
4047 | La instancia no existe o está detenida | Asegúrate de que la VM esté encendida y haya completado la secuencia de inicio. |
Si no puedes resolver el problema o no ves el error en esta página, ponte en contacto con el equipo de Asistencia de Google Cloud con una descripción del error y la respuesta que recibes de una llamada GET
a la API. Asegúrate de eliminar el secreto de cliente de la respuesta.