CoderTools

Codificador/Decodificador JWT

Decodifique, verifique e gere tokens JWT com segurança

JWT Decodificado

Cabeçalho


                        

Carga Útil


                        

Assinatura


                        

O que é JWT?

JSON Web Token (JWT)

JWT (JSON Web Token) é um padrão aberto (RFC 7519) que define uma forma compacta e autocontida de transmitir informações com segurança entre partes como um objeto JSON. Essas informações podem ser verificadas e confiáveis porque são assinadas digitalmente. JWTs podem ser assinados usando um segredo (com o algoritmo HMAC) ou um par de chaves pública/privada usando RSA ou ECDSA.

Estrutura do JWT

Um JWT consiste em três partes separadas por pontos (.), que são:

xxxxx.yyyyy.zzzzz
  • Cabeçalho : Contém o tipo de token (JWT) e o algoritmo de assinatura (por exemplo, HS256, RS256)
  • Carga Útil : Contém as declarações - afirmações sobre uma entidade (tipicamente o usuário) e dados adicionais
  • Assinatura : Usada para verificar se o remetente do JWT é quem diz ser e garantir que a mensagem não foi alterada no caminho

Algoritmos de Assinatura

JWT suporta vários algoritmos de assinatura:

  • HS256: HMAC com SHA-256. Algoritmo simétrico usando um segredo compartilhado
  • HS384: HMAC com SHA-384. Algoritmo simétrico com hash mais forte
  • HS512: HMAC com SHA-512. Algoritmo simétrico com hash mais forte
  • RS256: Assinatura RSA com SHA-256. Algoritmo assimétrico usando par de chaves pública/privada
  • RS384: Assinatura RSA com SHA-384. Algoritmo assimétrico com hash mais forte
  • RS512: Assinatura RSA com SHA-512. Algoritmo assimétrico com hash mais forte

Declarações Padrão

JWT define várias declarações padrão (nomes de declaração registrados) que fornecem informações úteis:

  • iss (Issuer): Emissor do token
  • sub (Subject): Assunto do token (ID do usuário)
  • aud (Audience): Público-alvo pretendido
  • exp (Expiration Time): Tempo de expiração (timestamp Unix)
  • nbf (Not Before): Não válido antes do tempo
  • iat (Issued At): Emitido no momento
  • jti (JWT ID): Identificador único do token

Casos de Uso Comuns

  • Autenticação: Após o login do usuário, cada solicitação subsequente inclui o JWT, permitindo acesso a rotas, serviços e recursos
  • Troca de Informações: Transmita informações com segurança entre partes com verificação de assinatura
  • Single Sign-On (SSO): Amplamente usado para recursos de SSO devido à baixa sobrecarga e capacidade entre domínios
  • Autorização de API: Autenticação sem estado para APIs RESTful
  • OAuth 2.0 e OpenID Connect: Componente central dos protocolos de autenticação modernos

Nota de Segurança: Tokens JWT são assinados para verificar autenticidade, mas não são criptografados por padrão. Não armazene informações sensíveis na carga útil, a menos que criptografadas separadamente. Sempre use HTTPS para transmitir tokens. Armazene tokens com segurança (por exemplo, cookies httpOnly para aplicações web). Implemente mecanismos adequados de expiração e renovação de tokens. Nunca exponha sua chave secreta no código do lado do cliente.

Referências