Autenticação e Autorização em APIs: OAuth 2.0 e JSON Web Token (JWT)

Por
Publicado em
5 min. de leitura

A segurança em APIs deixou de ser um assunto restrito a arquitetos de sistemas e passou a ocupar posição central no desenvolvimento moderno. Em praticamente qualquer aplicação atual — seja web, mobile ou distribuída em microsserviços — existe a necessidade de controlar quem pode acessar determinados recursos e em quais condições.

Nesse cenário, dois conceitos aparecem com frequência tanto na prática profissional quanto nas provas de concursos públicos: OAuth 2.0 e JSON Web Token (JWT). Apesar de muitas vezes serem citados juntos, eles não desempenham o mesmo papel. Entender essa diferença com clareza é essencial para evitar erros conceituais e, principalmente, para acertar questões que exploram justamente essa confusão.

Autenticação e autorização

Antes de falar em protocolos e tokens, é importante organizar as ideias.

Autenticação é o processo de confirmar a identidade de alguém. É o momento em que o sistema verifica se você é, de fato, quem afirma ser — normalmente por meio de senha, biometria ou outro fator de verificação.

Autorização, por sua vez, ocorre depois da autenticação. Ela define o que aquele usuário autenticado pode fazer: quais dados pode visualizar, quais operações pode executar e quais recursos estão ao seu alcance.

Essa distinção é básica, mas frequentemente cobrada em provas. Muitas questões exploram justamente a troca indevida desses termos.

O papel do OAuth 2.0

O OAuth 2.0 é um framework de autorização. Ele foi criado para permitir que uma aplicação obtenha acesso limitado a recursos protegidos em nome de um usuário, sem que esse usuário precise compartilhar sua senha com a aplicação.

Na prática, isso significa que:

  • o usuário é autenticado por um servidor confiável (como Google, Microsoft ou outro provedor);
  • esse servidor emite um token de acesso;
  • a aplicação cliente utiliza esse token para acessar os recursos autorizados.

O ponto central é que a senha do usuário não é exposta à aplicação de terceiros. O acesso é concedido por meio de um mecanismo intermediado e controlado.

Autorização delegada: a ideia central

O conceito-chave do OAuth é a autorização delegada.

Imagine que você deseje permitir que um aplicativo de agenda acesse seus contatos armazenados em outro serviço. Em vez de fornecer sua senha ao aplicativo, você autoriza o acesso por meio de um fluxo controlado. O servidor de autorização valida sua identidade e emite um token com permissões específicas.

Esse token pode ter escopo limitado e tempo de validade reduzido. Assim, mesmo que seja interceptado ou utilizado indevidamente, o impacto é minimizado.

Tokens no contexto do OAuth

Dois tipos de token aparecem com frequência:

  • Access Token: é o token utilizado para acessar o recurso protegido.
  • Refresh Token: é utilizado para obter um novo access token quando o anterior expira, sem que o usuário precise se autenticar novamente.

Esse modelo melhora a segurança e permite maior controle sobre sessões e permissões concedidas.

O que é JWT?

O JSON Web Token (JWT) não é um protocolo de autorização. Ele é um formato de token.

Em termos simples, o JWT é uma forma padronizada de representar informações de maneira compacta e verificável. Ele pode ser utilizado em diversos contextos: autenticação, autorização ou troca de informações entre sistemas.

É comum que o OAuth 2.0 utilize JWT como formato do access token, mas isso não é obrigatório. São camadas diferentes do processo.

Estrutura do JWT

Um JWT é composto por três partes:

  1. Header (cabeçalho) – informa o tipo do token e o algoritmo de assinatura.
  2. Payload (corpo) – contém as informações (claims).
  3. Signature (assinatura) – garante a integridade do token.

Essas partes são codificadas e separadas por pontos, formando uma sequência como:

header.payload.signature

A assinatura impede que o conteúdo seja alterado sem que isso seja detectado.

Claims e informações transportadas

No payload podem aparecer diferentes informações, chamadas de claims. Entre as mais comuns estão:

  • sub (subject): identifica o usuário;
  • exp (expiration): define a data de expiração;
  • iat (issued at): indica quando o token foi emitido;
  • iss (issuer): identifica quem emitiu o token.

Essas informações permitem que o servidor valide o token e decida se o acesso deve ser concedido.

OAuth e JWT: como se relacionam

É aqui que muitas provas tentam confundir o candidato.

  • O OAuth 2.0 define o fluxo de autorização e delegação de acesso.
  • O JWT define o formato do token que pode ser usado dentro desse fluxo.

Portanto, é perfeitamente correto afirmar que OAuth pode utilizar JWT, mas não se pode afirmar que são equivalentes.

Essa distinção é conceitualmente simples, mas recorrente em provas de alto nível.

Vamos ver como isso é cobrado nos concursos?

