Pular para o conteúdo

Documentação do Lockatus

O Lockatus é o hub de identidade da suíte: a lista compartilhada de pessoas e o porteiro comum. Ele guarda os usuários, suas senhas, seus dois fatores e seus papéis por app, e entrega a cada um um passe assinado para entrar em qualquer app sem fazer login de novo.

Single sign-on OIDC

Authorization Code + PKCE. Faça login uma vez no hub; cada app federado o reconhece e lê o seu papel a partir do token. Fazer login uma vez abre todos os apps em que você tem permissão.

Verificação offline

O hub assina os tokens com RS256; os apps os verificam contra o JWKS público sem ligar para casa. Se o hub estiver fora do ar, as sessões ativas continuam funcionando.

A matriz de acesso

Uma grade de quem-por-sistema. Cada app declara o seu próprio catálogo de papéis; o Lockatus os atribui. Nenhum papel para um app significa nenhum acesso — o gating acontece na matriz.

Dois fatores e recuperação

Inscreva o TOTP uma vez (Google Authenticator ou compatível), com códigos de recuperação de uso único e um reset pelo admin. Herdado por cada app. Trocar uma senha invalida cada refresh token.

Os quatro apps de usuário único não se tornam multiusuário por dentro — o Lockatus é a sua tabela externa de usuários. Cada app declara os papéis que entende; o hub os atribui a partir da matriz, e o app faz o gating por papel. A propriedade mais profunda, por usuário, vive apenas onde um app de fato possui recursos por pessoa (como o Selega).

Qualquer novo app da família entra a partir da própria matriz, com nenhuma reimplantação: declare o seu slug e o seu catálogo de papéis (e URIs de redirect opcionais) com o botão + App, e então atribua papéis aos usuários. O catálogo da suíte já vem pré-semeado.

A federação é opcional e não disruptiva — cada app mantém o seu login autônomo atrás de uma flag AUTH_MODE=federado (desligada por padrão). No modo federado, o app delega o /login ao hub e, no callback, troca o código, verifica os tokens RS256 contra o JWKS, e semeia a sua própria sessão — de modo que o resto do gating de papéis do app permanece inalterado. Clientes OIDC de referência são fornecidos para Node (node:crypto, sem dependências extras) e Python (cryptography).

  • Assinatura assimétrica RS256. O hub guarda a chave privada; os apps verificam com a chave pública (JWKS), offline.
  • Tokens curtos + refresh. O refresh reverifica o papel, então revogar o acesso na matriz corta o SSO no próximo refresh.
  • Divisão de auditoria. Os eventos de segurança (logins, 2FA, mudanças de papel) ficam ligados; o registro de atividade por app é opcional e desligado por padrão.