ข้ามไปยังเนื้อหาหลัก

การยืนยันอีเมลสำหรับการยืนยันตัวตนหลายปัจจัย (MFA)

Logto รองรับฟังก์ชันการยืนยันตัวตนหลายปัจจัย (MFA) ผ่านอีเมล ซึ่งช่วยเพิ่มความปลอดภัยของบัญชีโดยการส่งรหัสยืนยันแบบใช้ครั้งเดียวไปยังอีเมลที่ลงทะเบียนของผู้ใช้ การยืนยันตัวตนผ่านอีเมลเป็นปัจจัยที่สองของการยืนยันตัวตน และสามารถใช้ร่วมกับปัจจัย MFA อื่น ๆ (เช่น TOTP, passkeys, รหัสสำรอง) เพื่อให้ผู้ใช้มีตัวเลือกการยืนยันตัวตนสองขั้นตอนที่ยืดหยุ่น

แนวคิด

การยืนยันอีเมลเป็นหนึ่งในวิธี MFA ที่เข้าถึงได้มากที่สุด โดยอาศัยความแพร่หลายของบัญชีอีเมลในการส่งรหัสยืนยันแบบชั่วคราวและใช้ครั้งเดียวไปยังกล่องจดหมายของผู้ใช้โดยตรง แตกต่างจากแอปยืนยันตัวตนที่ต้องติดตั้งซอฟต์แวร์เพิ่มเติม การยืนยันตัวตนผ่านอีเมลใช้โครงสร้างพื้นฐานอีเมลที่มีอยู่แล้ว ซึ่งผู้ใช้อินเทอร์เน็ตแทบทุกคนสามารถเข้าถึงได้ผ่านเว็บเบราว์เซอร์ โปรแกรมอีเมล หรือแอปมือถือ ทำให้ผู้ใช้สามารถใช้งานได้ทันทีโดยไม่ต้องมีฮาร์ดแวร์พิเศษหรือการตั้งค่าเพิ่มเติมนอกจากมีบัญชีอีเมล

ตั้งค่าการยืนยันอีเมลสำหรับ MFA

ขั้นตอนที่ 1: ตั้งค่าตัวเชื่อมต่ออีเมลและเทมเพลต

  1. ไปที่ Console > ตัวเชื่อมต่อ > ตัวเชื่อมต่ออีเมลและ SMS

  2. เลือกตัวเชื่อมต่ออีเมลที่เหมาะสม (SendGrid, Mailgun ฯลฯ)

  3. กำหนดค่าพารามิเตอร์การเชื่อมต่อ

  4. ตั้งค่า เทมเพลตอีเมล สำหรับ MFA โดยใช้ประเภทการใช้งานเฉพาะ:

    • MfaVerification usageType สำหรับการยืนยัน MFA
    • BindMFA usageType สำหรับการผูก MFA
    • เคล็ดลับ: Logto Email Service มีเทมเพลตอีเมลสำเร็จรูปให้ใช้งาน
  5. ดูรายละเอียดการตั้งค่าตามผู้ให้บริการได้ที่ ตัวเชื่อมต่ออีเมล

ขั้นตอนที่ 2: เปิดใช้งานอีเมลสำหรับ MFA

  1. ไปที่ Console > การยืนยันตัวตนหลายปัจจัย
  2. เปิดใช้งานปัจจัย "รหัสยืนยันอีเมล" แนะนำให้ใช้อีเมล MFA ร่วมกับปัจจัย MFA อื่น ๆ (TOTP, passkeys, SMS, รหัสสำรอง) เพื่อลดการพึ่งพาปัจจัยเดียว
  3. กำหนดนโยบาย MFA ตามต้องการ (บังคับใช้ / ไม่บังคับ)
  4. บันทึกการเปลี่ยนแปลงการตั้งค่า
