Apidog

Plataforma Colaborativa All-in-one para Desenvolvimento de API

Design de API

Documentação de API

Depuração de API

Mock de API

Testes Automatizados de API

O que é JWT e como funciona?

Os JSON Web Tokens (JWTs) são uma forma compacta e segura para URLs de representar credenciais a serem transferidas entre duas partes. Essas credenciais são frequentemente usadas para garantir a integridade e autenticidade das informações.

Miguel Oliveira

Miguel Oliveira

Updated on novembro 29, 2024

JSON Web Tokens (JWTs) são um meio compacto e seguro para URLs de representar alegações a serem transferidas entre duas partes. Essas alegações são frequentemente utilizadas para garantir a integridade e a autenticidade das informações.

Este artigo explora como os JWTs funcionam. Vamos examinar a estrutura de um JWT, que consiste em três partes codificadas e assinadas digitalmente. Em seguida, discutiremos casos de uso comuns para os JWTs e revisaremos alguns dos benefícios de usá-los,

A Estrutura de um JWT (Com Exemplo)

Um JSON Web Token (JWT) consiste em três partes separadas por pontos: Cabeçalho, Payload e Assinatura. A estrutura geral é:

xxxxxxxxxx.yyyyyyyyyy.zzzzzzzzzz

Cabeçalho:

  • O cabeçalho geralmente consiste em duas partes: o tipo do token, que é JWT, e o algoritmo de assinatura utilizado, como HMAC SHA256 ou RSA.
  • Exemplo de Cabeçalho (codificado em base64): eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9

Payload:

  • O payload contém alegações. Alegações são declarações sobre uma entidade (normalmente, o usuário) e dados adicionais.
  • Existem três tipos de alegações: alegações registradas, públicas e privadas.
  • Exemplo de Payload (codificado em base64): eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ

Assinatura:

  • Para criar a parte da assinatura, você precisa pegar o cabeçalho codificado, o payload codificado, um segredo, o algoritmo especificado no cabeçalho e assinar isso.
  • A assinatura é usada para verificar se o remetente do JWT é quem diz ser e para garantir que a mensagem não foi alterada ao longo do caminho.
  • Exemplo de Assinatura: HMACSHA256(base64UrlEncode(cabeçalho) + "." + base64UrlEncode(payload), segredo)

Juntando tudo:

Cabeçalho: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9
Payload: eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ
Assinatura: HMACSHA256(base64UrlEncode(cabeçalho) + "." + base64UrlEncode(payload), segredo)

JWT codificado:

eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwia

Os Benefícios de usar JWT:

JWTs contêm objetos JSON que são codificados e assinados, garantindo integridade e autenticidade sem depender de sessões com estado no servidor.

Alguns dos principais benefícios que tornam os JWTs úteis são:

  • Tamanho compacto devido à codificação JSON segura para URLs, para eficiência de espaço
  • Autocontido com todas as informações necessárias do usuário para evitar consultas excessivas ao banco de dados
  • Assinaturas digitais para segurança à prova de adulterações e verificação de autenticidade
  • Natureza sem estado para melhorar a escalabilidade ao remover sessões do lado do servidor
  • Interoperabilidade universal com analisadores JSON disponíveis na maioria das linguagens
  • Extensível por meio de campos de dados personalizados sem quebrar estruturas existentes

JWT vs OAuth: a Diferença entre JWT e OAuth

JWT (JSON Web Token) e OAuth estão relacionados, mas servem a propósitos diferentes no contexto de autenticação e autorização no desenvolvimento web. Aqui está uma breve comparação entre JWT e OAuth:

JWT (JSON Web Token):

  1. Propósito: JWT é uma forma compacta e autocontida de transmitir informações entre partes de forma segura. É comumente usado para autenticação e troca de informações.
  2. Conteúdo: JWT contém alegações sobre uma entidade (normalmente, um usuário) e é frequentemente usado para autenticação de usuários. As alegações podem incluir ID do usuário, papéis, permissões e outras informações relevantes. Os JWTs são frequentemente usados para criar sistemas de autenticação sem estado.
  3. Uso: Os JWTs geralmente são enviados como parte dos cabeçalhos da solicitação em requisições HTTP. Eles são usados para representar a identidade e os privilégios do usuário.

OAuth (Autorização Aberta):

  1. Propósito: OAuth é uma estrutura para autorização, permitindo que um aplicativo de terceiros acesse os recursos de um usuário em outro servidor sem expor as credenciais do usuário. OAuth não é projetado para autenticação, mas para delegação de autoridade.
  2. Papeis: OAuth define papéis como Proprietário de Recurso, Cliente, Servidor de Autorização e Servidor de Recursos. Ele possibilita cenários em que um usuário pode conceder acesso aos seus recursos (por exemplo, fotos, contatos) a outro aplicativo sem compartilhar suas credenciais.
  3. Tipos de Concessão: OAuth introduz tipos de concessão (código de autorização, implícito, credenciais de cliente, senha, etc.) para especificar como o processo de autorização deve ser realizado.
  4. Tokens: OAuth envolve o uso de tokens de acesso e tokens de atualização. Os tokens de acesso são usados para acessar recursos protegidos, e os tokens de atualização podem ser usados para obter um novo token de acesso.

Principais Diferenças:

  • Propósito: JWT é usado principalmente para autenticação e troca de informações, enquanto OAuth é uma estrutura para autorização.
  • Conteúdo: JWT contém alegações sobre um usuário, enquanto OAuth se concentra em definir papéis e permissões e gerenciar o acesso aos recursos.
  • Papeis: JWT é frequentemente usado para representar a identidade do usuário, enquanto OAuth envolve papéis como Proprietário de Recurso, Cliente, Servidor de Autorização e Servidor de Recursos.
  • Tokens: JWT é um tipo de token usado para autenticação, enquanto OAuth introduz tokens de acesso e tokens de atualização para gerenciar autorização.

Como o JWT Funciona?

JSON Web Tokens (JWTs) desempenham um papel fundamental na autenticação, proporcionando uma maneira segura e eficiente de verificar a identidade dos usuários. O processo normalmente envolve os seguintes passos:

  1. Autenticação do Usuário: Os usuários fazem login usando seu nome de usuário e senha ou através de provedores externos como Google ou Facebook. O servidor de autenticação valida as credenciais e emite um JSON Web Token (JWT) certificando a identidade do usuário.
  2. Geração de JWT: O provedor de identidade (IdP) gera um JWT, assinando-o com um sal secreto ou uma chave privada. Este JWT encapsula informações essenciais do usuário, como ID do usuário, papéis e tempo de expiração.
  3. Uso de JWT: O cliente do usuário armazena de forma segura o JWT obtido durante a autenticação. Ao acessar recursos protegidos, o cliente inclui o JWT no cabeçalho HTTP de Autorização.
  4. Verificação do Token: O servidor de recursos decodifica e verifica a autenticidade do JWT usando o sal secreto ou a chave pública fornecida. Este processo garante a integridade e a origem do token.

JWT no Apidog

Apidog é uma ferramenta de desenvolvimento e teste de API amigável que se destaca na gestão de JSON Web Tokens (JWT). Com sua interface intuitiva, o Apidog simplifica o processo de manuseio de JWTs, fornecendo suporte automático para geração de tokens, gerenciamento dinâmico e inclusão perfeita em requisições de API.

JWT

Esta ferramenta agiliza os aspectos relacionados a JWT do desenvolvimento de API, permitindo que os desenvolvedores se concentrem em testes e integrações eficientes dentro de seus fluxos de trabalho.

button
Como Usar o Ollama: Guia Completo para Iniciantes sobre LLMs Locais com OllamaPonto de vista

Como Usar o Ollama: Guia Completo para Iniciantes sobre LLMs Locais com Ollama

O cenário da inteligência artificial está em constante evolução, com os Grandes Modelos de Linguagem (LLMs) se tornando cada vez mais poderosos e acessíveis. Embora muitos interajam com esses modelos através de serviços baseados na nuvem, há um movimento crescente focado em executá-los diretamente em computadores pessoais. É aqui que entra o Ollama. O Ollama é uma ferramenta potente, porém fácil de usar, projetada para simplificar drasticamente o complexo processo de baixar, configurar e executa

Mikael Svenson

abril 28, 2025

Onde Baixar Swagger UI em Português GrátisPonto de vista

Onde Baixar Swagger UI em Português Grátis

Explore a dificuldade de obter uma interface em português para o Swagger UI e saiba por que o Apidog é uma alternativa de plataforma poderosa para o desenvolvimento de APIs.

Oliver Kingsley

abril 23, 2025

Onde Baixar o Postman em Português GrátisPonto de vista

Onde Baixar o Postman em Português Grátis

No mundo do desenvolvimento de software, especialmente ao trabalhar com APIs, ferramentas eficientes são essenciais. Postman se tornou um nome conhecido, uma plataforma popular usada por milhões de desenvolvedores para criar, testar e gerenciar APIs. No entanto, para muitos usuários de língua portuguesa, uma pergunta comum surge: é possível ter o Postman em português? A resposta curta é que Postman não oferece atualmente suporte nativo em português para sua interface de usuário. Mas não se preo

@apidog

abril 21, 2025