OAuth 2.0: o que é, fluxos e diferença para OIDC 

OAuth 2.0

OAuth 2.0 é o framework de autorização mais utilizado em aplicações modernas. Ele define como um sistema pode conceder a outro acesso a recursos protegidos, sem expor credenciais do usuário. 

Se você já permitiu que um aplicativo acesse seus dados do Google ou conectou uma ferramenta ao seu calendário corporativo, você usou OAuth 2.0. O protocolo está por trás de boa parte das integrações entre sistemas que usamos no dia a dia, corporativo ou não. 

O que é OAuth 2.0 

OAuth 2.0 é um protocolo aberto de autorização. Seu objetivo é simples: permitir que uma aplicação (cliente) acesse recursos de outra (servidor de recursos) em nome de um usuário, sem que esse usuário precise compartilhar suas credenciais. 

  • define papéis claros: cliente, servidor de autorização, servidor de recursos e usuário 
  • opera com tokens de acesso (Access Tokens) com escopo e tempo de vida controlados 
  • separa a concessão de autorização da autenticação do usuário 
  • é extensível: suporta diferentes fluxos para diferentes cenários de uso 

Principais fluxos do OAuth 2.0 

O OAuth 2.0 define quatro fluxos principais, cada um adequado a um tipo de aplicação: 

  • Authorization Code: o mais seguro, indicado para aplicações web e mobile com backend 
  • Client Credentials: usado em comunicação machine-to-machine, sem envolvimento do usuário 
  • Device Authorization: para dispositivos sem navegador ou com entrada limitada 
  • Implicit (legado): desaconselhado nas versões mais recentes por limitações de segurança 

Na prática corporativa, o fluxo Authorization Code com PKCE é o padrão recomendado para aplicações que envolvem usuários, enquanto o Client Credentials é a escolha natural para integrações entre sistemas. 

OAuth 2.0 e OIDC: qual a diferença real 

A distinção entre OAuth 2.0 e OIDC é fundamental para quem trabalha com IAM: 

  • OAuth 2.0 resolve autorização: define o que um sistema pode fazer em nome do usuário 
  • OIDC resolve autenticação: confirma quem é o usuário que está acessando 
  • OAuth 2.0 emite Access Tokens para acessar APIs e recursos 
  • OIDC emite ID Tokens com informações verificáveis sobre a identidade do usuário 
  • OIDC é construído sobre OAuth 2.0, não concorre com ele 

Na maioria das implementações modernas, os dois protocolos operam juntos: OIDC autentica o usuário e OAuth 2.0 gerencia as permissões de acesso subsequentes. 

OAuth 2.0 em ambientes corporativos 

Em estratégias de IAM corporativo, o OAuth 2.0 aparece em diversos cenários: 

  • integração entre sistemas internos e APIs de terceiros 
  • controle de acesso a microsserviços e plataformas de dados 
  • autorização de service accounts e workloads automatizadas 
  • federação de acesso entre ambientes on-premise e cloud 

O protocolo permite granularidade no controle de acesso: cada token pode ter escopos específicos, tempo de expiração definido e ser revogado sem impactar outras sessões. 

Riscos e boas práticas na implementação 

O OAuth 2.0 é robusto, mas implementações incorretas criam vulnerabilidades reais: 

  • uso do fluxo Implicit em vez do Authorization Code com PKCE 
  • tokens com escopos excessivamente amplos 
  • ausência de rotação e revogação de tokens 
  • falta de validação de redirect_uri, abrindo espaço para ataques de redirecionamento 
  • tokens de longa duração sem mecanismo de refresh seguro 

Revisar regularmente a implementação de OAuth 2.0 é parte essencial de qualquer programa de governança de identidade. 

OAuth 2.0 como base da estratégia de identidade 

Quando bem implementado, o OAuth 2.0 é um habilitador de segurança, não apenas um facilitador técnico: 

  • reduz a dependência de credenciais compartilhadas entre sistemas 
  • aumenta a rastreabilidade de quem acessa o quê e quando 
  • facilita auditorias e investigações de incidentes 
  • suporta o princípio de menor privilégio ao limitar escopos por token 

Em conjunto com o OIDC e o IAM, o OAuth 2.0 forma a espinha dorsal de uma arquitetura de identidade moderna, segura e auditável.