Estúdio de Tokens
Privacy FirstInspecione e gere JWT/JWK/JWKS.
Header
Payload
Signature
O que é um JWT?
Um JSON Web Token (JWT) é um meio compacto e seguro para URLs de representar claims transferidas entre duas partes. Um JWT consiste em três partes codificadas em Base64URL separadas por pontos: o Header (algoritmo e tipo), o Payload (claims) e a Signature. A assinatura garante que o token não foi adulterado. JWTs são comumente usados para autenticação e troca de informações em APIs web. As claims padrão incluem sub (subject), iss (issuer), aud (audience), exp (expiration), nbf (not before), iat (issued at) e jti (JWT ID).
Algoritmos JWT
HS256/384/512 usa HMAC com SHA-2 e um segredo compartilhado — simples, mas ambas as partes precisam ter a mesma chave. RS256/384/512 usa assinaturas assimétricas RSA PKCS#1 v1.5 — ideal para arquiteturas de microsserviços onde os serviços só precisam da chave pública. ES256/384/512 usa ECDSA com curvas NIST para assinaturas menores que RSA com segurança equivalente. PS256/384/512 usa RSA-PSS, uma variante probabilística preferida em vez de RS* em sistemas modernos.
JWK e JWKS
Um JSON Web Key (JWK) é uma estrutura JSON que representa uma chave criptográfica. Um JWK Set (JWKS) é uma estrutura JSON contendo um array de JWKs na propriedade keys. Os serviços publicam seu JWKS em uma URL bem conhecida (ex.: /.well-known/jwks.json), permitindo que os clientes obtenham chaves públicas para verificação de JWT sem troca de chaves fora de banda. As chaves em um JWKS são identificadas pelo seu kid (Key ID), que os headers do JWT referenciam.
Boas práticas de segurança
Sempre valide as claims exp, nbf, iss e aud no lado do servidor. Nunca use o algoritmo alg: none em produção — ele remove toda a proteção da assinatura. Prefira algoritmos assimétricos (RS*, ES*, PS*) em vez de HMAC quando múltiplos serviços precisarem verificar tokens. Rotacione as chaves regularmente e use o kid para identificar qual chave foi usada para assinar cada token. Armazene chaves privadas com segurança — nunca as envie para o controle de versão. Use tempos de expiração curtos e refresh tokens em vez de JWTs de longa duração.