סקירה
כשמשתמשים במפתחות גישה מסונכרנים, אנשים מבצעים אימות באמצעות ספק של מפתח גישה.
כדי ליצור מפתחות גישה ולאמת אותם, תצטרכו להשתמש ב-WebAuthn API לאינטרנט, או ב-Credential Manager API לאפליקציות ל-Android. ממשקי ה-API האלה מטפלים בתקשורת בין הלקוח לספק של מפתח הגישה.
אומנם מתבצעת קריאה לממשקי ה-API האלה על ידי לקוח, כמו דף אינטרנט או אפליקציה ל-Android, אבל עליכם להטמיע את שאר הפונקציונליות בשרת כדי להשלים את התרחישים לדוגמה של האימות.
הטמעה של מפתח גישה מורכבת משתי אפשרויות:
- רישום מפתח גישה. תוכלו להשתמש ב-WebAuthn API או ב-Credential Manager API כדי לאפשר למשתמש ליצור מפתח גישה. אחסון המפתח הציבורי המשויך בשרת.
- אימות באמצעות מפתח גישה. מקבלים אתגר אימות מהשרת ומשתמשים ב-WebAuthn API או ב-Credential Manager API כדי לאפשר למשתמש לחתום על האתגר הזה עם מפתח הגישה שלו. אימות החתימה בשרת. אם החתימה חוקית, אימות המשתמש.
ספריות בצד השרת
אומנם אפשר להטמיע מאפס פונקציונליות של מפתחות גישה בצד השרת, אבל מומלץ להשתמש במקום זאת בספרייה.
שרת שתומך ביצירה ובאימות של מפתחות גישה נקרא שרת FIDO2, או שרת FIDO. בהמשך נתייחס כאן לספריות בצד השרת שמטמיעות תמיכה במפתחות גישה בתור ספריות בצד השרת FIDO.
למה כדאי להשתמש בספרייה?
לשימוש בספרייה בצד השרת מסוג FIDO יש מספר יתרונות:
- זמן וניסיון למפתחים. המפרט של WebAuthn הוא מורכב. ספריות בצד השרת מסוג FIDO יכולות לספק ממשקי API פשוטים להטמעת מפתחות גישה, וכך לחסוך זמן ומשאבי פיתוח.
- תחזוקה. מפרט WebAuthn עדיין כפוף לשינויים. שימוש בגרסה העדכנית ביותר של ספרייה שמתוחזקת באופן פעיל עוזר לשמור על הטמעה מעודכנת.
- אבטחה ותאימות. אתם רוצים שההטמעה של מפתח הגישה תעמוד במפרט של WebAuthn ובדרישות האבטחה שלו. ספריות בצד השרת מסוג FIDO יכולות לעזור לכם לשמור על אבטחת ההטמעה והתאימות למפרט. בהתאם למוצר ולתחום שלכם, ייתכן שההטמעה שלכם תהיה כפופה גם לתקנות שמחייבות אתכם להשתמש בתקני אבטחה ספציפיים לצורך אימות.
אם אפשר, כדאי לתמוך בפרויקטים בקוד פתוח שעליהם המוצר מסתמך.
ספריות
- מאגר GitHub awesome-webauthn כולל רשימה של ספריות בצד השרת שנאספה על ידי הקהילה. אפשר למצוא שם ספריות ל-JavaScript ול-TypeScript, Go, Python ועוד.
- אוסף של ספריות זמין בכתובת passkeys.dev. הוא מנוהל על ידי קבוצת הקהילה של W3C WebAuthn Adoption.
- שירות FIDO Alliance מפנה לאוסף של שרתי FIDO2.