Анализ инцидента: сбои аутентификации из-за кэширования JWKS и ротации ключа подписи
Анализ инцидента аутентификации от 8 января 2026 года (PST).
Дата: 8 января 2026 года (PST)
Длительность: ~60 минут
Влияние: некоторые производственные арендаторы столкнулись со сбоями при входе и проверке токенов; доступ к Console также мог быть нарушен
Итоги
Несоответствие между ротированным ключом подписи и кэшированным JWKS на нашем домене *.logto.io привело к сбоям валидации токенов. Мы сбросили кэш JWKS и вернули предыдущий ключ подписи для восстановления работы сервиса.
У некоторых пользователей могут всё ещё наблюдаться проблемы с входом в Console из-за кэша браузера. Приносим извинения за причинённые неудобства.
Хронология (PST)
- 16:00 инцидент начался (обнаружено увеличение ошибок валидации токенов/аутентификации)
- 16:35 определена причина (JWKS был закэширован после ротации ключа подписи)
- 16:41 кэш очищен
- 16:49 ключ подписи возвращён к предыдущему
- 17:00 сервис восстановлен; продолжается мониторинг
Подробности инцидента
Влияние
В течение инцидента некоторые пользователи не могли войти в систему, а часть токенов не проходила валидацию. Это затронуло несколько производственных арендаторов и могло блокировать доступ к Logto Console.
Мы не обнаружили никаких признаков несанкционированного доступа, связанных с этим инцидентом; ущерб ограничился только сбоями аутентификации.
Действия для клиентов
Если у тебя всё ещё не получается войти в Logto Console, попробуй:
- открыть сайт в режиме инкогнито/приватном окне, или
- очистить/отключить кэш браузера и повторить попытку
Что произошло
- Мы обновили настройки кэширования JWKS для доменов арендаторов клиентов (
*.logto.app). По ошибке кэширование JWKS всё ещё оставалось включённым для нашего облачного домена (*.logto.io). - Мы провели ротацию ключа подписи для нашего облачного сервиса. Так как ответы JWKS для
*.logto.ioбыли закэшированы, некоторые клиенты продолжили использовать устаревший JWKS и не могли валидировать новые токены. - Мы сбросили кэш JWKS для
*.logto.io, вернули предыдущий ключ подписи, зате м снова очистили кэш JWKS, чтобы удостовериться, что клиенты получили обновлённый ключ. - Аутентификация восстановилась. У некоторых пользователей проблемы со входом в Console могут сохраняться из-за кэша браузера.
Полученные уроки
Ротация ключей — это не только задача управления ключами, но и комплексное изменение совместимости, которое должно учитывать поведение кэширования между эмитентами и валидаторами. Несогласованность конфигураций между доменами (*.logto.app и *.logto.io) представляет реальный риск. Изменения, безопасные для одного домена, могут привести к сбоям на другом, если применяются неравномерно.
Наши существующие интеграционные тесты не покрывали кэширование JWKS в условиях, приближённых к продакшену, поэтому данный сценарий сбоя не был отработан до ротации ключа.
Предотвращающие меры
Мы внедряем:
- принудительную инвалидцию кэша JWKS как обязательный этап при ротации ключа подписи (ротация только после завершения инвалидции)
- отключение кэширования JWKS до появления рабочей схемы инвалидции, затем повторное включение кэширования для повышения производительности
- интеграционные тесты, приближённые к продакшену, для ротации ключей, включая проверку поведения кэширования JWKS и контроля его очистки

