Português (Portugal)
  • postmortem

Postmortem: falhas de autenticação causadas pelo cache do JWKS e rotação da chave de assinatura

Postmortem do incidente de autenticação em 8 de janeiro de 2026 (PST).

Gao
Gao
Founder

Pare de perder semanas com autenticação de utilizadores
Lance aplicações seguras mais rapidamente com o Logto. Integre a autenticação de utilizadores em minutos e concentre-se no seu produto principal.
Começar
Product screenshot

Data: 8 de janeiro de 2026 (PST)

Duração: aproximadamente 60 minutos

Impacto: alguns inquilinos em produção experienciaram falhas ao iniciar sessão e na validação de tokens; o acesso à Console poderá ter sido afetado

Resumo

Um desfasamento entre uma chave de assinatura rodada e um JWKS em cache no nosso domínio *.logto.io causou falhas na validação de tokens. Limpámos o cache do JWKS e revertémos para a chave de assinatura anterior para restaurar o serviço.

Alguns utilizadores podem continuar a ver problemas ao iniciar sessão na Console devido ao cache do navegador. Lamentamos a interrupção causada por este incidente.

Linha temporal (PST)

  • 16:00 incidente começou (aumentaram os erros de validação de autenticação/token)
  • 16:35 causa raiz identificada (JWKS em cache enquanto a chave de assinatura era rodada)
  • 16:41 cache limpo
  • 16:49 chave de assinatura revertida
  • 17:00 serviço recuperado; monitorização continuada

Detalhes do incidente

Impacto

Durante o período do incidente, alguns utilizadores não conseguiam iniciar sessão e algumas validações de tokens falharam. Isto afetou vários inquilinos em produção e também poderia bloquear o acesso à Console do Logto.

Não identificámos evidência de acessos não autorizados relacionados com este incidente; o impacto foi limitado a falhas de autenticação.

Ação do cliente

Se ainda não consegues iniciar sessão na Console do Logto, por favor tenta:

  • abrir uma janela incógnita/privada, ou
  • limpar/desativar o cache do navegador e tentar novamente

O que aconteceu

  1. Atualizámos as definições do cache do JWKS para domínios de inquilinos de clientes (*.logto.app). O cache do JWKS foi, por engano, deixado ativado no nosso domínio Cloud (*.logto.io).
  2. Rodámos a chave de assinatura do nosso serviço Cloud. Como as respostas do JWKS para *.logto.io estavam em cache, alguns clientes continuaram a usar um JWKS desatualizado e não conseguiam validar tokens recém emitidos.
  3. Limpámos o cache do JWKS para *.logto.io, revertémos para a chave de assinatura anterior e limpámos novamente o cache do JWKS para garantir que os clientes obtinham o conjunto de chaves revertido.
  4. A autenticação recuperou. Alguns utilizadores podem continuar a ver problemas ao iniciar sessão na Console devido ao cache do navegador.

Lições aprendidas

A rotação de chaves não é apenas uma tarefa de gestão de chaves. É uma alteração de compatibilidade end-to-end que tem de ter em conta o comportamento de cache entre emissores e validadores. As diferenças de configuração entre domínios (*.logto.app vs *.logto.io) são um risco real. Alterações seguras para um domínio podem quebrar outro se não forem aplicadas de forma consistente.

Os nossos testes de integração atuais não cobriam o comportamento de cache do JWKS em produção, por isso este cenário de falha não foi detectado antes da rotação.

Ações preventivas

Estamos a implementar:

  • invalidação do cache do JWKS como um passo obrigatório no fluxo de rotação de chaves de assinatura (rodar só após completar a invalidação)
  • manter o cache do JWKS desativado até que o fluxo de invalidação esteja em vigor e depois reativar o cache para melhor desempenho
  • testes de integração simulando produção para rotação de chaves, incluindo o comportamento do cache do JWKS e verificações de invalidação de cache