1. Ano: 2026 Banca: CESPE / CEBRASPE Órgão: TCE-MG Prova: CESPE / CEBRASPE – 2026 – TCE-MG – Analista de Controle Externo – Especialidade: Ciência da Computação

O OAuth é um padrão de autenticação SSO (single sign-on) no qual

  1. as aplicações utilizam um conjunto de regras para trocar informações de autenticação.
  2. o provedor de serviços assume o papel de autenticar as credenciais do usuário.
  3. duas ou mais partes verificam mutuamente suas identidades na rede.
  4. um único conjunto de credenciais de usuário é utilizado para acessar diversos sites.
  5. as aplicações obtêm acesso seguro às informações do usuário de outros sites sem necessidade de fornecer senhas. 

Gabarito: E

Comentário:

A – Incorreta.
A alternativa é genérica e não descreve o mecanismo específico do OAuth. Ele não é apenas um conjunto de regras para troca de autenticação, mas um framework de autorização delegada.

B – Incorreta.
Embora o provedor de serviços possa autenticar o usuário, essa não é a definição central do OAuth. O foco do OAuth está na concessão de autorização sem compartilhamento de senha.

C – Incorreta.
Essa alternativa descreve autenticação mútua (mutual authentication), não o funcionamento do OAuth.

D – Incorreta.
Essa definição se aproxima de Single Sign-On tradicional, mas não traduz corretamente o mecanismo de autorização delegada do OAuth.

E – Correta.
Essa alternativa descreve precisamente o princípio do OAuth: permitir que aplicações obtenham acesso a recursos do usuário sem necessidade de conhecer ou armazenar suas credenciais.


2. Ano: 2025 Banca: FCC Órgão: TRT – 15ª Região (SP) Prova: FCC – 2025 – TRT – 15ª Região (SP) – Técnico Judiciário – Área Apoio Especializado – Especialidade Tecnologia da Informação

Os JSON Web Tokens (JWT)

  1. só podem ser utilizados em aplicações móveis.
  2. requerem obrigatoriamente uma conexão segura (HTTPS) para seu funcionamento.
  3. servem para implementação de long-polling em aplicações web.
  4. contêm uma estrutura de três partes: cabeçalho, payload e assinatura.
  5. são sempre armazenados em cookies do navegador. 

Gabarito: D

Comentário:

A – Incorreta.
JWT pode ser utilizado em aplicações web, mobile, APIs REST e sistemas distribuídos. Não é restrito a aplicações móveis.

B – Incorreta.
Embora o uso de HTTPS seja altamente recomendado por questões de segurança, o JWT não depende tecnicamente de HTTPS para funcionar.

C – Incorreta.
Long-polling é uma técnica de comunicação para manter conexões abertas e não possui relação com o formato de token JWT.

D – Correta.
O JWT é composto por três partes: header, payload e signature, separadas por ponto e codificadas em Base64URL.

E – Incorreta.
JWT pode ser armazenado em diferentes locais, como header Authorization (Bearer token), localStorage ou cookies. Não existe obrigatoriedade de armazenamento em cookies.


3. Ano: 2025 Banca: CESPE / CEBRASPE Órgão: MPE-CE Prova: CESPE / CEBRASPE – 2025 – MPE-CE – Analista Ministerial – Especialidade: Ciências da Computação

Acerca de segurança da informação, segurança de datacenter, segurança de dispositivos e disponibilidade, julgue o item a seguir.

OAuth 2 é um protocolo que permite a autorização segura, sem revelar credenciais, enquanto JWT é um formato de token, que pode ser usado com OAuth 2 para transmitir informações de forma segura entre partes.

Gabarito: CERTO

Comentário:

O item está correto ao diferenciar claramente os papéis de cada tecnologia. O OAuth 2.0 estabelece o modelo de autorização delegada, enquanto o JWT define a estrutura do token que pode ser utilizado dentro desse fluxo para transportar informações de forma assinada e verificável.

Conclusão

A segurança em APIs exige mais do que implementar um login. É necessário compreender como a autorização é concedida e como os tokens são estruturados e validados.

OAuth 2.0 oferece um modelo robusto de autorização delegada, enquanto o JWT fornece um formato padronizado para transmissão segura de informações. Saber distinguir esses conceitos e entender como se complementam é fundamental para quem deseja atuar na área de desenvolvimento ou obter êxito em concursos públicos de TI.

Referências Bibliográficas

  • HARDT, D. The OAuth 2.0 Authorization Framework. RFC 6749, IETF.
  • JONES, M.; BRADLEY, J.; SAKIMURA, N. JSON Web Token (JWT). RFC 7519, IETF.
  • OWASP Foundation. OWASP API Security Top 10.
  • STALLINGS, W. Cryptography and Network Security. Pearson.
  • FIELDING, R. Architectural Styles and the Design of Network-Based Software Architectures.

Por
Publicado em
5 min. de leitura

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *