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

Passkeys (WebAuthn)

Passkey มอบทางเลือกที่ปลอดภัยและใช้งานง่ายกว่ารหัสผ่านแบบเดิม ด้วยการใช้การเข้ารหัสคีย์สาธารณะ (public-key cryptography) passkey จะเพิ่มความปลอดภัยโดยเชื่อมโยงอุปกรณ์ของผู้ใช้, โดเมนของบริการ, และรหัสผู้ใช้ (user ID) ซึ่งช่วยป้องกันการโจมตีแบบ phishing และการขโมยรหัสผ่าน Passkey สามารถใช้งานร่วมกับอุปกรณ์หรือเบราว์เซอร์ต่าง ๆ ได้ และอนุญาตให้ผู้ใช้ใช้ไบโอเมตริกซ์หรือฟีเจอร์ความปลอดภัยของฮาร์ดแวร์เพื่อการยืนยันตัวตนที่สะดวก WebAuthn ให้ API สำหรับเว็บไซต์เพื่อใช้งาน passkey

Logto รองรับ passkeys (WebAuthn) ทั้งสำหรับ การยืนยันตัวตนหลายปัจจัย (MFA) และ การลงชื่อเข้าใช้ด้วย passkey โดยสามารถใช้ WebAuthn credential เดียวกันนี้ได้ทั้งสองกรณี ขึ้นอยู่กับการตั้งค่าของ tenant ของคุณ

แนวคิด

ลูกค้ามักจะรู้จัก Passkeys มากกว่า WebAuthn แล้วความสัมพันธ์ระหว่างสองสิ่งนี้คืออะไร และควรใช้อย่างไร? มาทำความเข้าใจแนวคิดเหล่านี้กัน:

  • Passkeys: Passkey คือ credential ที่ใช้มาตรฐาน FIDO และต้านทาน phishing เพื่อทดแทนรหัสผ่าน โดยใช้การเข้ารหัสแบบอสมมาตร (asymmetric public-key cryptography) เพื่อเพิ่มความปลอดภัย อาจอยู่ในรูปแบบฮาร์ดแวร์โทเค็นหรือกุญแจความปลอดภัย เช่น อุปกรณ์ USB หรือ Bluetooth เนื่องจาก "Passkeys" คือวิธีการยืนยันตัวตนที่แสดงต่อผู้ใช้ จึงควรใช้คำนี้ในฝั่ง client ของผลิตภัณฑ์คุณ
  • WebAuthn: เป็น JavaScript API ที่พัฒนาโดย W3C และ FIDO Alliance เพื่อให้เว็บแอปพลิเคชันสามารถยืนยันตัวตนตามมาตรฐาน FIDO2 ได้ Passkeys เป็นหนึ่งในวิธีการยืนยันตัวตนที่ WebAuthn รองรับ ใน Logto Console เราจะเรียกการเชื่อมต่อนี้อย่างเป็นทางการว่า "WebAuthn"

WebAuthn มีตัวเลือกตัวตรวจสอบ (authenticator) หลากหลายให้ผู้ใช้เลือก โดยแบ่งเป็น 2 ประเภทสำหรับการใช้งานแบบ local และ cloud:

  • Platform authenticator (Internal authenticator): ผูกกับระบบปฏิบัติการของอุปกรณ์เดียว เช่น คอมพิวเตอร์, แล็ปท็อป, โทรศัพท์ หรือแท็บเล็ตที่ผู้ใช้ลงชื่อเข้าใช้ ใช้งานได้เฉพาะบนอุปกรณ์นั้น ๆ โดยใช้ไบโอเมตริกซ์หรือรหัสผ่านอุปกรณ์ เช่น iCloud Keychain ที่ยืนยันด้วย Touch ID, Face ID หรือรหัสผ่านอุปกรณ์บน macOS หรือ iOS; Windows Hello ที่ยืนยันด้วยใบหน้า, ลายนิ้วมือ หรือ PIN
  • Roaming authenticator (External authenticator, Cross-platform authenticator): เป็นอุปกรณ์หรือแอปพลิเคชันแยกต่างหากที่พกพาได้ เช่น กุญแจความปลอดภัยฮาร์ดแวร์ หรือสมาร์ทโฟน ต้องเชื่อมต่ออุปกรณ์ผ่าน USB หรือเปิด NFC / Bluetooth ตัว roaming authenticator ไม่จำกัดเฉพาะอุปกรณ์หรือเบราว์เซอร์เดียว จึงมีความยืดหยุ่นสูง

หากต้องการเจาะลึกหลักการและกระบวนการของ WebAuthn สามารถอ่านได้ที่บล็อกของเรา: WebAuthn and Passkeys 101 และ สิ่งที่ควรรู้ก่อนเชื่อมต่อ WebAuthn

