한국어
  • 사후 분석

사후 분석: JWKS 캐싱과 서명 키 교체로 인한 인증 실패

2026년 1월 8일(미국 태평양 표준시) 인증 장애에 대한 사후 분석입니다.

Gao
Gao
Founder

사용자 인증에 몇 주를 낭비하지 마세요
Logto로 더 빠르게 안전한 앱을 출시하세요. 몇 분 만에 사용자 인증을 통합하고 핵심 제품에 집중하세요.
시작하기
Product screenshot

날짜: 2026년 1월 8일 (PST)

지속 시간: 약 60분

영향: 일부 운영 테넌트에서 로그인 및 토큰 검증 실패; 콘솔 로그인도 영향 받을 수 있음

요약

회전된 서명 키와 *.logto.io 도메인에 캐시된 JWKS 간의 불일치로 인해 토큰 검증에 실패했습니다. 우리는 JWKS 캐시를 비우고 이전 서명 키로 복원하여 서비스를 복구했습니다.

브라우저 캐시로 인해 일부 사용자는 여전히 콘솔 로그인 문제를 겪을 수 있습니다. 이번 장애로 인한 불편에 대해 사과드립니다.

타임라인 (PST)

  • 오후 4:00 장애 발생 (인증/토큰 검증 오류 증가)
  • 오후 4:35 근본 원인 식별 (키 회전 중 JWKS 캐싱)
  • 오후 4:41 캐시 삭제
  • 오후 4:49 서명 키 복원
  • 오후 5:00 서비스 복구; 모니터링 지속

장애 상세 내용

영향

장애 시간 동안 일부 사용자는 로그인을 할 수 없었고, 일부 토큰 검증이 실패했습니다. 이는 여러 운영 테넌트에 영향을 주었으며 Logto Console 접근도 차단될 수 있었습니다.

이번 장애와 관련된 무단 접근 증거는 발견되지 않았습니다. 영향은 인증 실패에 국한되었습니다.

사용자 조치

아직도 Logto Console에 로그인할 수 없다면, 다음을 시도해 보세요:

  • 시크릿/프라이빗 창 열기, 또는
  • 브라우저 캐시 삭제/비활성화 후 다시 시도하기

발생 경위

  1. 고객 테넌트 도메인(*.logto.app)에 대해 JWKS 캐싱 설정을 업데이트했습니다. 그러나 JWKS 캐싱이 실수로 클라우드 도메인(*.logto.io)에 그대로 적용되어 있었습니다.
  2. 클라우드 서비스의 서명 키를 회전시켰습니다. 하지만 *.logto.io에 대한 JWKS 응답이 캐시되어, 일부 클라이언트가 오래된 JWKS를 계속 사용하며 새로 발급된 토큰을 검증하지 못했습니다.
  3. *.logto.io에 대해 JWKS 캐시를 삭제하고, 이전 서명 키로 복원한 뒤, 다시 JWKS 캐시를 삭제하여 클라이언트가 복원된 키 집합을 받아가도록 했습니다.
  4. 인증이 복구되었습니다. 일부 사용자는 브라우저 캐시로 인해 여전히 콘솔 로그인 이슈를 겪을 수 있습니다.

교훈

키 회전은 단순한 키 관리 작업이 아닙니다. 이는 발급자와 검증자 간 캐싱 동작도 반드시 고려해야 하는, 엔드투엔드 호환성 변경입니다. 도메인 간(*.logto.app vs *.logto.io) 설정 차이는 실제 위험 요소입니다. 한 도메인에 안전한 변경도 일관되게 적용되지 않으면 다른 도메인에서는 장애를 일으킬 수 있습니다.

기존 통합 테스트는 운영 환경과 같은 JWKS 캐싱 동작을 포함하지 않아, 회전 전에 해당 장애 상황이 재현되지 않았습니다.

예방 조치

도입 예정인 조치:

  • 서명 키 회전 흐름에서 JWKS 캐시 무효화를 필수 단계로 추가 (무효화 완료 후에만 키 회전)
  • 무효화 프로세스가 자리잡을 때까지 JWKS 캐싱 비활성화 유지, 이후 성능 개선을 위해 재활성화
  • JWKS 캐싱 동작 및 캐시 무효화 체크를 포함한 운영 환경과 유사한 키 회전 통합 테스트 구축