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

การยืนยัน SMS สำหรับ MFA

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

แนวคิด

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

ตั้งค่าการยืนยัน SMS สำหรับ MFA

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

  1. ไปที่ Console > ตัวเชื่อมต่อ > ตัวเชื่อมต่ออีเมลและ SMS
  2. เลือกตัวเชื่อมต่อ SMS ที่เหมาะสม (Twilio, SMS Aero ฯลฯ)
  3. กำหนดค่าพารามิเตอร์การเชื่อมต่อ
  4. ตั้งค่าแม่แบบข้อความ SMS สำหรับ MFA โดยใช้ประเภทการใช้งานที่กำหนดไว้
    • MfaVerification usageType สำหรับการยืนยัน MFA
    • BindMFA usageType สำหรับการผูก MFA
  5. ทดสอบการทำงานของตัวเชื่อมต่อเพื่อให้แน่ใจว่าข้อความถูกส่งอย่างถูกต้อง
  6. ดูรายละเอียดการตั้งค่าตามผู้ให้บริการได้ที่ ตัวเชื่อมต่อ SMS

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

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

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

  3. ความเข้ากันได้กับการกู้คืนรหัสผ่าน: แม้ว่ารหัสยืนยัน SMS จะสามารถใช้ได้ทั้งกับ ลืมรหัสผ่าน และ MFA พร้อมกัน แต่ ไม่แนะนำ ให้ตั้งค่าแบบนี้ เนื่องจากจะลดประสิทธิภาพความปลอดภัยของ MFA เพราะผู้ใช้อาจข้าม MFA ได้โดยใช้รหัสยืนยัน SMS สำหรับลืมรหัสผ่านเพื่อรีเซ็ตรหัสผ่าน แล้วใช้รหัสผ่านใหม่สำหรับการยืนยันตัวตนหลัก (1FA) ตามด้วยวิธี SMS เดิมสำหรับ MFA

ขั้นตอนการตั้งค่า SMS MFA

หน้าตั้งค่า MFA อาจปรากฏระหว่างการลงทะเบียนผู้ใช้หรือหลังจากลงชื่อเข้าใช้ ขึ้นอยู่กับ นโยบาย MFA ที่คุณตั้งค่าไว้ ผู้ใช้อาจเปิดใช้งาน SMS MFA ได้จาก หน้าตั้งค่าบัญชี ของตนเองด้วย

ขั้นตอนการตั้งค่า SMS MFA จะได้รับผลกระทบจากปัจจัยต่อไปนี้:

  • จำนวนปัจจัย MFA หลัก: หากมีปัจจัยหลักหลายรายการ ผู้ใช้ต้องเลือกหนึ่งรายการเพื่อตั้งค่า ปัจจัยหลักคือวิธี MFA ที่ไม่ใช่รหัสสำรอง
  • เปิดใช้งานรหัสสำรอง: เมื่อเปิดใช้งาน รหัสสำรองจะถูกสร้างอัตโนมัติหลังจากตั้งค่าปัจจัย MFA หลัก ผู้ใช้จะถูกแจ้งให้บันทึก
  • การตั้งค่าตัวระบุสมัครสมาชิก: หากหมายเลขโทรศัพท์ถูกใช้เป็น ตัวระบุสมัครสมาชิก และผู้ใช้ได้ยืนยันแล้วด้วยรหัส SMS ระหว่างลงทะเบียน ระบบจะผูกหมายเลขนั้นเป็นปัจจัย MFA โดยอัตโนมัติและไม่ต้องยืนยันซ้ำ หากมีปัจจัยหลักอื่น ๆ UI จะแสดงตัวเลือก “เพิ่มการยืนยัน 2 ขั้นตอน” (ผู้ใช้อาจข้ามได้) และแสดงชัดเจนว่า MFA เปิดใช้งานแล้ว
  • ข้อมูลผู้ใช้ที่มีอยู่: เมื่อผู้ใช้ที่มีอยู่ตั้งค่า MFA หลังจากลงชื่อเข้าใช้ จะต้องผ่านการยืนยันตัวตนหลักก่อน แล้วจึงตั้งค่า MFA หากบัญชีมีหมายเลขโทรศัพท์หลักที่ยืนยันแล้ว ขั้นตอนจะเหมือนกับกรณีตัวระบุสมัครสมาชิกข้างต้น

ด้านล่างนี้คือตัวอย่างสถานการณ์การผูก SMS MFA ที่พบบ่อย 3 แบบ

สถานการณ์ที่ 1: ใช้หมายเลขโทรศัพท์สำหรับ MFA เท่านั้น (ขั้นตอนปกติ)

เมื่อหมายเลขโทรศัพท์ไม่ใช่หนึ่งในตัวระบุสมัครสมาชิก และใช้สำหรับ MFA เท่านั้น ให้ดำเนินการตามขั้นตอนปกติ:

  • หากมีปัจจัย SMS MFA เพียงรายการเดียว ให้แสดงหน้าตั้งค่าสำหรับปัจจัยนั้นโดยตรง
  • หากมีปัจจัย MFA หลักหลายรายการ ให้แสดงหน้ารายการ “ตั้งค่า MFA” และให้ผู้ใช้เลือกปัจจัยที่จะตั้งค่า

ตัวอย่าง:

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

SMS MFA setup flow 1-1

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

SMS MFA setup flow 1-2

สถานการณ์ที่ 2: หมายเลขโทรศัพท์ถูกยืนยันเป็นตัวระบุสมัครสมาชิก

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

ตัวอย่าง:

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

SMS MFA setup flow 2

สถานการณ์ที่ 3: หมายเลขโทรศัพท์ถูกยืนยันแต่มีปัจจัยหลักหลายรายการ

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

ตัวอย่าง:

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

SMS MFA setup flow 3

ขั้นตอนการยืนยัน SMS MFA

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

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

ตัวอย่าง:

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

SMS MFA verification flow

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

  1. ยังไม่ได้ผูกหมายเลขโทรศัพท์

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

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

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

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