การยืนยันอีเมลสำหรับการยืนยันตัวตนหลายปัจจัย (MFA)
Logto รองรับฟังก์ชันการยืนยันตัวตนหลายปัจจัย (MFA) ผ่านอีเมล ซึ่งช่วยเพิ่มความปลอดภัยของบัญชีโดยการส่งรหัสยืนยันแบบใช้ครั้งเดียวไปยังอีเมลที่ลงทะเบียนของผู้ใช้ การยืนยันตัวตนผ่านอีเมลเป็นปัจจัยที่สองของการยืนยันตัวตน และสามารถใช้ร่วมกับปัจจัย MFA อื่น ๆ (เช่น TOTP, passkeys, รหัสสำรอง) เพื่อให้ผู้ใช้มีตัวเลือกการยืนยันตัวตนสองขั้นตอนที่ยืดหยุ่น
แนวคิด
การยืนยันอีเมลเป็นหนึ่งในวิธี MFA ที่เข้าถึงได้มากที่สุด โดยอาศัยความแพร่หลายของบัญชีอีเมลในการส่งรหัสยืนยันแบบชั่วคราวและใช้ครั้งเดียวไปยังกล่องจดหมายของผู้ใช้โดยตรง แตกต่างจากแอปยืนยันตัวตนที่ต้องติดตั้งซอฟต์แวร์เพิ่มเติม การยืนยันตัวตนผ่านอีเมลใช้โครงสร้างพื้นฐานอีเมลที่มีอยู่แล้ว ซึ่งผู้ใช้อินเทอร์เน็ตแทบทุกคนสามารถเข้าถึงได้ผ่านเว็บเบราว์เซอร์ โปรแกรมอีเมล หรือแอปมือถือ ทำให้ผู้ใช้สามารถใช้งานได้ทันทีโดยไม่ต้องมีฮาร์ดแวร์พิเศษหรือการตั้งค่าเพิ่มเติมนอกจากมีบัญชีอีเมล
ตั้งค่าการยืนยันอีเมลสำหรับ MFA
ขั้นตอนที่ 1: ตั้งค่าตัวเชื่อมต่ออีเมลและเทมเพลต
-
เลือกตัวเชื่อมต่ออีเมลที่เหมาะสม (SendGrid, Mailgun ฯลฯ)
-
กำหนดค่าพารามิเตอร์การเชื่อมต่อ
-
ตั้งค่า เทมเพลตอีเมล สำหรับ MFA โดยใช้ประเภทการใช้งานเฉพาะ:
MfaVerification
usageType สำหรับการยืนยัน MFABindMFA
usageType สำหรับการผูก MFA- เคล็ดลับ: Logto Email Service มีเทมเพลตอีเมลสำเร็จรูปให้ใช้งาน
-
ดูรายละเอียดการตั้งค่าตามผู้ให้บริการได้ที่ ตัวเชื่อมต่ออีเมล
ขั้นตอนที่ 2: เปิดใช้งานอีเมลสำหรับ MFA
- ไปที่ Console > การยืนยันตัวตนหลายปัจจัย
- เปิดใช้งานปัจจัย "รหัสยืนยันอีเมล" แนะนำให้ใช้อีเมล MFA ร่วมกับปัจจัย MFA อื่น ๆ (TOTP, passkeys, SMS, รหัสสำรอง) เพื่อลดการพึ่งพาปัจจัยเดียว
- กำหนดนโยบาย MFA ตามต้องการ (บังคับใช้ / ไม่บังคับ)
- บันทึกการเปลี่ยนแปลงการตั้งค่า
-
ข้อจำกัดวิธีลงชื่อเข้าใช้: รหัสยืนยันอีเมลไม่สามารถใช้เป็นทั้ง วิธีลงชื่อเข้าใช้ (1FA) และปัจจัย MFA (2FA) พร้อมกันได้ ให้เลือกหนึ่งกระบวนการยืนยันตัวตนต่อการใช้งานอีเมลแต่ละครั้ง
-
ความเข้ากันได้กับวิธีสมัครสมาชิก: รหัสยืนยันอีเมลสามารถใช้ได้ทั้งสำหรับวิธีสมัครสมาชิกและ MFA พร้อมกัน Logto จะปรับปรุงขั้นตอนการลงทะเบียนของผู้ใช้ปลายทางตามนโยบาย MFA ที่เลือก เพื่อหลีกเลี่ยงการขอให้ยืนยันอีเมลซ้ำสำหรับอีเมลเดียวกัน
-
ความเข้ากันได้กับการกู้คืนรหัสผ่าน: แม้ว่ารหัสยืนยันอีเมลจะสามารถใช้ได้ทั้งกับ ลืมรหัสผ่าน และ MFA พร้อมกัน แต่ ไม่แนะนำ ให้ตั้งค่าแบบนี้ เพราะจะลดประสิทธิภาพความปลอดภัยของ MFA เนื่องจากผู้ใช้อาจข้าม MFA ได้โดยใช้การยืนยันอีเมลสำหรับลืมรหัสผ่านเพื่อรีเซ็ตรหัสผ่าน แล้วใช้รหัสผ่านใหม่สำหรับการยืนยันตัวตนหลัก (1FA) ตามด้วยวิธีอีเมลเดิมสำหรับ MFA
ขั้นตอนการตั้งค่า MFA ด้วยอีเมล
หน้าตั้งค่า MFA อาจปรากฏระหว่างการลงทะเบียนผู้ใช้หรือหลังจากลงชื่อเข้าใช้ ขึ้นอยู่กับ นโยบาย MFA ที่คุณตั้งค่าไว้ ผู้ใช้อาจเปิดใช้งานอีเมล MFA ได้จาก หน้าตั้งค่าบัญชี ของตนเองด้วย
ขั้นตอนการตั้งค่าอีเมล MFA จะได้รับผลกระทบจากปัจจัยต่อไปนี้:
- จำนวนปัจจัย MFA หลัก: หากมีปัจจัยหลักหลายรายการ ผู้ใช้ต้องเลือกหนึ่งรายการเพื่อตั้งค่า ปัจจัยหลักคือวิธี MFA ที่ไม่ใช่รหัสสำรอง
- เปิดใช้งานรหัสสำรอง: เมื่อเปิดใช้งาน รหัสสำรองจะถูกสร้างอัตโนมัติหลังจากตั้งค่าปัจจัย MFA หลักเสร็จ ผู้ใช้จะถูกแจ้งให้บันทึกรหัสเหล่านั้น
- การตั้งค่าตัวระบุสมัครสมาชิก: หากใช้อีเมลเป็น ตัวระบุสมัครสมาชิก และผู้ใช้ได้ยืนยันอีเมลด้วยรหัสยืนยันระหว่างลงทะเบียนแล้ว ระบบจะผูกอีเมลนั้นเป็นปัจจัย MFA โดยอัตโนมัติและไม่ต้องยืนยันซ้ำ หากมีปัจจัยหลักอื่น UI จะแสดงตัวเลือก "เพิ่มการยืนยัน 2 ขั้นตอน" (ผู้ใช้อาจข้ามได้) ซึ่งแสดงให้เห็นชัดเจนว่า MFA เปิดใช้งานแล้ว
- ข้อมูลผู้ใช้เดิม: เมื่อผู้ใช้เดิมตั้งค่า MFA หลังจากลงชื่อเข้าใช้ ต้องผ่านการยืนยันตัวตนหลักก่อน แล้วจึงตั้งค่า MFA หากบัญชีมีอีเมลหลักที่ยืนยันแล้ว ขั้นตอนจะเหมือนกับกรณีตัวระบุสมัครสมาชิกข้างต้น
ด้านล่างคือตัวอย่างสถานการณ์การผูก MFA ด้วยอีเมลที่พบบ่อย 3 แบบ
สถานการณ์ที่ 1: ใช้อีเมลสำหรับ MFA เท่านั้น (ขั้นตอนปกติ)
เมื่ออีเมลไม่ได้เป็นหนึ่งในตัวระบุสมัครสมาชิก และใช้สำหรับ MFA เท่านั้น ให้ทำตามลำดับขั้นตอนมาตรฐาน:
- หากมีปัจจัย MFA อีเมลเพียงรายการเดียว ให้แสดงหน้าตั้งค่าสำหรับปัจจัยนั้นโดยตรง
- หากมีปัจจัย MFA หลักหลายรายการ ให้แสดงหน้ารายการ "ตั้งค่า MFA" และให้ผู้ใช้เลือกว่าจะตั้งค่าปัจจัยใด
ตัวอย่าง:
สมัครสมาชิก: เบอร์โทรศัพท์ + รหัสยืนยัน SMS + รหัสผ่าน
| MFA: รหัสยืนยันอีเมล + รหัสสำรอง
เบอร์โทรศัพท์ + รหัสยืนยัน SMS + รหัสผ่าน
| MFA: รหัสยืนยันอีเมล + รหัสสำรอง

