Preguntas frecuentes y solución de problemas

En este artículo, se incluyen preguntas frecuentes sobre Identity-Aware Proxy (IAP).

¿Qué aplicaciones puedo proteger con IAP?

IAP se puede usar con lo siguiente:

  • Entorno estándar de App Engine y aplicaciones de entorno flexible de App Engine
  • Instancias de Compute Engine con servicios de backend de balanceo de cargas HTTP(S)
  • Contenedores de Google Kubernetes Engine

Actualmente, IAP no se puede usar con Cloud CDN.

¿Por qué aparece un # al final de mi URL después de acceder a mi aplicación?

Es posible que algunos navegadores en ciertas circunstancias agreguen un # a la URL después de autenticarla. Esto es normal, y no ocasionará problemas para acceder a la aplicación.

¿Por qué mis solicitudes fallan y se muestra un código de estado 405 Método no permitido?

El origen de este error puede estar en que tus solicitudes no llevan cookies adjuntas. Según la configuración predeterminada, los métodos de JavaScript no adjuntan cookies a las solicitudes.

La forma de incluir cookies varía dependiendo del método de solicitud que utilices. Por ejemplo, las solicitudes enviadas con un objeto XMLHttpRequest necesita la propiedad withCredentials establecida en true, mientras que las solicitudes enviadas con la API de recuperación necesitan la opción credentials configurada en include o same-origin.

Para obtener información sobre cómo manejar los errores que se producen después de un tiempo, consulta Administración de las sesiones de Cloud IAP.

¿Por qué recibo un código de estado HTTP 401 No autorizado en lugar de un HTTP 302 Redireccionamiento?

IAP responde con un código de estado 302 Redirect cuando un cliente está configurado para manejar redireccionamientos. Para indicar que tu cliente puede manejar redireccionamientos, asegúrate de que HTTP Accept="text/html,*/*" esté en el encabezado de las solicitudes.

¿Por qué las solicitudes POST no activan redireccionamientos?

Para activar redireccionamientos, asegúrate de que las llamadas a IAP no sean solicitudes POST. Los navegadores no redireccionan como respuesta a las solicitudes POST. Debido a esto, IAP responde con un código de estado 401 Unauthorized en lugar de 302 Redirect.

Si necesitas IAP para entregar solicitudes POST, asegúrate de que el token de ID o las cookies válidas se envíen en el encabezado de la solicitud.

Incluye el token de ID en un encabezado Authorization: Bearer para realizar una solicitud autenticada al recurso protegido con IAP. Para obtener cookies válidas, actualiza la sesión.

IAP necesita los siguientes prefijos de cookies:

  • GCP_IAAP_AUTH_TOKEN_<random_string>
  • GCP_IAP_UID

Es normal que estas cookies aparezcan varias veces en el encabezado de una solicitud.

¿Puedo usar IAP si inhabilité la API?

Sí, el acceso a los recursos protegidos con IAP funciona con la API inhabilitada, pero no podrás realizar cambios en los permisos de IAM.

¿Cómo puedo evitar que los usuarios con la función de propietario usen IAP para TCP?

Primero, evita usar la función de propietario (roles/owner) tanto como sea posible. La función de propietario otorga amplios permisos en Google Cloud. Asignar funciones y permisos más detallados puede aumentar la seguridad de tu proyecto. Para obtener más información, consulta las prácticas recomendadas de IAM.

Si no puedes reducir el uso de la función de propietario, puedes bloquear IAP para TCP mediante reglas de firewall.

¿Qué dominio usa IAP para TCP?

Datos de túneles TCP de IAP a través del dominio tunnel.cloudproxy.app. Este dominio es propiedad de Google. Debes asegurarte de no bloquear el tráfico a este dominio.

Si bloqueas el tráfico a este dominio, no podrás usar IAP para TCP. Es posible que recibas uno de varios mensajes de error.

Si usas gcloud, el mensaje de error podría ser el siguiente:

