Authentication¶
Objetivo¶
O módulo Authentication é responsável por autenticar usuários da CoreFlow Platform.
Todos os produtos deverão utilizar este módulo.
É proibido implementar autenticação específica em qualquer produto.
Responsabilidades¶
O módulo deverá fornecer:
- Login
- Logout
- Refresh Token
- Recuperação de senha
- Alteração de senha
- MFA
- Sessões
- Dispositivos confiáveis
- Tokens
- Revogação de acesso
Arquitetura¶
Fluxo de Login¶
sequenceDiagram
participant U as Usuário
participant API as Authentication API
participant S as Authentication Service
participant DB as PostgreSQL
U->>API: Login
API->>S: Validar Credenciais
S->>DB: Consultar Usuário
DB-->>S: Dados
S-->>API: Access Token + Refresh Token
API-->>U: Login realizado
Funcionalidades¶
Login¶
Entrada:
- Usuário
- Senha
Saída:
- Access Token
- Refresh Token
Logout¶
Invalidar:
- Sessão
- Refresh Token
Registrar auditoria.
Refresh Token¶
Permitir geração de novo Access Token.
Nunca reutilizar Refresh Token revogado.
Recuperação de Senha¶
Fluxo:
Alteração de Senha¶
Obrigatório validar:
- Senha atual
- Política de senhas
- Histórico quando aplicável
MFA¶
Suportes previstos:
- TOTP
- Aplicativo autenticador
Sessões¶
Registrar:
- Data/Hora
- IP
- Navegador
- Sistema Operacional
- Dispositivo
Tokens¶
Access Token¶
- Curta duração
- JWT
- Assinado
Refresh Token¶
- Longa duração
- Revogável
- Rotativo
Segurança¶
Obrigatório:
- HTTPS
- JWT
- MFA
- Rate Limit
- Bloqueio por tentativas
- Auditoria
Regras de Negócio¶
- Um usuário pode possuir múltiplas sessões.
- Cada sessão possui um Refresh Token próprio.
- Logout invalida apenas a sessão corrente, salvo logout global.
- Alteração de senha invalida todos os Refresh Tokens ativos.
APIs¶
POST /api/v1/auth/login/
POST /api/v1/auth/logout/
POST /api/v1/auth/refresh/
POST /api/v1/auth/forgot-password/
POST /api/v1/auth/reset-password/
POST /api/v1/auth/change-password/
Auditoria¶
Registrar:
- Login
- Logout
- Falha de login
- Alteração de senha
- Recuperação de senha
- MFA
- Revogação de sessão
Integrações¶
Compatível com:
- RBAC
- Users
- Companies
- Audit
- Notifications
Testes Obrigatórios¶
- Login válido
- Login inválido
- Usuário bloqueado
- Senha incorreta
- Refresh Token
- Logout
- MFA
- Recuperação de senha
- Alteração de senha
- Expiração de sessão
Anti-patterns¶
É proibido:
- Senhas em texto
- Tokens permanentes
- JWT sem expiração
- Autenticação específica por produto
- Credenciais em código-fonte
Objetivo Final¶
Disponibilizar um serviço único, seguro, auditável e reutilizável de autenticação para toda a CoreFlow Platform.