1
การรับรองความถูกต้องแบบหลายปัจจัยพร้อม Spring Boot 2 และ Spring Security 5
ฉันต้องการเพิ่มตรวจสอบปัจจัยหลายพร้อมด้วยสัญญาณอ่อน TOTP แอพลิเคชันเชิงมุมและฤดูใบไม้ผลิขณะที่การรักษาทุกอย่างใกล้เคียงเป็นไปได้ที่จะเป็นค่าเริ่มต้นของฤดูใบไม้ผลิ Boot รักษาความปลอดภัยเริ่มต้น การตรวจสอบความถูกต้องของโทเค็นเกิดขึ้นภายในเครื่อง (ด้วยไลบรารี aerogear-otp-java) ไม่มีผู้ให้บริการ API บุคคลที่สาม การตั้งค่าโทเค็นสำหรับผู้ใช้ทำงานได้ แต่การตรวจสอบความถูกต้องโดยการใช้ประโยชน์จาก Spring Security Authentication Manager / Providers ไม่ได้ TL; DR วิธีการอย่างเป็นทางการในการรวม AuthenticationProvider เพิ่มเติมเข้ากับระบบกำหนดค่าเริ่มต้นของ Spring Boot Securityคืออะไร วิธีที่แนะนำในการป้องกันการโจมตีซ้ำคืออะไร? รุ่นยาว API มีจุดปลายทาง/auth/tokenที่ส่วนหน้าสามารถรับโทเค็น JWT ได้โดยระบุชื่อผู้ใช้และรหัสผ่าน การตอบสนองยังรวมถึงการตรวจสอบสถานะซึ่งสามารถทั้งรับรองความถูกต้องหรือPRE_AUTHENTICATED_MFA_REQUIRED หากผู้ใช้ต้องการ MFA โทเค็นจะถูกออกด้วยสิทธิ์ที่ได้รับเพียงครั้งเดียวPRE_AUTHENTICATED_MFA_REQUIREDและเวลาหมดอายุ 5 นาที สิ่งนี้ช่วยให้ผู้ใช้สามารถเข้าถึงจุดปลาย/auth/mfa-tokenซึ่งพวกเขาสามารถให้รหัส TOTP จากแอพ Authenticator และรับโทเค็นที่ได้รับการรับรองความถูกต้องครบถ้วนเพื่อเข้าถึงเว็บไซต์ ผู้ให้บริการและโทเค็น ฉันได้สร้างประเพณีMfaAuthenticationProviderซึ่งใช้AuthenticationProvider: @Override public Authentication …