Files
Investidor-V2/docs/implementation/adr/ADR-001-iam-anonymous-access.md
T
nala 4f35313d06
tests / ci (push) Canceled after 0s
novas funcionalidades dos formulario
2026-10-02 11:13:37 +02:00

1.6 KiB

ADR-001 — Identidade, autorização e acesso anónimo

  • Estado: Aceite para orientar contratos e novas alterações; não declara implementação completa.
  • Data: 2026-10-01
  • Contexto: Laravel 13, Fortify e sessões existentes; API pública versionada e páginas Inertia. Não foi encontrado emissor/verificador JWT configurado.

Decisão

Usar a sessão Laravel como mecanismo primário para browser/Inertia e para operações privadas same-origin, com CSRF, verificação de email quando aplicável, MFA nas áreas já protegidas e autorização explícita por Policy/Gate para cada recurso. Endpoints anónimos são uma allowlist de leitura/submissão pública, com validação, limitação de pedidos e resposta mínima. A existência de uma rota sob /api não a torna pública. Não introduzir JWT nem bearer tokens sem consumidor externo, ciclo de vida, audiência, rotação e revogação contratados. Não confiar em IDs enviados pelo cliente para autorizar acesso.

Alternativas consideradas

  • JWT para toda a aplicação: rejeitado; não há necessidade demonstrada e duplicaria a sessão existente.
  • Um gate global de gestor: insuficiente para autorização por recurso; manter as verificações actuais como barreira adicional, com Policies por domínio.
  • Tornar toda a API pública: rejeitado; publicar só operações explicitamente inventariadas.

Consequências e validação futura

Contratos devem declarar security por operação e casos anónimo/autenticado/negado. Privacidade SQL/RLS é decisão separada no ADR-007. Alterações futuras precisam de testes positivos e negativos. Esta ADR não converte o gate manage-portal em RBAC completo.