ทำความเข้าใจถึงความสำคัญของการอ้างสิทธิ์โทเค็น "iat" และการแก้ไขข้อผิดพลาด "Invalid issued at time"
ในโพสต์นี้ เราจะสำรวจถึงความสำคัญของการอ้างสิทธิ์ "iat" ใน ID token และวิธีการแก้ไขข้อผิดพลาด "Invalid issued at time in ID token"
ในโพสต์นี้ เราจะสำรวจถึงความสำคัญของการอ้างสิทธิ์ "iat" ใน ID token และวิธีการแก้ไขข้อผิดพลาด "Invalid issued at time in ID token"
ในชุมชนของเรา ทุกๆ คราวก็จะได้ยินจากผู้ใช้ของเราถึงปัญหา "Invalid issued at time in the ID token" ซึ่งทำให้ต้องเกาหัว ผู้ใช้ของเราบ่นว่า "มันใช้งานได้เมื่อวาน แต่วันนี้ไม่ได้" หรือ "มันใช้งานได้บนคอมพิวเตอร์เครื่องนี้ แต่ไม่ได้กับอีกเครื่องหนึ่ง"
ในโพสต์นี้ เราจะสำรวจว่าทำไมปัญหานี้จึงเกิดขึ้นใน Logto และติดอาวุธให้คุณด้วยเคล็ดลับการจัดการกับมัน
ใน OAuth 2.0 และ OpenID Connect (OIDC) ID tokens มีบทบาทสำคัญในการส่งข้อมูลประจำตัวของผู้ใช้อย่างปลอดภัยระหว่างฝ่ายต่างๆ หนึ่งในคำอ้างสิทธิ์ใน ID token คือ "iat" (issued-at-time) ซึ่งเป็นการแทนที่ timestamp ขณะที่ ID token ถูกออกโดยเซิร์ฟเวอร์การอนุญาต
ตอนนี้ สาเหตุรากของข้อผิดพลาดที่โจ่งแจ้ง "Invalid issued at time" เกือบจะชัดเจนแล้ว
เพื่อบรรเทาการโจมตีซ้ำซ้อนและพิจารณาการเบี่ยงเบนของนาฬิกา Logto เคยตั้งค่าหน้าต่างยอมรับเวลาสำหรับ ID token ไว้ที่ 60 วินาที ฝ่ายที่พึ่งพิงใด ๆ ที่มีความแตกต่างเวลามากกว่า 60 วินาทีจากเวลาของโลกควรจะถูกพิจารณาว่าอาจจะอยู่ในความเสี่ยงและจะไม่ผ่านการตรวจสอบ ID token ดังนั้นข้อผิดพลาด “Invalid token at time”
อย่างไรก็ตาม ในโลกจริง การเบี่ยงเบนของนาฬิกาเกิดขึ้น บางครั้งคอมพิวเตอร์ของคุณไม่สามารถเชื่อมต่อกับเซิร์ฟเวอร์เวลาของโลกเพื่อซิงก์เวลาคอมพิวเตอร์ บางครั้งเซิร์ฟเวอร์การอนุญาตก็ตกหลุดจากการซิงก์ บางครั้งที่แย่กว่านั้น ทั้งสองฝ่ายไม่ได้ซิงก์
ยิ่งไปกว่านั้น ในสถานการณ์ SSO ความแตกต่างของเวลาระหว่างไคลเอ็นต์ต่างๆ และผู้ให้บริการ SSO สามารถมากขึ้นได้
เพื่อบรรเทาความเจ็บปวดและพิจารณามาตรการด้านความปลอดภัย Logto ได้เพิ่มความยืดหยุ่นการยอมรับ "iat" จาก 60 วินาทีเป็น 5 นาทีสำหรับการรับรองความถูกต้องนอก SSO และ 10 นาทีสำหรับสถานการณ์ SSO
ในขณะเดียวกัน คุณสามารถตรวจสอบเวลาคอมพิวเตอร์ของคุณได้ว่าซิงก์กับโลกด้วยการใช้เครื่องมือเช็คเวลา https://time.is ซิงก์เวลาของคุณด้วยตนเองหรือเปลี่ยนไปใช้เซิร์ฟเวอร์เวลาอื่น เพื่อให้ความแตกต่างของเวลามั่นใจอยู่ในหน้าต่างยอมรับของเราเสมอ
การอ้างสิทธิ์ "iat" ใน ID tokens เป็นองค์ประกอบที่สำคัญสำหรับการเสริมสร้างความปลอดภัยของการจัดการข้อมูลประจำตัวและการเข้าถึงในแอปพลิเคชันสมัยใหม่ การผสานแนวทางปฏิบัติที่ดีที่สุดในการจัดการการอ้างสิทธิ์ "iat" ช่วยให้กระบวนการยืนยันตัวตนมีความแข็งแกร่งและปลอดภัย
นอกจากนี้ ให้แน่ใจว่าเวลาคอมพิวเตอร์ของคุณถูกซิงก์กับเซิร์ฟเวอร์เวลาของโลกเสมอ