Software

Segurança de API: OAuth 2.0, tokens, limitação de pedidos e autorização

As API podem expor diretamente dados e funções críticas. A segurança deve fazer parte da arquitetura, não ser acrescentada depois.

O que contém este artigo?

As API podem expor diretamente dados e funções críticas. A segurança deve fazer parte da arquitetura, não ser acrescentada depois.

A autenticação, por si só, não basta. Verificar a identidade de um utilizador não significa que tenha autorização para aceder a todos os recursos.

TLS deve ser obrigatório

Use TLS no tráfego API de produção para não transmitir credenciais e tokens em claro.

OAuth 2.0

OAuth 2.0 fornece uma estrutura padrão para tipos de clientes e cenários de autorização. Escolha o fluxo conforme o caso de uso.

Validade dos tokens de acesso

Um token de acesso duradouro comprometido aumenta o risco. Quando necessário, podem usar-se tokens de curta duração e refresh tokens controlados.

Autorização

Controle o acesso aos endpoints por função ou permissão e também por objeto: mudar um ID não deve permitir aceder a dados de outro cliente.

Utilizar scopes

Limitar os tokens aos recursos e operações necessários apoia o menor privilégio.

Limitação de frequência dos pedidos

Limites por utilizador, cliente ou IP podem conter abuso, força bruta e ciclos incorretos dos clientes.

Gestão de segredos

Não guarde chaves API ou client secrets em Git. Podem usar-se variáveis de ambiente ou cofres de segredos.

Validação da entrada

Trate todas as entradas da API como dados não fiáveis. Valide esquema, tipo, comprimento e regras de negócio.

Registo de auditoria

  • Quem efetuou a operação?
  • A que recurso se acedeu?
  • Que operação foi efetuada?
  • Quando foi efetuada?
  • Foi a transação bem-sucedida?

Lista de verificação das integrações em produção

Em produção, integre no modelo operacional os seguintes elementos: TLS obrigatório, OAuth 2.0 e a validade dos tokens de acesso. Defina origem, destino, responsável pelos dados, autenticação, tabela de mapeamento e responsável pelas falhas de cada integração. Um endpoint funcional não significa sucesso se atualizar o produto, cliente ou encomenda errados.

Considere os tempos limite, limites de frequência, falhas temporárias de rede, pedidos duplicados e respostas inesperadas como cenários normais em produção. Repita apenas falhas temporárias e use idempotência quando repetir uma operação possa ter efeitos financeiros ou operacionais. Passar tarefas demoradas para uma fila separa o pedido do utilizador do desempenho do serviço externo e permite reprocessar falhas de forma controlada.

Monitorize os resultados de negócio, não apenas os códigos HTTP. Uma API pode devolver HTTP 200 sem que qualquer encomenda chegue ao ERP. Mostre número de pedidos, taxa de erro, latência P95, novas tentativas, tarefas em fila e última sincronização bem-sucedida juntamente com os volumes de encomendas, stocks ou clientes transferidos. Os ID de correlação e registos estruturados ajudam a seguir uma operação entre serviços durante um incidente.

  • Autenticação e gestão de segredos
  • Mapeamento de dados e validação de esquemas
  • Política de tempos limite e novas tentativas
  • Idempotência e controlo de duplicados
  • Gestão dos limites de frequência dos pedidos
  • Registos estruturados e ID de correlação
  • Reconciliação de dados de negócio
  • Alerta e painel

Contrato de API, modo de falha e consistência de dados

Não conceba apenas o fluxo de pedido-resposta bem-sucedido. Estabeleça um contrato API claro para TLS obrigatório, OAuth 2.0 e a validade dos tokens de acesso, com campos obrigatórios, tipos, valores enum, autenticação, tempos limite, códigos de erro e alterações incompatíveis. Defina antecipadamente que respostas exigem nova tentativa, paragem ou intervenção humana para tornar o comportamento mais previsível.

Além da indisponibilidade total de um serviço, preveja respostas lentas, dados parciais, eventos duplicados ou fora de ordem, limites de frequência e falhas temporárias de autenticação. As novas tentativas podem usar backoff exponencial e, quando adequado, jitter. A idempotência ou chaves de negócio únicas reduzem duplicados ao reprocessar encomendas, pagamentos, stocks ou clientes.

Uma resposta API bem-sucedida não basta para confirmar a coerência dos dados. Reconcilie origem e destino por número de registos, valor total, última sincronização ou ID de negócio para detetar divergências. Registos estruturados, ID de correlação e acompanhamento central de erros ajudam a localizar mais depressa o serviço que falhou. A ligação torna-se assim um componente operacional auditável e sustentável.

  • Validação dos esquemas de pedido e resposta
  • Matriz de tempos limite e novas tentativas
  • Idempotência ou chaves de negócio únicas
  • Limites de frequência e gestão de capacidade
  • ID de correlação e registos estruturados
  • Verificações de reconciliação entre origem e destino
  • Política de versões e alterações incompatíveis

A abordagem de integração da B10 Digital Agency

A B10 Digital Agency trata a integração como arquitetura de sistemas, não apenas uma ligação API: contratos de dados, segurança, novas tentativas, filas, observabilidade, reconciliação e operação são concebidos em conjunto.

Perguntas frequentes

O OAuth 2.0 é o protocolo de autenticação?

OAuth é sobretudo uma estrutura de autorização. Na autenticação, pode combinar-se com camadas como OpenID Connect.

O JWT é necessário para cada API?

Não. Escolha o formato do token conforme a arquitetura.

Limitar a frequência basta para a segurança?

Não. É apenas uma camada de defesa.

A chave API pode ser mantida no código fonte?

Os segredos de produção devem ser geridos fora do código fonte e do repositório.

Artigos relacionados

Combine seus sistemas com fluxo de dados confiável

Conheça as integrações API e sistemas da B10 Digital Agency para planear a arquitetura de ERP, CRM, marketplaces, software à medida e serviços de terceiros.

Conhecer as integrações API e sistemas →

Fontes e documentos relacionados

Estes documentos servem de referência para os métodos e regras abordados neste artigo.

B10 Digital Agency

Segurança de API: OAuth 2.0, tokens, limitação de pedidos e autorização