สมัครสมาชิก: เบอร์โทรศัพท์ + รหัสยืนยัน SMS + รหัสผ่าน
| MFA: รหัสยืนยันอีเมล + Passkeys + Authenticator app OTP + รหัสสำรอง
เบอร์โทรศัพท์ + รหัสยืนยัน SMS + รหัสผ่าน
| MFA: รหัสยืนยันอีเมล + Passkeys + Authenticator app OTP + รหัสสำรอง

สถานการณ์ที่ 2: อีเมลได้รับการยืนยันเป็นตัวระบุสมัครสมาชิก
หากใช้อีเมลเป็นตัวระบุสมัครสมาชิกและผู้ใช้ได้ยืนยันอีเมลด้วยรหัสระหว่างลงทะเบียนแล้ว ระบบจะผูกอีเมลนั้นเป็นปัจจัย MFA โดยอัตโนมัติ — ไม่ต้องยืนยันซ้ำ
ตัวอย่าง:
สมัครสมาชิก: อีเมล + รหัสยืนยันอีเมล + รหัสผ่าน
| MFA: รหัสยืนยันอีเมล + รหัสสำรอง
อีเมล + รหัสยืนยันอีเมล + รหัสผ่าน
| MFA: รหัสยืนยันอีเมล + รหัสสำรอง