ข้อควรพิจารณาในการใช้งานที่สำคัญ:
  1. ข้อจำกัดวิธีลงชื่อเข้าใช้: รหัสยืนยันอีเมลไม่สามารถใช้เป็นทั้ง วิธีลงชื่อเข้าใช้ (1FA) และปัจจัย MFA (2FA) พร้อมกันได้ ให้เลือกหนึ่งกระบวนการยืนยันตัวตนต่อการใช้งานอีเมลแต่ละครั้ง

  2. ความเข้ากันได้กับวิธีสมัครสมาชิก: รหัสยืนยันอีเมลสามารถใช้ได้ทั้งสำหรับวิธีสมัครสมาชิกและ MFA พร้อมกัน Logto จะปรับปรุงขั้นตอนการลงทะเบียนของผู้ใช้ปลายทางตามนโยบาย MFA ที่เลือก เพื่อหลีกเลี่ยงการขอให้ยืนยันอีเมลซ้ำสำหรับอีเมลเดียวกัน

  3. ความเข้ากันได้กับการกู้คืนรหัสผ่าน: แม้ว่ารหัสยืนยันอีเมลจะสามารถใช้ได้ทั้งกับ ลืมรหัสผ่าน และ 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: รหัสยืนยันอีเมล + รหัสสำรอง

Email MFA setup flow 1-1

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

Email MFA setup flow 1-2

สถานการณ์ที่ 2: อีเมลได้รับการยืนยันเป็นตัวระบุสมัครสมาชิก

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

ตัวอย่าง:

สมัครสมาชิก: อีเมล + รหัสยืนยันอีเมล + รหัสผ่าน | MFA: รหัสยืนยันอีเมล + รหัสสำรอง

Email MFA setup flow 2

สถานการณ์ที่ 3: อีเมลได้รับการยืนยันแต่มีปัจจัยหลักหลายรายการ

หากอีเมลได้รับการยืนยันระหว่างสมัครสมาชิก (เป็นตัวระบุสมัครสมาชิก) แต่บัญชีมีปัจจัย MFA หลักหลายรายการ (เช่น อีเมล + passkeys หรือแอปยืนยันตัวตน) UI จะแจ้งผู้ใช้ด้วย "เพิ่มการยืนยัน 2 ขั้นตอน" ผู้ใช้อาจเลือกเพิ่มปัจจัยอื่นหรือข้ามได้ โดยหน้าต่างนี้จะแจ้งชัดเจนว่า MFA เปิดใช้งานแล้ว

ตัวอย่าง:

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

Email MFA setup flow 3

ขั้นตอนการยืนยัน MFA ด้วยอีเมล

เมื่อผู้ใช้ที่เปิดใช้งาน MFA ด้วยอีเมลลงชื่อเข้าใช้ หลังจากผ่านการยืนยันตัวตนหลัก (1FA) สำเร็จแล้ว จะถูกขอให้ยืนยันตัวตนด้วยรหัสยืนยันอีเมลเป็นปัจจัยที่สอง (2FA)

หากมีปัจจัย MFA หลายรายการ ผู้ใช้สามารถเลือกจากปัจจัยที่ตั้งค่าไว้ ระบบจะกำหนดลำดับปัจจัย MFA ที่จะแสดงก่อนตามลำดับความสำคัญที่ตั้งค่าไว้ใน ตั้งค่า MFA

ตัวอย่าง:

ลงชื่อเข้าใช้: เบอร์โทรศัพท์ + รหัสผ่าน | MFA: รหัสยืนยันอีเมล (ใช้ครั้งล่าสุด) / Authenticator app OTP / รหัสสำรอง

Email MFA verification flow

การจัดการข้อผิดพลาด

  1. ยังไม่ได้ผูกอีเมล

    • รหัสข้อผิดพลาด: session.mfa.mfa_factor_not_enabled
    • วิธีแก้ไข: แนะนำให้ผู้ใช้ผูกอีเมลก่อน
  2. รหัสยืนยันไม่ถูกต้อง

    • รหัสข้อผิดพลาด: verification_code.code_mismatch
    • วิธีแก้ไข: แจ้งให้ผู้ใช้กรอกใหม่ จำกัดจำนวนครั้งที่ลอง
  3. รหัสยืนยันหมดอายุ

    • รหัสข้อผิดพลาด: verification_code.expired
    • วิธีแก้ไข: แจ้งให้ผู้ใช้ขอรหัสใหม่
  4. เกินขีดจำกัดการส่ง

    • รหัสข้อผิดพลาด: connector.rate_limit_exceeded
    • วิธีแก้ไข: แสดงเวลารอ จำกัดการส่งซ้ำ