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

Passkeys (WebAuthn)

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

ขณะนี้ Logto รองรับ passkey (WebAuthn) สำหรับการยืนยันตัวตนหลายปัจจัย (MFA) ฟีเจอร์ลงชื่อเข้าใช้ด้วย passkey กำลังจะมาเร็ว ๆ นี้ โปรดติดตามข่าวสารอัปเดต

แนวคิด

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

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

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

  • 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

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

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

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

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

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

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

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

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

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

WebAuthn setup flow

ขั้นตอนการยืนยัน Passkey

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

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