สถานการณ์ที่ 3: อีเมลได้รับการยืนยันแต่มีปัจจัยหลักหลายรายการ
หากอีเมลได้รับการยืนยันระหว่างสมัครสมาชิก (เป็นตัวระบุสมัครสมาชิก) แต่บัญชีมีปัจจัย MFA หลักหลายรายการ (เช่น อีเมล + passkeys หรือแอปยืนยันตัวตน) UI จะแจ้งผู้ใช้ด้วย "เพิ่มการยืนยัน 2 ขั้นตอน" ผู้ใช้อาจเลือกเพิ่มปัจจัยอื่นหรือข้ามได้ โดยหน้าต่างนี้จะแจ้งชัดเจนว่า MFA เปิดใช้งานแล้ว
ตัวอย่าง:
สมัครสมาชิก: อีเมล + รหัสยืนยันอีเมล + รหัสผ่าน
| MFA: รหัสยืนยันอีเมล + Passkeys + Authenticator app OTP + รหัสสำรอง
อีเมล + รหัสยืนยันอีเมล + รหัสผ่าน
| MFA: รหัสยืนยันอีเมล + Passkeys + Authenticator app OTP + รหัสสำรอง

ขั้นตอนการยืนยัน MFA ด้วยอีเมล
เมื่อผู้ใช้ที่เปิดใช้งาน MFA ด้วยอีเมลลงชื่อเข้าใช้ หลังจากผ่านการยืนยันตัวตนหลัก (1FA) สำเร็จแล้ว จะถูกขอให้ยืนยันตัวตนด้วยรหัสยืนยันอีเมลเป็นปัจจัยที่สอง (2FA)
หากมีปัจจัย MFA หลายรายการ ผู้ใช้สามารถเลือกจากปัจจัยที่ตั้งค่าไว้ ระบบจะกำหนดลำดับปัจจัย MFA ที่จะแสดงก่อนตามลำดับความสำคัญที่ตั้งค่าไว้ใน ตั้งค่า MFA
ตัวอย่าง:
ลงชื่อเข้าใช้: เบอร์โทรศัพท์ + รหัสผ่าน
| MFA: รหัสยืนยันอีเมล (ใช้ครั้งล่าสุด) / Authenticator app OTP / รหัสสำรอง
เบอร์โทรศัพท์ + รหัสผ่าน
| MFA: รหัสยืนยันอีเมล (ใช้ครั้งล่าสุด) / Authenticator app OTP / รหัสสำรอง

การจัดการข้อผิดพลาด
-
ยังไม่ได้ผูกอีเมล
- รหัสข้อผิดพลาด:
session.mfa.mfa_factor_not_enabled
- วิธีแก้ไข: แนะนำให้ผู้ใช้ผูกอีเมลก่อน
- รหัสข้อผิดพลาด:
-
รหัสยืนยันไม่ถูกต้อง
- รหัสข้อผิดพลาด:
verification_code.code_mismatch
- วิธีแก้ไข: แจ้งให้ผู้ใช้กรอกใหม่ จำกัดจำนวนครั้งที่ลอง
- รหัสข้อผิดพลาด:
-
รหัสยืนยันหมดอายุ
- รหัสข้อผิดพลาด:
verification_code.expired
- วิธีแก้ไข: แจ้งให้ผู้ใช้ขอรหัสใหม่
- รหัสข้อผิดพลาด:
-
เกินขีดจำกัดการส่ง
- รหัสข้อผิดพลาด:
connector.rate_limit_exceeded
- วิธีแก้ไข: แสดงเวลารอ จำกัดการส่งซ้ำ
- รหัสข้อผิดพลาด: