Pular para conteúdo

Authentication

Status: Visão de Longo Prazo — Não Implementada

Não existe um serviço de autenticação compartilhado. Cada produto (ver Produtos) implementa seu próprio accounts Django, com login/logout/recuperação de senha locais — sem JWT nem Identity Service central.

Objetivo

O módulo Authentication seria responsável por autenticar usuários de toda a CoreFlow Platform, caso viesse a ser implementado como serviço compartilhado.

Na visão de longo prazo, todos os produtos utilizariam este módulo, sem autenticação própria — hoje é o oposto: todos os 8 produtos reais implementam autenticação própria.


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

Usuário

    │

    ▼

Authentication API

    │

    ▼

Identity Service

    │

    ▼

JWT Provider

    │

    ▼

PostgreSQL

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:

Solicitação

↓

Token Temporário

↓

Validação

↓

Nova Senha

Alteração de Senha

Obrigatório validar:

  • Senha atual
  • Política de senhas
  • Histórico quando aplicável

MFA

Suportes previstos:

  • TOTP
  • Email
  • 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.