Skip to content
Latchkey

OAuth vs JWT: protocolo ou formato de token?

OAuth 2.0 é um framework de autorização para acesso delegado; JWT é um formato de token. Eles resolvem problemas diferentes e são frequentemente usados juntos.

OAuth 2.0 define fluxos pelos quais um app obtém acesso delegado a recursos sem manipular senhas de usuário, emitindo access e refresh tokens. JWT é um formato de token compacto e assinado que pode carregar claims e ser verificado sem consulta a banco de dados. OAuth frequentemente emite JWTs como access tokens, mas você pode usar JWTs sem OAuth e OAuth com tokens opacos. Eles são complementares, não concorrentes.

OAuth 2.0JWT
O que éFramework de autorizaçãoFormato de token
EscopoFluxos de acesso delegadoCodifica claims
VerificaçãoDepende do tipo de tokenAssinatura (stateless)
Usados juntosEmite tokensPode ser o token
Melhor paraAcesso de terceirosClaims stateless

Como se relacionam

Use OAuth quando você precisa de autorização delegada - permitindo que usuários concedam a um app acesso aos seus dados em outro serviço (os fluxos de "Entrar com X" e de acesso a API). Use JWT quando você precisa de um token autocontido e verificável carregando identidade ou claims. Um provedor OAuth comumente retorna um JWT access token, então o enquadramento correto é "qual fluxo OAuth" mais "qual formato de token".

Em CI

Pipelines frequentemente trocam credenciais de cliente OAuth por tokens de curta duração para chamar APIs; armazene segredos no secret store do CI, nunca no código. Em runners gerenciados, mascare as saídas de token e use OIDC sempre que possível para evitar segredos de longa duração.

O veredito

Precisa de acesso delegado e fluxos padrão de login/autorização: OAuth 2.0. Precisa de um token stateless e verificável carregando claims: JWT. A configuração comum e correta são fluxos OAuth que emitem JWT access tokens - eles são camadas do mesmo sistema, não um ou outro.

Guias relacionados