ตั้งค่าการตรวจสอบ passkeys สำหรับ MFA

  1. ไปที่ Console > การยืนยันตัวตนหลายปัจจัย (Multi-factor authentication)
  2. เปิดใช้งานปัจจัย "Passkeys (WebAuthn)" แนะนำให้ใช้ Passkeys ร่วมกับปัจจัย MFA อื่น ๆ (TOTP, SMS, รหัสสำรอง) เพื่อลดความเสี่ยงจากการพึ่งพาปัจจัยเดียว
  3. ตั้งค่านโยบาย MFA ที่ต้องการ (บังคับใช้ หรือ ไม่บังคับ)
  4. บันทึกการเปลี่ยนแปลงการตั้งค่า
เคล็ดลับ:

หากผู้ใช้เดียวกันลงชื่อเข้าใช้ด้วย passkey sign-in Logto จะข้ามขั้นตอนการตรวจสอบ MFA แยกต่างหาก เพราะการลงชื่อเข้าใช้ด้วย passkey ถือว่าได้ผ่านการตรวจสอบ WebAuthn แล้ว

ให้ความสำคัญกับข้อจำกัด:

ควรตระหนักถึงข้อจำกัดบางประการเมื่อใช้งาน WebAuthn:

  1. ข้อจำกัดด้านแพลตฟอร์มและเบราว์เซอร์: ปัจจุบัน Logto ยังไม่รองรับ WebAuthn สำหรับ native application และการมีอยู่ของ WebAuthn authenticator ขึ้นอยู่กับความสามารถของเบราว์เซอร์และอุปกรณ์ (ตรวจสอบรายการ) ดังนั้น WebAuthn จึงไม่ใช่ตัวเลือกเดียวสำหรับการใช้งาน MFA เว้นแต่คุณจะควบคุมได้ว่าเบราว์เซอร์และอุปกรณ์ใดเข้าถึงผลิตภัณฑ์ของคุณ
  2. ข้อจำกัดด้านโดเมน: การเปลี่ยนโดเมนอาจทำให้ผู้ใช้ไม่สามารถยืนยันตัวตนผ่านบัญชี WebAuthn เดิมได้ Passkeys จะผูกกับโดเมนของหน้าเว็บปัจจุบันและไม่สามารถใช้ข้ามโดเมนได้
  3. ข้อจำกัดด้านอุปกรณ์: หากผู้ใช้สูญเสียอุปกรณ์ อาจทำให้ไม่สามารถเข้าถึงบัญชีได้ โดยเฉพาะผู้ที่ใช้ Platform Authenticator แบบ “อุปกรณ์นี้” ทางที่ดีควรให้ผู้ใช้มีปัจจัยการยืนยันตัวตนมากกว่าหนึ่งอย่างเพื่อเพิ่มโอกาสเข้าถึง

ตั้งค่าการจัดการ passkeys

คุณสามารถใช้ Account API เพื่อสร้างอินเทอร์เฟซจัดการบัญชีแบบกำหนดเอง ให้ผู้ใช้เพิ่ม, ดู, เปลี่ยนชื่อ, และลบ passkey ของตนเองได้ เหมาะสำหรับสร้างศูนย์บัญชีส่วนตัวและรองรับกรณีสำรองข้ามอุปกรณ์

สำหรับขั้นตอนการใช้งานและ API endpoint โดยละเอียด ดูที่ การตั้งค่าบัญชีด้วย Account API

กระบวนการตั้งค่า Passkey

ข้อกำหนดของ Passkeys กำหนดให้ผู้ใช้ต้องคลิกปุ่มบนหน้าปัจจุบันเพื่อเริ่มต้นคอมโพเนนต์การยืนยันตัวตน ซึ่งหมายความว่าในทั้งกระบวนการตั้งค่าและตรวจสอบ ผู้ใช้ควรถูกนำไปยัง landing page เพื่อเริ่มต้น WebAuthn

WebAuthn setup flow

กระบวนการตรวจสอบ Passkey

เมื่อผู้ใช้ตั้งค่า MFA หลายวิธีรวมถึง passkey ระบบจะแนะนำ passkey เป็นวิธีตรวจสอบ MFA บนหน้าจอแรกเนื่องจากความปลอดภัยและความสะดวก ผู้ใช้สามารถเปลี่ยนไปใช้วิธีอื่นได้โดยคลิก "ลองวิธีอื่นเพื่อยืนยัน" ด้านล่าง อ่าน ตั้งค่า MFA เพื่อเรียนรู้เพิ่มเติม

หากผู้ใช้ลงชื่อเข้าใช้ด้วย passkey sign-in แทนการกรอกปัจจัยแรกแบบอื่น Logto จะไม่ถามหาขั้นตอน MFA เพิ่มเติม เพราะ passkey ถือเป็นปัจจัย MFA แบบ WebAuthn อยู่แล้ว

WebAuthn verification flow สิ่งที่ควรรู้ก่อนเชื่อมต่อ WebAuthn WebAuthn and Passkey 101