Cómo autenticar usuarios

Si tu aplicación controla solicitudes de usuarios, se recomienda restringir el acceso solo a los usuarios permitidos. Por lo general, los usuarios no tienen permisos de IAM en tu proyecto de Google Cloud o en el servicio de Cloud Run.

Distinguimos dos tipos de usuarios:

  • Usuarios finales: Son los usuarios de tu aplicación que no necesariamente pertenecen a la organización. Por lo general, necesitan registrar una cuenta para ellos mismos.
  • Usuarios internos: Son los usuarios a quienes un administrador de la organización les otorga acceso a la aplicación de forma explícita y que, por lo general, pertenecen a tu organización.

Autentica a los usuarios finales

Si quieres autenticar usuarios mediante correo electrónico y contraseña, número de teléfono, proveedores de redes sociales como Google, Facebook o GitHub, o un mecanismo de autenticación personalizado, puedes usar Identity Platform. El uso de Firebase Authentication es similar al de Identity Platform.

Necesitas una app web o para dispositivos móviles pública que controle el flujo de acceso y, luego, realice llamadas autenticadas a la API en un servicio de Cloud Run. Esta app web pública se puede alojar en un servicio público de Cloud Run.

Si deseas obtener un instructivo completo sobre el uso de Identity Platform para la autenticación de usuarios finales, consulta el instructivo Autenticación de usuarios finales en Cloud Run.

  1. Agrega código a tu servicio de Cloud Run para verificar tokens de ID.

  2. Implementa tu servicio de Cloud Run de forma pública.

  3. Configura Identity Platform en tu proyecto

  4. Haz lo siguiente en tu app web o para dispositivos móviles:

    1. Usa la biblioteca cliente de Firebase Auth para obtener un token de ID:
    2. Incluye el token de ID en un encabezado Authorization: Bearer ID_TOKEN en la solicitud al servicio.

Puedes usar cualquiera de los siguientes métodos para acceder a la información del perfil del usuario:

Para obtener una explicación completa de una aplicación que use esta técnica de autenticación, sigue el Instructivo del usuario final para Cloud Run.

Autentica usuarios internos

Para la autenticación de usuarios internos, usa Identity-Aware Proxy.

Si deseas configurar Identity-Aware Proxy para un servicio de Cloud Run, consulta Configura Identity-Aware Proxy para Cloud Run.

Para las solicitudes de Compartir recursos entre orígenes (CORS) con servicios de Cloud Run autenticados, te recomendamos que configures IAP para Cloud Run en lugar de usar la autenticación de IAM. Esto te permite configurar la IAP para que permita solicitudes OPTIONS sin autenticación, lo que satisface la verificación previa al vuelo del navegador y, al mismo tiempo, garantiza que se autentiquen todas las demás solicitudes.

Incluso cuando el IAP permite la solicitud OPTIONS, el código de la aplicación que implementes en Cloud Run deberá controlar la solicitud de comprobación previa de CORS y la solicitud real que la sigue mediante el envío de los encabezados de CORS adecuados.

Si deseas obtener información para autenticar usuarios o cuentas de servicio en un servicio de Cloud Run protegido con Identity-Aware Proxy mediante OAuth 2.0, consulta la documentación para la autenticación programática.