Como depurar autenticação JWT com segurança
Um processo atento à segurança para separar estrutura do token, validação de declarações, verificação de assinatura e decisões de autorização.
Decodificar um JWT mostra apenas o texto fornecido por quem criou o token. Isso não comprova identidade, integridade nem aceitação pelo servidor até que a assinatura e as declarações obrigatórias sejam verificadas.
Trabalhe com tokens de teste anonimizados sempre que possível. Um bearer token de produção concede acesso a quem o obtiver até que expire ou seja revogado.
Revise a estrutura e as declarações de tempo
Confirme que o token tenha três segmentos JWS e decodifique o cabeçalho e a carga útil. Verifique exp, nbf e iat como segundos Unix, incluindo a diferença de relógio permitida.
Verifique se iss, aud, sub, tenant, client_id e o tipo de token correspondem exatamente ao ambiente e à API que recebem a requisição.
Verifique o algoritmo e a assinatura
O servidor deve aceitar somente os algoritmos esperados e selecionar a chave confiável correta. Nunca aceite alg none nem decida a verificação apenas com base em um cabeçalho não confiável.
Durante a rotação de chaves, revise kid, o conjunto JWKS atual, a duração do cache e a sobreposição entre as chaves de assinatura antigas e novas.
Separe autenticação de autorização
Uma assinatura válida não concede todas as ações. Compare escopos, funções, permissões, propriedade do recurso e decisões de política com os requisitos do endpoint.
Registre o estágio exato da rejeição e o erro do servidor sem armazenar o bearer token completo.
Checklist de depuração JWT
- Use um token de teste curto e anonimizado.
- Confira exp, nbf, iat e a diferença de relógio em segundos Unix.
- Faça emissor, público-alvo, ambiente e tipo de token coincidirem.
- Restrinja os algoritmos aceitos e verifique a assinatura.
- Verifique kid e o comportamento durante a rotação de chaves.
- Valide a autorização depois que a autenticação funcionar.
Guias relacionados
Entenda o workflow por trás desta ferramenta e o que revisar depois.
Como depurar payloads JSON de API
Um workflow prático para formatar JSON, encontrar erros de sintaxe, validar o formato do payload e revisar o status quando dados de API parecem errados.
Como depurar uma resposta JSON de API passo a passo
Um processo repetível para separar erros de transporte, problemas de sintaxe JSON e falhas do contrato de dados nas respostas de uma API.