Pular para conteúdo

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

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.