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.
Agrega código a tu servicio de Cloud Run para verificar tokens de ID.
Haz lo siguiente en tu app web o para dispositivos móviles:
- Usa la biblioteca cliente de Firebase Auth para obtener un token de ID:
- Android: Usa el método
GetTokenResult().getToken()
. - iOS: Usa el método
User.getIDTokenResult(completion:)
. - Web: Usa el método
firebase.User.getIdToken()
.
- Android: Usa el método
- Incluye el token de ID en un encabezado
Authorization: Bearer ID_TOKEN
en la solicitud al servicio.
- Usa la biblioteca cliente de Firebase Auth para obtener un token de ID:
Puedes usar cualquiera de los siguientes métodos para acceder a la información del perfil del usuario:
- Usa el SDK de Firebase Admin para realizar una solicitud de red a fin de recuperar datos del usuario.
- Usa una biblioteca cliente de la API de Google para recuperar los datos del usuario mediante el método más adecuado para el entorno de ejecución elegido.
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, puedes usar Identity-Aware Proxy.
Si deseas configurar Identity-Aware Proxy para un servicio de Cloud Run existente, consulta la documentación sobre cómo habilitar Identity-Aware Proxy para Cloud Run.
Si deseas obtener instrucciones 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.