Obtener la identidad del usuario

En esta página se describe cómo obtener la identidad de un usuario con Identity-Aware Proxy (IAP). Obtener la identidad del usuario permite que tu aplicación verifique que una solicitud se ha enviado a través de IAP. Para proteger tu aplicación correctamente, debes usar siempre uno de los mecanismos que se indican a continuación para obtener la identidad del usuario autenticado mediante IAP.

Obtener la identidad del usuario con encabezados firmados

Para asegurarte de que IAP ha autorizado una solicitud a tu aplicación de Compute Engine, GKE, Cloud Run, entorno estándar de App Engine o entorno flexible de App Engine, tu aplicación debe validar cada solicitud comprobando el encabezado de solicitud HTTP x-goog-iap-jwt-assertion. Consulta información sobre cómo proteger tu aplicación con encabezados firmados.

IAP también transfiere la identidad del usuario a tu servicio backend en los siguientes encabezados HTTP. Estos encabezados deben tener el prefijo de espacio de nombres accounts.google.com. Estas cabeceras están disponibles por motivos de compatibilidad, pero no deberías usarlas como mecanismo de seguridad. Si usas estas cabeceras, debes compararlas con la información de identidad de la cabecera JWT autenticada que se indica más arriba.

Nombre del encabezado Descripción Valor de ejemplo
X-Goog-Authenticated-User-Email La dirección de correo electrónico del usuario accounts.google.com:example@gmail.com
X-Goog-Authenticated-User-Id Identificador único y persistente del usuario. accounts.google.com:userIDvalue

Obtener la identidad del usuario con la API Users del entorno estándar de App Engine

Si tienes una aplicación del entorno estándar de App Engine, puedes usar la API Users para obtener la identidad del usuario en el código de tu aplicación.

Si tu aplicación ya usa esta API, no tienes que cambiar nada. IAP proporciona la identidad del usuario, pero el valor del ID de usuario de la API Users de cada usuario cambiará cuando se active IAP.

Para obtener la identidad de usuario verificada por IAP de una solicitud, llama a la API Users para devolver el usuario actual. Si la función devuelve un usuario, como req.getUserPrincipal() != null en Java, significa que el usuario se ha autenticado mediante IAP.

Cuando se habilita la compra en la aplicación, la primera vez que un usuario accede a tu aplicación, se le redirige a una pantalla de consentimiento para confirmar que quiere compartir su identidad con tu aplicación. Esto ocurre aunque el usuario haya dado su consentimiento a esta aplicación antes de que habilitaras la compra en la aplicación, y volverá a ocurrir si inhabilitas la compra en la aplicación y luego la vuelves a habilitar.

Si usas la API Users, normalmente se suprime la pantalla de consentimiento para las aplicaciones y los usuarios que se encuentran en el mismo dominio de Google Workspace. Cuando habilitas las compras en la aplicación, la pantalla de consentimiento no se oculta automáticamente. Para suprimir la pantalla de consentimiento con las compras en la aplicación habilitadas, sigue los pasos que se indican a continuación:

  1. Ve a la consola de administración de Google.
    Ir a la consola de administración
  2. En la lista de controles, selecciona Seguridad.
    1. Si no ves la opción Seguridad, selecciona Más controles en la barra gris de la parte inferior de la página y, a continuación, Seguridad en la lista de controles.
    2. Si no ves los controles, comprueba que has iniciado sesión como administrador del dominio.
  3. En la lista de opciones, selecciona Mostrar más y, a continuación, Configuración avanzada.
  4. En la sección Autenticación, selecciona Administrar el acceso de cliente API.
  5. En el campo Nombre del cliente, introduce el ID de cliente de OAuth 2.0 de IAP. Puedes encontrar el ID de cliente de IAP en la página Credenciales.
    Ir a la página de credenciales de IAP
  6. En el campo Uno o varios permisos de API, introduce email, openid.
  7. Haz clic en Autorizar.

Para simplificar este proceso, puedes usar una llamada a la API para usar un único ID de cliente de OAuth 2.0 de IAP en todas las aplicaciones. No puedes usar la consola Google Cloud para especificar el ID de cliente que se va a usar con IAP.

Siguientes pasos