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

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