เรากำลังใช้ AWS SSO กับ TOTP ผ่าน RADIUS เซิร์ฟเวอร์ RADIUS ของเราเป็นแบบ FreeRADIUS linotp-auth-freeradius-perl.
ปัญหาคือการเชื่อมต่อระหว่าง AWS SSO และ FreeRADIUS นั้นไม่น่าเชื่อถืออย่างสมบูรณ์ - มีบางช่วงเวลาที่ดูเหมือนว่าจะมีการสูญเสียแพ็กเก็ตที่สำคัญระหว่างกัน
RADIUS ใช้ UDP ซึ่งหมายความว่าแม้แต่แพ็กเก็ตส่งคืนเดียวที่สูญหายก็อาจทำให้การรับรองความถูกต้องล้มเหลวได้ AWS SSO จากนั้นลองอีกครั้งหลังจากผ่านไประยะหนึ่ง แต่ TOTP RFC ห้ามไม่ให้ใช้ค่าโทเค็นเดียวกันสองครั้ง และครั้งแรกลองใช้ TOTP จนหมด
ดังนั้นจึงมีบันทึกมากมายเช่น:
24/05/2022 - 05:59:49 WARNI {140508089116416} [linotp.tokens.totptoken][checkOtp #429] [checkOTP] ค่า OTP ก่อนหน้านี้ถูกใช้อีกครั้ง!
ตัวนับโทเค็นเดิม: 55112395 ปัจจุบันมีตัวนับ 55112395
และผู้ใช้จำนวนมากไม่สามารถเข้าสู่ระบบ AWS SSO ได้แม้ว่าจะพยายามหลายครั้งก็ตาม
ฉันกำลังมองหาแนวคิดเกี่ยวกับวิธีปรับปรุงความน่าเชื่อถือของสิ่งนี้ฉันไม่สามารถหาวิธีให้ FreeRADIUS ส่งแพ็กเก็ตตอบกลับหลายแพ็กเก็ตโดยมีความล่าช้าอยู่บ้าง (เช่น 10 แพ็กเก็ตทุกๆ 1 วินาที) ซึ่งจะทำให้แพ็กเก็ตการตอบกลับทุกแพ็กเก็ตสูญหายน้อยลงมาก
แต่อาจมีวิธีสำหรับเคอร์เนลของ Linux ที่จะทำซ้ำแพ็กเก็ตตอบกลับดังกล่าวหลาย ๆ ครั้งโดยเพิ่มความล่าช้า ถ้ามีแล้วยังไง? ในขณะที่หลีกเลี่ยงการทำซ้ำซ้ำอีกครั้ง ซึ่งแม้ว่าจะเป็นเรื่องตลกขบขัน แต่ก็ไม่น่าพึงปรารถนามากนัก”
ฉันไม่คิดว่า AWS SSO รองรับโปรโตคอลอื่นเพื่อใช้ TOTP มากกว่า RADIUS (พร้อม UDP) แต่ฉันอาจคิดผิด โปรดแก้ไขฉันหากเป็นกรณีนี้