Pular para o conteúdo principal

Autenticação

Para quem é esta página

Engenheiros back-end e front-end. Contexto arquitetural: ADR-005 — Gov.br.

Fluxo OAuth2 Authorization Code + PKCE

Estrutura do JWT

{
"sub": "uuid-do-usuario",
"nome": "João Silva",
"tipo_usuario": "produtor_rural",
"nivel_confiabilidade": "prata",
"jti": "uuid-unico",
"iat": 1705312200,
"exp": 1705315800
}
CPF não está no JWT

O CPF não é incluído no token por segurança. Para obter o CPF, o serviço consulta o banco usando o sub (user_id).

Endpoints de Auth

EndpointDescrição
GET /api/v1/auth/govbr/authorizeInicia fluxo — retorna URL do Gov.br
GET /api/v1/auth/govbr/callbackCallback Gov.br — emite JWT
GET /api/v1/auth/meDados do usuário autenticado
POST /api/v1/auth/refreshRenova access token com refresh token
POST /api/v1/auth/logoutRevoga sessão (blacklist JTI no Redis)

Níveis de Confiabilidade Gov.br

NívelVerificaçãoOperações permitidas
BronzeE-mail verificadoConsultas, rascunhos
PrataBiometria ou bancoSubmissão de processo, correção
OuroReconhecimento facialOperações críticas de admin

RBAC — Roles do Sistema

RoleDescrição
produtor_ruralAcessa apenas seus próprios processos
responsavel_tecnicoAcessa processos com autorização do proprietário; co-assina com responsabilidade legal
analista_ambientalVê e analisa todos os processos
supervisor_ambientalTudo do analista + recursos + relatórios
adminAcesso total ao sistema
Retorno 404, não 403

Para evitar enumeração de recursos, o sistema retorna 404 Not Found quando o usuário tenta acessar um recurso que existe mas não tem permissão — não 403 Forbidden.