Skip to content

Política de Fronteira de Autenticação

O NENE2 trata a autenticação como uma fronteira de aplicação explícita, não como magia oculta do framework.

Esta política define a primeira direção de chave de API e token para clientes machine, ferramentas MCP e futuros middlewares de autenticação.

Posição

Autenticação e autorização são fronteiras explícitas de middleware.

A direção padrão é:

  • Chaves de API são para clientes machine e ferramentas MCP.
  • Tokens Bearer são para autenticação de usuário ou serviço quando uma aplicação os adota.
  • Autenticação por sessão pertence a aplicações que precisam de sessões de browser do lado do servidor.
  • Esquemas de segurança OpenAPI devem ser adicionados apenas quando o comportamento de middleware correspondente existe.
  • Segredos nunca devem ser commitados, logados ou expostos através de metadados MCP.

O primeiro caminho de middleware implementado é uma verificação de chave de API para endpoints machine-client usando:

text
X-NENE2-API-Key

O valor da chave é carregado de NENE2_MACHINE_API_KEY quando configurado. Deixe sem definir para desenvolvimento local apenas público, e defina fora do repositório ao testar rotas protegidas.

Chaves de API

Chaves de API são credenciais de longa duração para clientes não-humanos.

Use chaves de API para:

  • ferramentas MCP locais que chamam APIs HTTP locais
  • ferramentas de inspeção serviço-a-serviço
  • clientes machine que precisam de acesso estável e com escopo

Chaves de API devem ter:

  • um proprietário
  • um ambiente
  • uma lista de escopos
  • hora de criação
  • hora de último uso quando o armazenamento existe
  • caminho de rotação ou revogação

Não coloque chaves de API brutas em exemplos OpenAPI, catálogos de ferramentas MCP, logs, capturas de tela ou configuração versionada.

Tokens Bearer

Tokens Bearer são credenciais de request enviadas no header Authorization.

Use tokens Bearer para:

  • tokens de usuário de curta duração
  • tokens de serviço com escopos explícitos
  • futuros fluxos OAuth ou token first-party

Tokens Bearer devem ser tratados como segredos mesmo quando são de curta duração.

O framework não deve prescrever um formato de token antes que um adaptador de autenticação exista.

Escopos

Escopos descrevem capacidades permitidas.

A nomenclatura inicial de escopos deve permanecer pequena e legível:

  • read:system
  • read:health
  • read:docs
  • write:* somente após as ferramentas de escrita serem projetadas
  • admin:* somente após a política de admin ser documentada

Ferramentas MCP devem declarar os escopos mínimos que requerem antes do uso em produção.

Desenvolvimento Local

Desenvolvimento local pode usar credenciais placeholder apenas quando elas são claramente não-secretas e documentadas como exemplos.

Ferramentas locais podem:

  • chamar endpoints HTTP locais públicos sem credenciais quando o endpoint é intencionalmente público
  • usar chaves de API apenas para teste geradas fora do repositório
  • documentar nomes de variáveis de ambiente necessárias sem valores

Ferramentas locais não devem:

  • ler valores .env através de ferramentas MCP
  • imprimir credenciais na saída de comando
  • depender do armazenamento privado de credenciais do desenvolvedor
  • contornar autenticação de forma que se assemelhe ao comportamento de produção

Expectativas de Produção

Autenticação de produção requer design explícito antes da implementação.

Antes de habilitar credenciais de produção, documente:

  • tipo de credencial
  • proprietário e processo de rotação
  • ambientes permitidos
  • escopos necessários
  • backend de armazenamento
  • campos de auditoria
  • comportamento de falha para credenciais ausentes, inválidas, expiradas ou insuficientes

Falhas de validação de credenciais devem usar respostas Problem Details e não devem revelar se um valor secreto existe.

Logging e Observabilidade

Logs podem incluir:

  • id de request
  • tipo de credencial
  • id do proprietário da credencial quando seguro
  • nomes de escopos
  • resultado da autenticação
  • categoria de motivo de falha

Logs não devem incluir:

  • chaves de API brutas
  • tokens Bearer
  • cookies
  • headers de autorização
  • hashes de credenciais

OpenAPI e MCP

Esquemas de segurança OpenAPI devem corresponder ao middleware implementado.

Quando adicionado, OpenAPI deve descrever:

  • localização da credencial
  • escopos necessários
  • respostas Problem Details 401 e 403
  • exemplos sem segredos reais

Metadados MCP devem referenciar escopos necessários, não credenciais brutas.

Ferramentas MCP de escrita, admin e destrutivas requerem autenticação, autorização, auditoria, propagação de request id e comportamento de confirmação antes da implementação.

Publicado sob a licença MIT.