เผยแพร่: 15 มกราคม 2025
WebAuthn มีความสามารถเฉพาะตัว เช่น การโต้ตอบกับบลูทูธสำหรับโปรโตคอลแบบไฮบริด การสื่อสารกับผู้ให้บริการพาสคีย์ และการแนะนำพาสคีย์ในการป้อนข้อความอัตโนมัติ อย่างไรก็ตาม ไคลเอ็นต์และเครื่องมือตรวจสอบสิทธิ์ต่างๆ มีการรองรับฟีเจอร์ WebAuthn ในระดับที่แตกต่างกัน ความแตกต่างนี้อาจส่งผลให้ผู้ใช้ได้รับประสบการณ์การใช้งานที่ไม่สอดคล้องกัน โดยผู้ใช้บางรายอาจพบข้อผิดพลาดหรือใช้ตัวเลือกการตรวจสอบสิทธิ์บางอย่างไม่ได้ การจัดหาวิธีให้นักพัฒนาแอปพิจารณาความสามารถของไคลเอ็นต์ช่วยให้นักพัฒนาแอปสร้างขั้นตอนการตรวจสอบสิทธิ์ที่แข็งแกร่งยิ่งขึ้นซึ่งปรับให้เข้ากับการเปลี่ยนแปลงเหล่านี้ได้
เมธอด PublicKeyCredential.getClientCapabilities()
ช่วยให้ผู้ให้บริการสามารถ
ระบุได้ว่าเบราว์เซอร์รองรับฟีเจอร์ WebAuthn ใดบ้าง เมธอด
จะแสดงผล Promise ที่เปลี่ยนเป็นรายการความสามารถที่รองรับ ซึ่งช่วยให้
นักพัฒนาแอปปรับแต่งประสบการณ์การตรวจสอบสิทธิ์และเวิร์กโฟลว์ตามความสามารถเฉพาะของไคลเอ็นต์ได้
ความเข้ากันได้
getClientCapabilities()
getClientCapabilities()
คือ WebAuthn API ที่อนุญาตให้ผู้ให้บริการระบุได้ว่ามีความสามารถใดบ้าง หากต้องการใช้ API คุณต้องเรียกใช้
PublicKeyCredential.getClientCapabilities()
Promise ที่ส่งคืนจะเปลี่ยนเป็นออบเจ็กต์ที่มีความสามารถ โดยแต่ละความสามารถจะระบุความพร้อมใช้งานด้วย true
หรือ false
หากความสามารถเป็น undefined
ให้พิจารณาว่าไม่ทราบความพร้อมใช้งาน
if (window.PublicKeyCredential &&
if (PublicKeyCredential.getClientCapabilities) {
const capabilities = await PublicKeyCredential.getClientCapabilities();
if (capabilities.conditionalGet === true &&
capabilities.passkeyPlatformAuthenticator === true) {
// The browser supports passkeys and the conditional mediation.
}
}
}
conditionalCreate
เบราว์เซอร์สามารถสร้างข้อมูลเข้าสู่ระบบได้โดยไม่ต้องใช้ UI แบบโมดอลที่โดดเด่น หากผู้ใช้ ยินยอมให้สร้างแล้ว
conditionalGet
เบราว์เซอร์สามารถตรวจสอบสิทธิ์ได้โดยการแสดงพาสคีย์เป็นส่วนหนึ่งของกล่องโต้ตอบการป้อนข้อความอัตโนมัติ
แทนที่จะเป็น UI แบบโมดอลที่โดดเด่น ค่าเทียบเท่าที่มีอยู่คือ
PublicKeyCredential.isConditionalMediationAvailable()
hybridTransport
อุปกรณ์ใช้บลูทูธได้เพื่อให้เบราว์เซอร์สร้างข้อมูลเข้าสู่ระบบและ ตรวจสอบสิทธิ์ด้วยข้อมูลดังกล่าวในอุปกรณ์ต่างๆ โดยใช้โปรโตคอลแบบไฮบริด โดยปกติแล้ว หมายความว่าเบราว์เซอร์สามารถแสดงคิวอาร์โค้ดเพื่อให้ผู้ใช้สแกนและลงชื่อเข้าใช้ ด้วยโทรศัพท์ที่มีข้อมูลเข้าสู่ระบบ
passkeyPlatformAuthenticator
เบราว์เซอร์สามารถสร้างข้อมูลเข้าสู่ระบบและตรวจสอบสิทธิ์ด้วยข้อมูลดังกล่าวผ่านเครื่องมือตรวจสอบสิทธิ์แพลตฟอร์มที่ใช้ยืนยันตัวตนผู้ใช้หรืออุปกรณ์อื่นที่รองรับผ่านโปรโตคอลแบบไฮบริด เทียบเท่ากับ hybridTransport ||
userVerifyingPlatformAuthenticator
relatedOrigins
เบราว์เซอร์สามารถสร้างข้อมูลเข้าสู่ระบบและตรวจสอบสิทธิ์ด้วยข้อมูลเข้าสู่ระบบที่ไม่ตรงกับ รหัส RP ได้ ตราบใดที่ระบุไว้ในไฟล์ต้นทางที่เกี่ยวข้อง
signalAllAcceptedCredentials
เบราว์เซอร์สามารถส่งสัญญาณข้อมูลเข้าสู่ระบบที่มีอยู่ในเซิร์ฟเวอร์ไปยังผู้ให้บริการ พาสคีย์ เพื่อให้ผู้ให้บริการพาสคีย์สามารถทำให้รายการพาสคีย์สอดคล้องกับเซิร์ฟเวอร์ อยู่เสมอ
signalCurrentUserDetails
เบราว์เซอร์สามารถส่งสัญญาณข้อมูลผู้ใช้ เช่น ชื่อผู้ใช้และชื่อที่แสดงในเซิร์ฟเวอร์ไปยังผู้ให้บริการพาสคีย์ เพื่อให้ผู้ให้บริการพาสคีย์สามารถเก็บข้อมูลพาสคีย์ให้สอดคล้องกับเซิร์ฟเวอร์
signalUnknownCredential
เบราว์เซอร์สามารถส่งสัญญาณข้อมูลเข้าสู่ระบบที่ลบแล้วในเซิร์ฟเวอร์ไปยังผู้ให้บริการพาสคีย์ เพื่อให้ผู้ให้บริการพาสคีย์สามารถทำให้รายการพาสคีย์สอดคล้องกับเซิร์ฟเวอร์ ได้
userVerifyingPlatformAuthenticator
เบราว์เซอร์สามารถสร้างและตรวจสอบสิทธิ์ด้วยข้อมูลเข้าสู่ระบบในเครื่องมือตรวจสอบสิทธิ์ของแพลตฟอร์ม
ได้ ซึ่งไม่ได้หมายความว่าเบราว์เซอร์รองรับโปรโตคอลแบบไฮบริด
ค่าเทียบเท่าที่มีอยู่คือ
PublicKeyCredential.isUserVerifyingPlatformAuthenticatorAvailable()
ส่วนขยาย
นอกจากนี้ RP ยังกำหนดส่วนขยายที่ใช้ได้ด้วย getClientCapabilities()
if (capabilities['extension:appid'] === true) {
// appId extension is supported
}
ตัวระบุจะขึ้นต้นด้วย extension:
ตามด้วยชื่อส่วนขยาย
ดูชื่อส่วนขยายได้ที่ตัวระบุส่วนขยาย WebAuthn ที่กำหนดไว้ที่ IANA
ดูข้อมูลเพิ่มเติม
หากต้องการดูข้อมูลเพิ่มเติมเกี่ยวกับพาสคีย์ ให้เริ่มต้นจากการเข้าสู่ระบบแบบไม่มีรหัสผ่านด้วยพาสคีย์