Error while connecting [[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed

Si usas SSH desde el navegador, el mensaje de error es el siguiente:

Cloud Identity-Aware Proxy Failed

No hay un código de error asociado.

¿Por qué recibo el error Server Error?

Si recibes el siguiente mensaje de error, es posible que tu firewall esté inhabilitando las IP 130.211.0.0/22 y 35.191.0.0/16:

Error: Server Error
The server encountered a temporary error and could not complete your request.
Please try again in 30 seconds.

Si las direcciones IP 130.211.0.0/22 y 35.191.0.0/16 del balanceador de cargas no pueden llegar a tu backend, es posible que no se pueda acceder a tus aplicaciones. Para obtener más información, consulta Configura un balanceador de cargas de HTTPS externo.

¿Por qué recibo errores intermitentes de servidores internos?

Recibir un mensaje de error con el formato An internal server error occurred while authorizing your request. Error code X indica una falla interna. Los errores internos con códigos de error 1 o 30 indican fallas de backend. Una tasa baja de estos errores de backend a menudo indica un problema transitorio. Los clientes deben reintentar la solicitud mediante la retirada exponencial.

Códigos de error

En la siguiente tabla, se enumeran los códigos de error comunes y los mensajes que se muestran cuando configuras y usas IAP.

Código o mensaje de error Descripción Soluciona problemas
Código de error 7 Tu ID de cliente de OAuth o los valores secretos están vacíos. A fin de verificar que tu ID de cliente y tu secreto estén configurados correctamente para tu aplicación, consulta la página Credenciales. Si parece que tu ID de cliente y tu secreto están configurados correctamente, usa el método GET para ver el estado actual y el método PATCH a fin de restablecer el ID de cliente y el secreto:
API de Compute Engine: GET, PATCH
API de App Engine: GET, PATCH
Código de error 9 No se completó un redireccionamiento de OAuth. Este es un error interno y se ha registrado para su revisión.
Código de error 9 (con reglas de reescritura de ruta de acceso) No se completó un redireccionamiento de OAuth. Las reglas de reescritura de la ruta de acceso del balanceador de cargas de Google Cloud interfieren en la capacidad de IAP de completar correctamente un flujo de OAuth. Si alojas varios backends detrás del balanceador de cargas de Google Cloud y usas reglas de reescritura de rutas de acceso, asegúrate de que ambos backends usen los mismos ID de cliente de OAuth para IAP. Puedes cambiar un ID de cliente de OAuth para un servicio de backend con el comando gcloud compute backend-services update.
Código de error 11 Tu ID de cliente de OAuth no está configurado correctamente. A fin de verificar que tu ID de cliente y tu secreto estén configurados correctamente para tu aplicación, consulta la página Credenciales. Si parece que tu ID de cliente y tu secreto están configurados correctamente, usa el método GET para ver el estado actual y el método PATCH a fin de restablecer el ID de cliente y el secreto:
API de Compute Engine: GET, PATCH
API de App Engine: GET, PATCH
Código de error 13 El token de OpenID Connect (OIDC) no es válido. A fin de asegurarte de que el ID de cliente configurado para IAP no se borre, consulta la página Credenciales.
Código de error 51 Tu navegador no admite la agrupación de conexiones. Un navegador actual y actualizado puede manejar errores de agrupación de conexiones. Asegúrate de que los usuarios finales usen un navegador actual y actualizado. Para obtener más información, consulta doc.
Código de error 52 El nombre de host proporcionado no coincide con el certificado SSL del servidor. Es posible que el administrador del sistema deba actualizar el certificado SSL. Para obtener más información, consulta doc.
Código de error 53 El nombre de host no coincide con los dominios que permite el administrador de IAP. El administrador debe actualizar la lista de dominios permitidos para incluir tu nombre de host. Para obtener más información, consulta doc.
Código de error 429 Tu proyecto excede el umbral por minuto para las solicitudes. Los proyectos de IAP se limitan a un máximo de 360,000 solicitudes por minuto. Si encuentras este error, reduce el volumen de solicitudes de tu proyecto. Puedes comunicarte con el equipo de Asistencia de Google Cloud si tienes más preguntas.
Código de error 4003 Esto puede significar que la instancia no escucha en el puerto al que intentas conectarte o que el firewall está cerrado. Cualquiera de esos problemas también podría causar que falle la prueba de conectividad de inicio de la instancia de VM. Asegúrate de que el proceso de escucha en la VM se esté ejecutando y escuchando en el puerto correcto. Además, verifica que tu firewall de Google Cloud esté configurado correctamente y que esté abierto en el puerto al que te estás conectando.
Código de error 4033 O bien no tienes permiso para acceder a la instancia, la instancia no existe o la instancia está detenida. Visualiza la página de Identity-Aware Proxy para asegurarte de tener la función de usuario de túnel protegido con IAP de IAM aplicada en el recurso al que te estás conectando.
Código de error 4047 La instancia no existe o se detuvo. Asegúrate de que la VM esté encendida y haya completado su inicio.

Si no puedes resolver el problema, comunícate con la asistencia al cliente mediante la descripción del error y la respuesta que recibes de una llamada GET a la API. Puedes quitar el secreto del cliente de la respuesta.