תאריך פרסום: 15 בינואר 2025
WebAuthn מספק יכולות ייחודיות, כמו אינטראקציה עם Bluetooth לפרוטוקול ההיברידי, תקשורת עם ספקי מפתחות גישה והצעות למפתחות גישה במילוי אוטומטי. עם זאת, לקוחות ומאמתים שונים מציעים רמות תמיכה שונות בתכונות של WebAuthn. אי ההתאמה הזו עלולה להוביל לחוויית משתמש מקוטעת, שבה חלק מהמשתמשים עשויים להיתקל בשגיאות או לא להיות מסוגלים להשתמש באפשרויות אימות מסוימות. היכולת של המפתחים לקבוע את יכולות הלקוח מאפשרת להם ליצור תהליכי אימות חזקים יותר שתואמים לשינויים האלה.
השיטה PublicKeyCredential.getClientCapabilities()
מאפשרת לצדדים נסמכים לקבוע אילו תכונות של WebAuthn נתמכות בדפדפן. השיטה מחזירה הבטחה שמתקבלת ממנה רשימה של יכולות נתמכות, ומאפשרת למפתחים להתאים אישית את חוויית האימות ואת תהליכי העבודה על סמך היכולות הספציפיות של הלקוח.
תאימות
Browser Support
getClientCapabilities()
getClientCapabilities()
הוא ממשק API של WebAuthn שמאפשר לצדדים נסמכים לקבוע אילו יכולות זמינות. כדי להשתמש ב-API, צריך לבצע קריאה ל-PublicKeyCredential.getClientCapabilities()
. ההבטחה שמוחזרת מומרת לאובייקט שמכיל יכולות, וכל אחת מהן מציינת את הזמינות שלה באמצעות 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
הדפדפן יכול ליצור פרטי כניסה בלי ממשק משתמש מודאלי בולט, אם המשתמש כבר הביע הסכמה ליצירתם.
conditionalGet
הדפדפן יכול לבצע אימות על ידי הצגת מפתחות גישה כחלק מתיבת דו-שיח של מילוי אוטומטי, במקום ממשק משתמש מודאלי בולט. הערך המקביל הקיים הוא PublicKeyCredential.isConditionalMediationAvailable()
.
hybridTransport
המכשיר יכול להשתמש ב-Bluetooth כדי שהדפדפן יוכל ליצור פרטי כניסה ולבצע אימות באמצעותם במכשירים שונים באמצעות הפרוטוקול המשולב. בדרך כלל, המשמעות היא שהדפדפן יכול להציג קוד QR כדי שהמשתמש יוכל לסרוק אותו ולהיכנס לחשבון באמצעות טלפון עם פרטי כניסה.
passkeyPlatformAuthenticator
הדפדפן יכול ליצור פרטי כניסה ולבצע אימות באמצעותם באמצעות מאמת פלטפורמה לאימות משתמשים או מכשיר אחר שתומך בכך באמצעות הפרוטוקול ההיברידי. שווה ערך ל-hybridTransport ||
userVerifyingPlatformAuthenticator
.
relatedOrigins
הדפדפן יכול ליצור פרטי כניסה ולאמת באמצעותם, גם אם הם לא תואמים למזהה ה-RP, כל עוד הם צוינו בקובץ המקור הקשור.
signalAllAcceptedCredentials
הדפדפן יכול לשלוח אות לספק מפתחות הגישה על פרטי הכניסה הזמינים בשרת, כדי שספק מפתחות הגישה יוכל לשמור על עקביות בין רשימת מפתחות הגישה לבין השרת.
signalCurrentUserDetails
הדפדפן יכול לשלוח לספק מפתח הגישה אות לגבי פרטי המשתמש, כמו שם המשתמש והשם המוצג בשרת, כדי שספק מפתח הגישה יוכל לשמור על עקביות בין פרטי מפתח הגישה שלו לבין השרת.
signalUnknownCredential
הדפדפן יכול לשלוח אות לספק מפתח הגישה על פרטי כניסה שנמחקו מהשרת, כדי שספק מפתח הגישה יוכל לשמור על עקביות בין רשימת מפתחות הגישה לבין השרת.
userVerifyingPlatformAuthenticator
הדפדפן יכול ליצור פרטי כניסה ולאמת אותם באמצעות מאמת פלטפורמה. המשמעות היא לא שהדפדפן תומך בפרוטוקול ההיברידי.
הערך המקביל הקיים הוא PublicKeyCredential.isUserVerifyingPlatformAuthenticatorAvailable()
.
extensions
בנוסף, שותפי התוכן הדיגיטלי יכולים להשתמש ב-getClientCapabilities()
כדי לקבוע אילו תוספים זמינים.
if (capabilities['extension:appid'] === true) {
// appId extension is supported
}
המזהה מתחיל ב-extension:
ואחריו שם התוסף.
שמות התוספים מפורטים במזהי התוספים של WebAuthn שמוגדרים ב-IANA.
מידע נוסף
למידע נוסף על מפתחות גישה, אפשר לקרוא את המאמר כניסה ללא סיסמה באמצעות מפתחות גישה.