รายงานหลังเหตุการณ์: ความล้มเหลวของการยืนยันตัวตนจากการแคช JWKS และการหมุนกุญแจการลงชื่อ
รายงานหลังเหตุการณ์สำหรับปัญหาการยืนยันตัวตนเมื่อวันที่ 8 มกราคม 2026 (PST)
วันที่: 8 มกราคม 2026 (PST)
ระยะเวลา: ~60 นาที
ผลกระทบ: ผู้ใช้บางรายในสภาพแวดล้อม production ประสบปัญหาไม่สามารถลงชื่อเข้าใช้และตรวจสอบ token ได้; การลงชื่อเข้าใช้ Console อาจได้รับผลกระทบ
สรุปเหตุการณ์
ปัญหาการไม่ตรงกันระหว่างกุญแจการลงชื่อที่ถูกหมุนใหม่ก ับ JWKS ที่ถูกแคชไว้บนโดเมน *.logto.io ของเรา ส่งผลให้การตรวจสอบ token ล้มเหลว เราได้ล้างแคช JWKS และย้อนกลับไปใช้กุญแจการลงชื่อก่อนหน้าเพื่อกู้คืนบริการ
ผู้ใช้บางรายอาจยังพบปัญหาในการลงชื่อเข้า Console เนื่องจากแคชของเบราว์เซอร์ เราขออภัยในความไม่สะดวกที่เกิดขึ้นนี้
ลำดับเหตุการณ์ (PST)
- 16:00 น. เกิดเหตุการณ์ (จำนวนข้อผิดพลาด auth/token validation เพิ่มขึ้น)
- 16:35 น. พบสาเหตุที่แท้จริง (JWKS ถูกแคชขณะที่เปลี่ยนกุญแจการลงชื่อ)
- 16:41 น. ล้างแคช
- 16:49 น. ย้อนกลับกุญแจการลงชื่อ
- 17:00 น. บริการฟื้นตัว; เฝ้าสังเกตต่อเนื่อง
รายละเอียดเหตุการณ์
ผลกระทบ
ในช่วงเกิดเหตุการณ์ ผู้ใช้บางรายไม่สามารถลงชื่อเข้าใช้และตรวจสอบ token ล้มเหลว ซึ่งมีผลกระทบต่อผู้เช่าใน production หลายราย และอาจทำให้ไม่สามารถเข้าถึง Logto Console ได้
เราไม่พบหลักฐานของการเข้าถึงโดยไม่ได้รับอนุญาตที่เกี่ยวข้องกับเหตุการณ์นี้; ผลกระทบจำกัดอยู่ที่ความล้มเหลวของการยืนยันตัวตนเท่านั้น
การดำเนินการสำหรับลูกค้า
หากคุณยังไม่สามารถลงชื่อเข้าใช้ Logto Console ได้ โปรดลอง:
- เปิดหน้าต่างไม่ระบุตัวตน/ส่วนตัว หรือ
- ล้าง/ปิดใช้งานแคชเบราว์เซอร์ของคุณ แล้วลองอีกครั้ง
สิ่งที่เกิดขึ้น
- เราได้ปรับแต่งการแคช JWKS สำหรับโดเมนผู้เช่าของลูกค้า (
*.logto.app) แต่การแคช JWKS ยังคงเปิดใช้งานโดยผิดพลาดบนโดเมน Cloud ของเรา (*.logto.io). - เราได้หมุนกุญแจการลงชื่อสำหรับบริการ Cloud ของเรา เนื่องจากการตอบกลับ JWKS สำหรับ
*.logto.ioถูกแคชไว้ บาง client ยังคงใช้ JWKS เก่าและไม่สามารถตรวจสอบ token ใหม่นั้นได้ - เราได้ล้างแคช JWKS สำหรับ
*.logto.io, ย้อนกลับไปใช้กุญแจการลงชื่อก่อนหน้า แล้วล้างแคช JWKS อีกครั้งเพื่อให้แน่ใจว่า client ได้ใช้ชุดกุญแจที่ย้อนกลับใหม่ - การยืนยันตัวตนกลับคืนสู่สภาพปกติ ผู้ใช้บางรายอาจยังพบปัญหาในการลงชื่อเข้า Console เนื่องจากแคชของเบราว์เซอร์
บทเรียนที่ได้รับ
การหมุนกุญแจไม่ใช่แค่เรื่องของการบริหารกุญแจเพียงอย่างเดียว แต่มันเป็นการเปลี่ยนแปลงที่เกี่ยวเนื่องตั้งแต่ต้นจนจบ และต้องคำนึงถึงพฤติกรรมการแคชระหว่าง issuer กับ validator ความแตกต่างของค่าคอนฟิกข้ามโดเมน (*.logto.app กับ *.logto.io) เป็นความเสี่ยงที่แท้จริง การเปลี่ยนแปลงที่ปลอดภัยสำหรับหนึ่งโดเมนอาจทำให้โดเมนอื่นมีปัญหาได้หากไม่ถูกนำไปใช้สอดคล้องกัน
การทดสอบแบบบูรณาการที่เรามี ไม่ได้ครอบคลุมพฤติกรรมการแคช JWKS แบบ production ดังนั้นรูปแบบความล้มเหลวนี้จึงไม่เกิดขึ้นมาก่อนการหมุนกุญแจ
การป้องกันปัญหาในอนาคต
เรากำลังดำเนินการ:
- กำหนดให้การยกเลิกแคช JWKS เป็นขั้นตอนที่จำเป็นในกระบวนการหมุนกุญแจการลงชื่อ (หมุนกุญแจหลังจากการยกเลิกแคชเสร็จสิ้นเท่านั้น)
- ปิดการใช้งานการแคช JWKS จนกว่าจะมีขั้นตอนยกเลิกแคชที่สมบูรณ์ แล้วจึงกลับมาเปิดใหม่เพื่อประสิทธิภาพ
- ทำการทดสอบบูรณาการที่เหมือนใน production สำหรับการหมุนกุญแจ ซึ่งรวมถึงพฤติกรรมการแคช JWKS และการตรวจสอบการยกเลิกแคช

