OpenAuth: un “Auth0 autoalojado” basado en estándares… pero con una filosofía distinta

En el ecosistema JavaScript llevan años apareciendo librerías para “hacer login” dentro de una app concreta, y también han triunfado plataformas SaaS tipo Auth0 o Clerk para centralizar identidad sin montar infraestructura propia. OpenAuth (proyecto de anomalyco/openauth) intenta ocupar el hueco intermedio: un servidor de autenticación centralizado, autoalojado y basado en estándares (OAuth 2.0), pensado para que lo despliegues donde ya corre tu stack.

La idea es simple: en vez de acoplar la autenticación a cada aplicación, levantas un issuer (emisor) que gestiona flujos OAuth y entrega tokens de acceso y refresh a cualquier cliente compatible (web, móvil, SPA, APIs o clientes de terceros). El repositorio deja claro que está en beta, así que el atractivo viene con la advertencia habitual: potencia y velocidad de adopción, sí; madurez “enterprise”, todavía por demostrar.


Qué lo hace diferente (según su planteamiento)

1) Centralizado, pero sin SaaS
OpenAuth se plantea como un “auth server” que corre en tu infraestructura: Node.js, Bun, AWS Lambda o Cloudflare Workers. Puedes desplegarlo como servicio independiente o embebido dentro de una aplicación existente.

2) Estándares primero
Se apoya en OAuth 2.0 para que “cualquier cosa que hable OAuth” pueda autenticarse. Esto también abre la puerta a escenarios tipo “Login with myapp” (emitir credenciales para terceros), algo que muchas soluciones caseras no hacen bien.

3) Minimalismo consciente: no “resuelve” el user management
Una decisión poco común: no intenta abstraer tu base de datos de usuarios. Tras autenticarse el usuario (por GitHub, password, etc.), OpenAuth llama a un callback (success) y ahí tú decides: buscar usuario, crearlo, asociarlo a un workspace, etc. Es deliberado: evita imponer ORM, drivers o modelos de datos.

4) Estado mínimo y almacenamiento en KV
Aunque busca ser “casi stateless”, necesita guardar hashes de password, refresh tokens y poco más. La idea es que sea un KV store con implementaciones para sistemas “cero fricción” tipo Cloudflare KV o DynamoDB (y un MemoryStore para pruebas).

5) UI opcional y themeable
Incluye una UI lista para usar, personalizable, o puedes desactivarla y montar la tuya.


Cómo se compone una instalación “típica”

  • Issuer: una app (basada en Hono) que expone endpoints OAuth estándar (por ejemplo /.well-known/oauth-authorization-server).
  • Providers: conectores para identidad (GitHub, password, pin code u otros).
  • Subjects: el “molde” de lo que irá dentro del JWT (por ejemplo userID, workspaceID), validado con un esquema (en el ejemplo usan valibot).
  • Success callback: punto donde “aterriza” la identidad en tu dominio (crear/lookup del usuario).
  • Storage: KV para persistir lo mínimo indispensable.

Tabla rápida: lo que ganas y lo que sacrificas

AspectoQué aporta OpenAuthEl peaje
Control / soberaníaAutoalojado, corre en tu infraTú operas, tú monitorizas, tú respondes incidentes
CompatibilidadOAuth 2.0 → clientes estándarHay que diseñar bien scopes, tokens, rotación
Flexibilidad de datosNo impone “users DB”Tienes que implementar tu lógica de usuarios
Despliegue modernoNode/Bun/Lambda/WorkersComplejidad según plataforma (secretos, KV, redes)
UI de loginUI lista, themeableSi personalizas mucho, acabas manteniendo front propio

Puntos de seguridad que conviene tomarse en serio (especialmente en beta)

  • Refresh tokens: almacénalos y protégelos como oro. Si hay fuga, hay sesión persistente.
  • Cookies vs localStorage: para SSR, cookies HttpOnly + Secure suelen ser la opción más sólida. En SPA, si guardas tokens en localStorage, asume riesgo mayor ante XSS.
  • PKCE en clientes públicos: imprescindible en SPA/móvil (y el repo lo plantea así).
  • Rate limiting / anti-abuse: password provider implica flujos sensibles (fuerza bruta, enumeración de usuarios, “forgot password”…).
  • Rotación de claves y configuración: define políticas claras para expiración de tokens, revocación y rotación de secretos.
  • Auditoría y logs: centraliza trazas de auth (sin volcar datos sensibles) y prepara alertas.

¿Para quién tiene sentido?

  • Equipos que quieren un servidor de autenticación común para varias apps (web interna, admin tools, APIs, móvil).
  • Proyectos que no quieren SaaS por coste, compliance o control (o que quieren evitar el “lock-in”).
  • Organizaciones que ya trabajan cómodo con Cloudflare/AWS y prefieren un componente más en su infraestructura.

¿Cuándo miraría otra cosa?

  • Si necesitas un IAM completo con administración de usuarios, roles complejos, paneles, flujos corporativos y mucha madurez “enterprise” desde el día 1.
  • Si tu prioridad es “cero operación”: ahí el SaaS sigue ganando por inercia (a costa de control y coste).

Suscríbete al boletín SysAdmin

Este es tu recurso para las últimas noticias y consejos sobre administración de sistemas, Linux, Windows, cloud computing, seguridad de la nube, etc. Lo enviamos 2 días a la semana.

¡Apúntate a nuestro newsletter!


– patrocinadores –

Noticias destacadas

– patrocinadores –

¡SUSCRÍBETE AL BOLETÍN
DE LOS SYSADMINS!

Scroll al inicio
×