Autenticación
Glue2 soporta tres mecanismos de autenticación: Claves API, Sesiones y OAuth 2.0. Cada endpoint puede configurarse para requerir autenticación (Require) o hacerla opcional (Optional). Las solicitudes no autenticadas a endpoints Require reciben una respuesta 401 Unauthorized.
Claves API
Las claves API proporcionan autenticación máquina a máquina. Cada clave consta de dos partes: un Api-Key (identificador público) y un Api-Secret (secreto privado). El secreto se almacena como un hash bcrypt y no se puede recuperar después de la creación.
1curl -X POST "https://api.hola.cloud/api/v0/lambdas" \
2 -H "Api-Key: TU_API_KEY" \
3 -H "Api-Secret: TU_API_SECRET" \
4 -H "Content-Type: application/json" \
5 -d '{"name": "mi-funcion", "runtime": "js", "code": "..."}'
Las claves API pueden limitarse por proyecto y reglas de host:
- Proyectos: La clave solo es válida para el proyecto configurado.
- Reglas de host: Restringen hosts virtuales y metadatos opcionales por host.
Los ámbitos de ruta y método HTTP no forman parte del modelo actual.
Autenticación Opcional vs Requerida
- Require: El endpoint rechaza solicitudes no autenticadas con
401. - Optional: El endpoint acepta tanto solicitudes autenticadas como anónimas. Las solicitudes autenticadas reciben encabezados inyectados; las anónimas pasan sin ellos.
Cuando se proporciona una clave API válida, Glue2 inyecta el encabezado X-Glue-Authentication como JSON en la solicitud proxy.
Sesiones
La autenticación basada en sesiones es utilizada por los usuarios del navegador en la Consola de HolaCloud. Cuando un usuario inicia sesión a través de auth.hola.cloud, el servicio de autenticación crea una sesión almacenada en InceptionDB. El ID de sesión se devuelve como una cookie HTTP-only, Secure y SameSite.
1# Las sesiones son gestionadas automáticamente por el navegador.
2# Para acceso por API, usa claves API o tokens OAuth.
Las cookies de sesión se adjuntan automáticamente a las solicitudes a los subdominios de HolaCloud. Glue2 lee la cookie, busca la sesión en InceptionDB y la valida antes de reenviar la solicitud.
OAuth 2.0 / Google Auth
Los usuarios de la Consola pueden autenticarse mediante Google OAuth 2.0. El flujo funciona de la siguiente manera:
- El usuario hace clic en "Iniciar sesión con Google" en la página de inicio de sesión de la Consola.
- El navegador redirige al endpoint de autorización de Google.
- El usuario concede permiso y Google redirige de vuelta con un código de autorización.
- La Consola intercambia el código por un token de acceso y un token ID.
- El token ID se envía a Glue2, que lo valida y crea una sesión.
Los tokens OAuth también pueden usarse directamente para llamadas API:
1curl "https://api.hola.cloud/api/v0/lambdas" \
2 -H "Authorization: Bearer TU_TOKEN_OAUTH"
Resumen del Flujo de Autenticación
1Método Credenciales Uso típico Ámbito
2───────────────────────────────────────────────────────────────────────
3Clave API Api-Key + Api-Secret Máquina a máquina Proyecto/Reglas de host
4Sesión Cookie (http-only) Usuarios de navegador Identidad de usuario
5OAuth 2.0 Token Bearer Consola / SSO Identidad de Google
Gestión de Claves API a Través de la Consola
Las claves API se gestionan en la Consola de HolaCloud en Configuración > Claves API. Desde allí puedes:
- Crear nuevos pares de claves (Api-Key + Api-Secret)
- Ver claves existentes (el secreto se muestra solo una vez al crearlo)
- Revocar claves
- Establecer ámbitos de clave
Mejores Prácticas de Seguridad
- Rota las claves regularmente: Genera nuevas claves y actualiza tus aplicaciones periódicamente.
- Mínimo privilegio: Limita cada clave al conjunto mínimo de proyectos y reglas de host necesarios.
- Solo HTTPS: Usa siempre
https://— nunca envíes credenciales por HTTP plano. - Almacena secretos de forma segura: Usa variables de entorno o un gestor de secretos. Nunca hardcodees secretos en el código fuente.
- Revoca claves comprometidas inmediatamente: Usa la Consola o la API para revocar claves si se exponen.
Siguientes Pasos
- Aprende a crear y gestionar claves API en Gestión de Claves API.
- Revisa la arquitectura y el enrutamiento en Arquitectura y Enrutamiento.
Comentarios