Saltar para o conteúdo principal
Didit angaria 7,5 milhões de dólares para construir a infraestrutura para identidade e fraude
Didit
Voltar ao blog
Blog · 11 de abril de 2026

Segurança OAuth: Um Guia para Desenvolvedores (PT-PT)

Aprenda a proteger fluxos de autorização OAuth, proteger tokens de acesso e mitigar vulnerabilidades comuns. Implemente as melhores práticas de segurança de API com este guia completo.

Por DiditAtualizado
oauth-security-a-developers-guide.png

Segurança OAuth: Um Guia para Desenvolvedores

O OAuth 2.0 é o padrão da indústria para autorização delegada. Permite que aplicações de terceiros acedam a recursos limitados em nome de um utilizador sem expor as suas credenciais. No entanto, implementar o OAuth de forma segura é complexo. Este guia oferece uma análise aprofundada das melhores práticas de segurança OAuth para desenvolvedores, cobrindo vulnerabilidades comuns e estratégias de mitigação.

Ponto Chave 1 A segurança OAuth não se resume ao fornecedor OAuth; é uma responsabilidade partilhada entre o fornecedor, a aplicação cliente e o servidor de recursos.

Ponto Chave 2 A validação adequada dos URIs de redirecionamento é crucial para evitar ataques de interceção de código de autorização.

Ponto Chave 3 Utilizar tokens de acesso de curta duração e rotação de tokens de atualização reduz significativamente o impacto do comprometimento de tokens.

Ponto Chave 4 Auditar regularmente a sua implementação OAuth e manter-se atualizado com as melhores práticas de segurança é essencial.

Compreender os Fluxos OAuth e as Vulnerabilidades

O OAuth 2.0 define vários tipos de concessão, cada um adequado para diferentes cenários de aplicação. Os mais comuns são:

  • Concessão de Código de Autorização: Utilizado para aplicações web e móveis onde o cliente pode armazenar um segredo de cliente de forma segura.
  • Concessão Implícita: (Descontinuada) Utilizado para aplicações de página única (SPAs) mas é menos seguro devido à exposição de tokens de acesso na URL.
  • Concessão de Credenciais de Password do Proprietário de Recursos: (Desencorajado) Requer que o cliente recolha o nome de utilizador e a password do utilizador, o que representa um risco de segurança.
  • Concessão de Credenciais do Cliente: Utilizado para autenticação máquina a máquina onde não está disponível um contexto de utilizador.

Várias vulnerabilidades podem surgir durante o fluxo OAuth:

  • Interceção de Código de Autorização: Atacantes redirecionam utilizadores para um site malicioso que se assemelha ao servidor de autorização, roubando o código de autorização.
  • Manipulação do URI de Redirecionamento: Exploração de URIs de redirecionamento mal configurados para enviar códigos de autorização para servidores controlados por atacantes.
  • Falsificação de Pedido Inter-Site (CSRF): Atacantes enganam os utilizadores para autorizar uma aplicação maliciosa.
  • Roubo de Token: Comprometer tokens de acesso ou tokens de atualização através de vulnerabilidades de armazenamento ou interceção de rede.
  • Impersonificação do Cliente: Atacantes que utilizam um ID de cliente e segredo comprometidos para aceder a recursos.

Garantir a Sua Implementação OAuth

Mitigar estas vulnerabilidades requer uma abordagem em camadas:

1. Validação do URI de Redirecionamento

Valide rigorosamente os URIs de redirecionamento. Permita apenas URIs de redirecionamento pré-registados e explicitamente definidos. Implemente uma abordagem de lista branca e evite padrões curinga. Certifique-se de que o esquema do URI de redirecionamento (http vs. https) também é validado. O OAuth 2.0 RFC 6749 secção 3.1.2 enfatiza a importância da validação do URI de redirecionamento.

2. Parâmetro State e Nonce

Utilize o parâmetro state para evitar ataques CSRF. Gere um valor state aleatório criptograficamente antes de redirecionar para o servidor de autorização e verifique-o ao receber o callback. Considere também utilizar um parâmetro nonce para segurança adicional.

3. PKCE (Prova de Troca de Chave de Código)

Implemente o PKCE, especialmente para clientes públicos (por exemplo, aplicações móveis, SPAs) que não conseguem armazenar um segredo de cliente de forma segura. O PKCE adiciona uma camada extra de proteção, garantindo que apenas a aplicação que iniciou o pedido de autorização pode trocar o código de autorização por um token de acesso.

// Exemplo de código PKCE (simplificado)
// Gere um verificador de código
let codeVerifier = generateRandomString();
// Gere um desafio de código a partir do verificador de código
let codeChallenge = generateCodeChallenge(codeVerifier);
// Inclua codeChallenge e codeChallengeMethod no pedido de autorização
// ...
// Troque o código de autorização por um token de acesso, fornecendo o verificador de código
// ...

4. Gestão de Tokens

Utilize tokens de acesso de curta duração para minimizar o impacto do comprometimento de tokens. Implemente a rotação do token de atualização, onde um novo token de atualização é emitido com cada atualização do token de acesso, invalidando o token de atualização anterior. Armazene os tokens de forma segura utilizando encriptação e controlos de acesso. Nunca armazene tokens no código do lado do cliente.

Considerações de Segurança da API

Garantir os seus endpoints de API é tão crucial como garantir o fluxo OAuth. Implemente estas melhores práticas:

  • Validação de Token: Valide minuciosamente os tokens de acesso antes de conceder acesso aos recursos. Verifique a assinatura, o tempo de expiração e o público (aud claim) do token.
  • Validação de Âmbito: Faça cumprir as restrições de âmbito. Certifique-se de que o token de acesso tem os âmbitos necessários para aceder ao recurso solicitado.
  • Limitação de Taxa: Implemente a limitação de taxa para evitar abusos e ataques de negação de serviço.
  • Validação de Entrada: Valide todas as entradas da API para evitar ataques de injeção.
  • Apenas HTTPS: Force o HTTPS para toda a comunicação da API.

Como a Didit Ajuda

A Didit fornece capacidades robustas de verificação de identidade e avaliação de risco que complementam a segurança OAuth. Ao integrar a Didit no seu fluxo OAuth, pode:

  • Verificar a identidade do utilizador antes de emitir tokens de acesso.
  • Detetar atividades fraudulentas e prevenir acessos não autorizados.
  • Aumentar a segurança da API com controlo de acesso baseado em risco.
  • Cumprir os requisitos regulamentares relacionados com a verificação de identidade e AML.

O módulo de Screening AML da Didit pode ser integrado para verificar os utilizadores em relação a listas de verificação globais durante o processo OAuth, adicionando uma camada extra de segurança.

Pronto para Começar?

Implementar uma segurança OAuth robusta é fundamental para proteger a sua aplicação e os dados do utilizador. Ao seguir as melhores práticas descritas neste guia, pode reduzir significativamente o risco de vulnerabilidades relacionadas com o OAuth.

Recursos:

Infraestrutura para identidade e fraude.

Uma API para KYC, KYB, Monitorização de Transações e Rastreio de Carteiras. Integre em 5 minutos.

Peça a uma IA para resumir esta página
Segurança OAuth: Guia do Desenvolvedor.