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é desapareció el identificador de fragmento #… al final de mi URL?

Como medida de seguridad, se quita esta parte de una URL durante el proceso de acceso. Después de acceder, el reingreso a tu URL funcionará según lo esperado.

¿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?

IAP para TCP enruta los datos mediante túneles a través del dominio tunnel.cloudproxy.app, que es propiedad de Google. Debes asegurarte de no bloquear el tráfico a este dominio.

De lo contrario, no podrás usar IAP para TCP y 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 ningún código de error asociado.

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 Solución de 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 registró para su revisión.
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 429 Tu proyecto excedió el límite por minuto para las solicitudes. Los proyectos de IAP tienen un límite 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 estos problemas también podría provocar que falle la prueba de conectividad de inicio en 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.

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.