Laravel Fortify เป็นแพ็คเกจการตรวจสอบความถูกต้องแบ็กเอนด์สำหรับ Laravel ที่รองรับการตรวจสอบความถูกต้องแบบสองปัจจัย (2FA) ผ่านรหัสผ่านครั้งเดียวตามเวลา (TOTP) มันมีความยืดหยุ่นและไม่เชื่อเรื่องพระเจ้าสำหรับผู้ใช้แอปพลิเคชันไคลเอนต์ TOTP ซึ่งหมายความว่ามันไม่ได้ผูกคุณไว้กับ Google Authenticator โดยเฉพาะและสามารถทำงานกับแอพ Authentication ที่ใช้ TOTP ได้รวมถึง Authy
สิ่งที่ Laravel Fortify ทำสำหรับ 2FA
Laravel Fortify จัดเตรียมตรรกะแบ็กเอนด์เพื่อสร้างปุ่มลับ 2FA เก็บไว้อย่างปลอดภัยสร้างรหัสการกู้คืนและตรวจสอบโทเค็น TOTP ระหว่างการเข้าสู่ระบบ มันใช้คีย์ลับสองปัจจัยของผู้ใช้เพื่อตรวจสอบรหัสผ่านครั้งเดียวที่สร้างขึ้นโดยแอพ Authenticator ใด ๆ ที่รองรับอัลกอริทึม TOTP มาตรฐาน (RFC 6238) Fortify ตัวเองไม่ได้สั่งหรือ จำกัด แอพมือถือหรือเดสก์ท็อปที่ผู้ใช้ต้องใช้
การใช้ Authy แทน Google Authenticator
Authy และ Google Authenticator เป็นทั้งแอพ Authenticator ที่ใช้ TOTP ทั้งสองสร้างรหัส 6 หลักทุก 30 วินาทีตามคีย์ลับที่ใช้ร่วมกันระหว่างการตั้งค่า (โดยทั่วไปโดยการสแกนรหัส QR) Laravel Fortify ทำงานได้อย่างราบรื่นกับแอปไคลเอนต์ใด ๆ ที่รองรับมาตรฐานนี้ ดังนั้นคุณสามารถใช้ Authy แทน Google Authenticator กับ Laravel Fortify
ประเด็นสำคัญเกี่ยวกับ Authy และ Google Authenticator ในบริบทนี้:
- ความเข้ากันได้: Authy ใช้มาตรฐาน TOTP เดียวกันกับ Google Authenticator ดังนั้นการตั้งค่า 2FA ใด ๆ ใน Laravel Fortify จะทำงานกับแอพทั้งสองโดยไม่ต้องเปลี่ยนแบ็กเอนด์ Laravel ของคุณ
-ประสบการณ์ของผู้ใช้: Authy มีข้อได้เปรียบบางประการมากกว่า Google Authenticator เช่นโทเค็นการซิงค์ข้ามอุปกรณ์ (การสนับสนุนแบบมัลติอุปกรณ์) การสำรองข้อมูลคลาวด์ที่เข้ารหัสและแอพเดสก์ท็อป (ในอดีตปัจจุบันเป็นศูนย์กลางมือถือ) ซึ่งสามารถสร้างประสบการณ์การใช้งานที่ดีขึ้น
- ความปลอดภัย: Authy มีตัวเลือกสำหรับการป้องกัน PIN และความปลอดภัยทางชีวภาพบนแอพและการสำรองข้อมูลที่เข้ารหัสในขณะที่ Google Authenticator ขาดการสำรองข้อมูลคลาวด์ที่เข้ารหัสและการซิงค์แบบหลายอุปกรณ์ ฟีเจอร์เหล่านี้อาจทำให้การตรวจสอบเป็นมิตรกับผู้ใช้มากขึ้นและยืดหยุ่นต่อการสูญเสียอุปกรณ์จากมุมมองของผู้ใช้
- การตั้งค่าใน Laravel Fortify: การเปลี่ยนแปลงเพียงอย่างเดียวในการใช้งาน Laravel Fortify ของคุณคือการให้รหัส QR หรือคีย์ลับแก่ผู้ใช้สำหรับการสแกนใน Authy แทน Google Authenticator เนื่องจากแอพทั้งสองอ่านรูปแบบเดียวกันรหัส QR Fortify สร้างผลงานนอกกรอบด้วยแอพทั้งสอง
ข้อควรพิจารณาในการใช้งาน
1. การแสดงรหัส QR Frontend: เมื่อเปิดใช้งาน 2FA Fortify มักจะสร้างรหัส QR ตามคีย์ลับ รหัส QR นี้สามารถสแกนได้โดยแอพ Authy หรือ Google Authenticator ส่วนหน้าของคุณเพียงแค่ต้องแสดงรหัส QR นี้และผู้ใช้สามารถเลือกแอพที่ต้องการได้ ไม่จำเป็นต้องมีการเปลี่ยนแปลงรหัสแบ็กเอนด์
2. ขั้นตอนการยืนยัน: บางครั้งปัญหาหนึ่งที่พบกับ Laravel Fortify คือการเปิดใช้งาน 2FA โดยไม่ต้องยืนยันรหัสที่ป้อนอาจล็อคผู้ใช้หากพวกเขายังไม่เสร็จสิ้นการตั้งค่าอย่างถูกต้อง การใช้ขั้นตอนการยืนยันที่ผู้ใช้ป้อนรหัสที่สร้างโดย Authy (หรือ Google Authenticator) หลังจากการสแกนรหัส QR เป็นแนวปฏิบัติที่ดีที่สุด สิ่งนี้ใช้โดยไม่คำนึงถึงแอพการตรวจสอบความถูกต้องที่ใช้
3. รหัสการกู้คืน: Fortify ให้รหัสการกู้คืนสำหรับ 2FA บายพาสหากผู้ใช้สูญเสียการเข้าถึงแอพ Authenticator รหัสเหล่านี้ทำงานได้อย่างอิสระจากการเลือกแอพ (Authy หรือ Google Authenticator)
สรุปความแตกต่างจากมุมมองของผู้ใช้
- ข้อดีของ Authy: **
- การสนับสนุนแบบหลายอุปกรณ์และการซิงค์อัตโนมัติของโทเค็น 2FA
- การสำรองข้อมูลคลาวด์ที่เข้ารหัสเพื่อหลีกเลี่ยงการสูญเสียโทเค็นในการสูญเสียอุปกรณ์
- PIN เสริมและความปลอดภัยทางชีวภาพสำหรับแอพ
- รองรับแอพเดสก์ท็อปและเบราว์เซอร์ (แม้ว่าแอพเดสก์ท็อปบางตัวจะถูกยกเลิกตั้งแต่ต้นปี 2567)
- การรับรองความถูกต้องตามพุช (แม้ว่าจะไม่ใช่ TOTP มาตรฐาน แต่เกี่ยวข้องกับการใช้งานอื่น ๆ มากขึ้น)
- ข้อดีของ Google Authenticator: **
- เป็นที่รู้จักและสนับสนุนโดยบริการมากมาย
- แอพที่ง่ายกว่าโครงสร้างพื้นฐานการสำรองที่ซับซ้อนน้อยกว่า (ไม่มีบัญชีไม่มีการสำรองข้อมูล)
- ออฟไลน์ทั้งหมดหลังจากการตั้งค่าเริ่มต้น (ไม่มีการสำรองข้อมูลคลาวด์)
จากมุมมองการรวม Laravel Fortify ความแตกต่างเหล่านี้ไม่มีผลใด ๆ เนื่องจากรหัส TOTP จากแอพทั้งสองได้รับการตรวจสอบในลักษณะเดียวกันโดย Fortify
บันทึกเพิ่มเติมเกี่ยวกับการใช้งานป้อมปราการ
Laravel Fortify ไม่ได้ให้มุมมองส่วนหน้าหรือ UI; ให้บริการแบ็กเอนด์สำหรับการตรวจสอบสิทธิ์ นักพัฒนาหลายคนใช้ Fortify กับ Laravel Jetstream หรือชุด UI อื่น ๆ โดยไม่คำนึงถึง UI กุญแจสำคัญคือ Fortify สร้างรหัส 2FA Secret และตรวจสอบรหัสออกจากการเลือกแอพ Authenticator ให้กับผู้ใช้
หากจำเป็นต้องมีการปรับแต่งเพื่อปรับปรุง UX หรือจัดการการกู้คืนบัญชีได้ดีขึ้น (การเพิ่มธง "two_factor_confirmed" การปรับแต่งมุมมอง ฯลฯ ) สามารถนำไปใช้ในเลเยอร์ Fortify แต่เป็นอิสระจากตัวเลือกระหว่าง Authy และ Google Authenticator
บทสรุป
ใช่คุณสามารถใช้ Authy แทน Google Authenticator ใน Laravel Fortify โดยไม่ต้องเปลี่ยนแปลงการใช้งานแบ็กเอนด์ 2FA ของคุณ แอพทั้งสองใช้มาตรฐาน TOTP เดียวกันที่รองรับอย่างเต็มที่โดย Fortify การเลือก Authy สามารถเสนอคุณสมบัติการใช้งานและการสำรองข้อมูลที่เพิ่มขึ้นสำหรับผู้ใช้ของคุณโดยเฉพาะอย่างยิ่งในสถานการณ์ของการสูญเสียอุปกรณ์หรือการเข้าถึงหลายอุปกรณ์ แต่จากมุมมองของนักพัฒนา Laravel การรวมยังคงเหมือนเดิม ผู้ใช้เพียงสแกนรหัส QR ที่จัดทำโดย Fortify ด้วยแอพที่ต้องการเพื่อตั้งค่า 2FA
ความยืดหยุ่นนี้คือการออกแบบทำให้ Laravel Fortify ทำงานร่วมกับแอพใด ๆ ที่สร้างรหัส TOTP มาตรฐานรวมถึง แต่ไม่ จำกัด เฉพาะ Google Authenticator, Authy, Microsoft Authenticator และอื่น ๆ