authentication oauth saml jwt bearer-token security decoding

Guia de decodificação de tokens de autenticação: OAuth, SAML e tokens Bearer

Um guia técnico para decodificar e depurar tokens de autenticação modernos. Aprenda como analisar tokens de acesso OAuth, asserções SAML e tokens Bearer para análise de segurança.

Guia de decodificação de tokens de autenticação: OAuth, SAML e tokens Bearer

No desenvolvimento web moderno, a autenticação raramente é tão simples quanto um nome de usuário e uma senha. Em vez disso, os sistemas trocam "tokens" — strings opacas ou semitransparentes que carregam dados de identidade e permissão. Ao depurar fluxos de autenticação ou realizar auditorias de segurança, ser capaz de decodificar e inspecionar esses tokens é uma habilidade crítica.

Este guia explora a estrutura técnica dos tokens de autenticação mais comuns e como decodificá-los.


1. O Token Bearer (JWT e além)

O Token Bearer (portador) é a forma mais comum de autenticar solicitações de API. Ele é normalmente enviado no cabeçalho Authorization:

Authorization: Bearer <token>

O que é um Token Bearer?

Um token Bearer é um token de segurança que concede acesso a quem o "carrega". É como uma chave física; o sistema não se importa com quem você é, apenas que você tenha a chave.

Decodificando Tokens Bearer

A maioria dos tokens Bearer modernos são JWTs (JSON Web Tokens). Um JWT consiste em três partes codificadas em Base64Url:

  1. Header (Cabeçalho): Metadados sobre o token (algoritmo, tipo).
  2. Payload (Carga útil): As "claims" ou reivindicações (ID do usuário, expiração, escopos).
  3. Signature (Assinatura): Prova criptográfica de que o token não foi adulterado.

Para decodificar um JWT manualmente, você pode dividir a string pelos pontos e usar um decodificador Base64Url nas duas primeiras partes. Para uma experiência mais visual, você pode usar um Decodificador JWT.


2. Decodificação de Tokens OAuth

O OAuth 2.0 usa vários tipos de tokens, mas o que você encontrará com mais frequência é o Access Token (token de acesso).

Tokens opacos vs. estruturados

  • Tokens estruturados (JWT): Como descrito acima, estes podem ser decodificados localmente para ver os dados do usuário.
  • Tokens opacos: São strings aleatórias (como ghp_... para GitHub) que não têm significado para o cliente. Eles só podem ser "decodificados" pelo Servidor de Autorização que os emitiu, geralmente por meio de um ponto de extremidade de introspecção (Introspection Endpoint).

Como inspecionar um token OAuth

Se o token for um JWT, siga o processo padrão de decodificação de JWT. Se for opaco, você pode precisar consultar a documentação do provedor específico (Google, Microsoft, GitHub) para ver se eles fornecem uma ferramenta de depuração ou uma API para inspecionar os metadados do token (escopos, expiração, etc.).


3. Decodificador de Asserção SAML

SAML (Security Assertion Markup Language) é o irmão mais velho do JWT, baseado em XML. É amplamente utilizado em Single Sign-On (SSO) empresarial.

O fluxo SAML

Quando você faz login via SAML, o Provedor de Identidade (IdP) envia uma SAMLResponse para seu aplicativo, geralmente como um campo de formulário oculto.

Como decodificar uma asserção SAML

Uma asserção SAML é normalmente um documento XML codificado em Base64.

  1. Decodificação Base64: Converta a string de volta em XML bruto.
  2. Formatação (Pretty Print): Formate o XML para que seja legível.
  3. Inspecionar reivindicações: Procure por <saml:AttributeStatement> para encontrar o e-mail do usuário, funções e outros atributos.

Como as asserções SAML são XML, elas são muito mais detalhadas do que os JWTs e geralmente incluem assinaturas digitais (<ds:Signature>) e, às vezes, criptografia.


4. Decodificador de autenticação básica (Basic Auth)

Embora mais antiga, a Basic Auth ainda é comum para APIs simples ou ferramentas internas.

Authorization: Basic dXNlcm5hbWU6cGFzc3dvcmQ=

Decodificando Basic Auth

A string após Basic é uma string simples codificada em Base64 no formato usuario:senha. Para decodificá-la:

  1. Pegue a string dXNlcm5hbWU6cGFzc3dvcmQ=.
  2. Decodifique em Base64 para obter usuario:senha.

Tabela de resumo: Decodificação de tokens em um relance

Tipo de Token Prefixo de Cabeçalho Formato Método de decodificação
JWT Bearer JSON / Base64Url Decodificação Base64Url + Análise JSON
OAuth (Opaco) Bearer String Aleatória API de introspecção de token
SAML N/A (Formulário) XML / Base64 Decodificação Base64 + Análise XML
Basic Auth Basic String / Base64 Decodificação Base64

Conclusão

Entender como decodificar tokens de autenticação é essencial para solucionar erros de "Não autorizado" e garantir que seu aplicativo esteja passando as permissões corretas. Esteja você lidando com um JWT moderno ou uma asserção SAML legada, o primeiro passo é sempre identificar a codificação (geralmente Base64) e o formato subjacente (JSON ou XML).

Precisa de uma maneira rápida de inspecionar um token? Use nosso Decodificador JWT para analisar seus tokens com segurança localmente em seu navegador.