Ir al contenido

Documentación de Lockatus

Lockatus es el hub de identidad de la suite: la lista compartida de personas y el portero común. Guarda los usuarios, sus contraseñas, sus dos factores y sus roles por app, y le entrega a cada uno un pase firmado para entrar a cualquier app sin volver a iniciar sesión.

Inicio de sesión único OIDC

Authorization Code + PKCE. Inicia sesión una vez en el hub; cada app federada te reconoce y lee tu rol desde el token. Iniciar sesión una vez abre cada app a la que tienes permitido entrar.

Verificación offline

El hub firma los tokens con RS256; las apps los verifican contra el JWKS público sin llamar a casa. Si el hub está caído, las sesiones activas siguen funcionando.

La matriz de acceso

Una grilla de quién-por-sistema. Cada app declara su propio catálogo de roles; Lockatus los asigna. Sin rol para una app no hay acceso — el control ocurre en la matriz.

Dos factores y recuperación

Registra TOTP una vez (Google Authenticator o compatible), con códigos de recuperación de un solo uso y un reset de admin. Heredado por cada app. Cambiar una contraseña invalida cada refresh token.

Las cuatro apps de un solo usuario no se vuelven multiusuario por dentro — Lockatus es su tabla externa de usuarios. Cada app declara los roles que entiende; el hub los asigna desde la matriz, y la app controla por rol. La pertenencia más profunda, por usuario, vive solo donde una app realmente posee recursos por persona (como Selega).

Cualquier nueva app de la familia se suma desde la matriz misma, sin volver a desplegar: declara su slug y su catálogo de roles (y URIs de redirect opcionales) con el botón + App, y luego asigna roles a los usuarios. El catálogo de la suite viene presembrado.

La federación es opcional y no disruptiva — cada app mantiene su login standalone detrás de un flag AUTH_MODE=federado (desactivado por defecto). En modo federado la app delega /login al hub y, en el callback, intercambia el código, verifica los tokens RS256 contra el JWKS, y siembra su propia sesión — así el resto del control por rol de la app no cambia. Se incluyen clientes OIDC de referencia para Node (node:crypto, sin dependencias extra) y Python (cryptography).

  • Firma asimétrica RS256. El hub guarda la clave privada; las apps verifican con la clave pública (JWKS), offline.
  • Tokens cortos + refresh. El refresh vuelve a verificar el rol, así que revocar el acceso en la matriz corta el SSO en el siguiente refresh.
  • Auditoría separada. Los eventos de seguridad (logins, 2FA, cambios de rol) están activados; el registro de actividad por app es opt-in y está desactivado por defecto.