מדריך למפתחים בנושא מפתחות גישה לצדדים להסתמך על מפתחות גישה

איך אפשר לשלב מפתחות גישה בשירות שלכם.

המבנה של מערכת מפתחות גישה

מערכת של מפתחות גישה מורכבת מכמה רכיבים:

  • Relying party: בהקשר של מפתח הגישה, צד נסמך (קיצור של RP) מטפל בהנפקה ובאימות של מפתחות הגישה. ה-RP צריך להפעיל לקוח – אתר או אפליקציה שיוצרים מפתחות גישה או מבצעים אימות באמצעות מפתחות גישה, ושרת לרישום, לאחסון ולאימות של פרטי הכניסה שנוצרו על ידי מפתחות הגישה אצל הלקוח. אפליקציה לנייד של מפתח גישה צריכה להיות מקושרת לדומיין של שרת RP באמצעות מנגנון השיוך שמסופק על ידי מערכת ההפעלה, כמו Digital Asset Links.
  • מאמת חשבונות: מכשיר מחשוב, כמו טלפון נייד, טאבלט, מחשב נייד או מחשב, שיכול ליצור ולאמת מפתחות גישה באמצעות תכונת נעילת המסך שמערכת ההפעלה מציעה.
  • מנהל הסיסמאות: תוכנה שמותקנת במכשירים של משתמשי הקצה, ומשרת מפתחות גישה, מאחסנת אותם ומסנכרנת אותם, כמו מנהל הסיסמאות של Google.

תהליך הרישום

כדי ליצור מפתח גישה חדש ולרשום אותו, משתמשים ב-WebAuthn API באתר או בספרייה של Credential Manager באפליקציה ל-Android.

כדי ליצור מפתח גישה חדש צריך לספק כמה רכיבים עיקריים:

  • מזהה RP: מספקים את המזהה של הצד הנסמך בפורמט של דומיין אינטרנט.
  • פרטי משתמש: המזהה של המשתמש, שם המשתמש והשם המוצג שלו.
  • פרטי כניסה להחרגה: מידע על מפתחות גישה שנשמרו בעבר כדי למנוע רישום כפול.
  • סוגי מפתחות גישה: האם להשתמש במכשיר עצמו ('מאמת הפלטפורמה') כמאמת, או במפתח אבטחה שניתן לנתק ('מאמת בין פלטפורמות / נדידה'). בנוסף, המתקשרים יכולים לציין אם להפוך את פרטי הכניסה לגלויים כדי שהמשתמש יוכל לבחור חשבון שבאמצעותו תתבצע הכניסה.

אחרי שגורם מוגבל (RP) מבקש ליצור מפתח גישה והמשתמש מאמת אותו באמצעות ביטול הנעילה של המסך, נוצר מפתח גישה חדש ומוחזרים פרטי הכניסה של המפתח הציבורי. שולחים אותו לשרת ומאחסנים את מזהה פרטי הכניסה ואת המפתח הציבורי לצורך אימות עתידי.

תהליך הרישום

בקישורים הבאים מוסבר איך ליצור ולרשום מפתח גישה:

תהליך האימות

אפשר להשתמש ב-WebAuthn API באתר או בספרייה של Credential Manager באפליקציה ל-Android כדי לבצע אימות באמצעות מפתח גישה רשום.

כדי לבצע אימות באמצעות מפתח גישה, צריך לספק כמה מרכיבים עיקריים:

  • מזהה RP: מספקים את המזהה של הצד הנסמך בפורמט של דומיין אינטרנט.
  • אתגר: אתגר שנוצר על ידי שרת שמונע התקפות שליחה מחדש.

אחרי שגורם מוגבל (RP) מבקש אימות באמצעות מפתח גישה והמשתמש מאמת זאת באמצעות ביטול נעילת המסך, מוחזרים פרטי כניסה למפתח ציבורי. שולחים אותה לשרת ומאמתים את החתימה באמצעות המפתח הציבורי שמאוחסן.

תהליך האימות

בקישורים הבאים מוסבר בפירוט איך לבצע אימות באמצעות מפתח גישה:

שילובים בצד השרת

כשיוצרים מפתח גישה, השרת צריך לספק פרמטרים מרכזיים כמו אתגר, פרטי משתמש, מזהי פרטי כניסה להחרגה ועוד. לאחר מכן מאמתים את פרטי הכניסה של המפתח הציבורי שנוצרו ונשלחים מהלקוח, ושומרים את המפתח הציבורי במסד הנתונים. כדי לבצע אימות באמצעות מפתח גישה, השרת צריך לאמת בקפידה את פרטי הכניסה ולאמת את החתימה כדי לאפשר למשתמשים להיכנס לחשבון.

מידע נוסף זמין במדריכים שלנו בצד השרת:

מנגנוני אימות קיימים (מדור קודם)

כשאתם תומכים במפתחות גישה בשירות הקיים, המעבר ממנגנון האימות הישן, כמו סיסמאות למפתחות הגישה, לא יתבצע ביום אחד. אנחנו יודעים שתעדיף להסיר את שיטת האימות החלשה בהקדם האפשרי, אבל זה עלול לגרום לבלבול בקרב המשתמשים או להשאיר חלק מהמשתמשים מאחור. מומלץ לשמור על שיטת האימות הקיימת בינתיים.

יכולות להיות לכך כמה סיבות:

  • יש משתמשים בסביבה שלא תואמת למפתחות גישה: התמיכה במפתחות גישה מתרחבת באופן נרחב במספר מערכות הפעלה ודפדפנים, אבל מי שמשתמש בגרסאות ישנות יותר עדיין לא יכול להשתמש במפתחות הגישה.
  • הסביבה העסקית של מפתחות הגישה עדיין לא בשלה: הסביבה העסקית של מפתחות הגישה מתפתחת. יכול להיות שיפור בפרטי חוויית המשתמש ובתאימות הטכנית בין סביבות שונות.
  • יכול להיות שהמשתמשים עדיין לא מוכנים לחיות עם מפתח גישה: יש אנשים שמהססים לדלג על דברים חדשים. עם ההתפתחות של הסביבה העסקית של מפתחות הגישה, הם יבינו איך מפתחות הגישה פועלים ולמה הם מועילים להם.

בדיקה חוזרת של מנגנון האימות הקיים

בעוד שמפתחות גישה הופכים את האימות לפשוט ובטוח יותר, שמירה על המנגנונים הישנים היא כמו השארת חור. אנחנו ממליצים לבדוק שוב את מנגנוני האימות הקיימים ולשפר אותם.

סיסמאות

יצירת סיסמאות חזקות וניהול שלהן לכל אתר הם משימות מאתגרות למשתמשים. מומלץ מאוד להשתמש במנהל סיסמאות שמובנה במערכת או במנהל סיסמאות עצמאי. כשמבצעים שינוי קטן בטופס הכניסה, אתרים ואפליקציות יכולים לשפר מאוד את האבטחה שלהם ואת חוויית הכניסה. כדי לראות איך אפשר לבצע את השינויים האלה:

אימות דו-שלבי

השימוש במנהל סיסמאות עוזר למשתמשים לטפל בסיסמאות, אבל לא כל המשתמשים משתמשים בהן. כדי להגן על משתמשים כאלה, מקובל לבקש פרטי כניסה נוספים שנקראים סיסמה חד-פעמית (OTP). בדרך כלל, סיסמאות חד-פעמיות נשלחות באימייל, בהודעת SMS או באפליקציה לאימות חשבונות כמו Google Authenticator. סיסמאות חד-פעמיות הן בדרך כלל טקסט קצר שנוצר באופן דינמי ותקף רק לטווח זמן מוגבל, ולכן הן מפחיתות את הסבירות לפריצה לחשבון. השיטות האלה לא חזקות כמו מפתח גישה, אלא הרבה יותר טובות מאשר להשאיר את המשתמשים עם סיסמה בלבד.

אם תבחרו להשתמש ב-SMS כדי להעביר OTP, תוכלו להיעזר בשיטות המומלצות הבאות כדי לייעל את חוויית המשתמש להזנת ה-OTP.

איחוד זהויות

איחוד זהויות הוא אפשרות נוספת כדי לאפשר למשתמשים להיכנס באופן מאובטח ובקלות. באמצעות איחוד שירותי אימות הזהות, אתרים ואפליקציות יכולים לאפשר למשתמשים להיכנס באמצעות זהות המשתמש מספק זהויות של צד שלישי. לדוגמה, Sign in with Google (כניסה באמצעות חשבון Google) מספק המרות נהדרות למפתחים, ולמשתמשים קל ומועדף לאימות מבוסס-סיסמה. איחוד שירותי אימות הזהות משלים את מפתחות הגישה. כדאי מאוד להירשם לאתר או לאפליקציה, כי הם יכולים לקבל את פרטי הפרופיל הבסיסיים של המשתמשים בשלב אחד, ומפתחות גישה הם דרך נהדרת לייעל את האימות מחדש.

חשוב לזכור שאחרי ההוצאה משימוש של קובצי cookie של צד שלישי ב-Chrome בשנת 2024, ייתכן שתהיה לכך השפעה על חלק מהמערכות של איחוד שירותי אימות הזהות, בהתאם לאופן שבו הן בנויות. כדי לצמצם את ההשפעה, אנחנו מפתחים ממשק API חדש לדפדפן שנקרא Federated Credential Management API (FedCM). אם אתם משתמשים בספק זהויות, תוכלו לעיין בפרטים ולבדוק אם אתם צריכים להשתמש ב-FedCM.

כניסה באמצעות קישור קסם היא שיטת אימות שבה שירות מספק קישור התחברות בהודעת אימייל, כדי שהמשתמש יוכל ללחוץ עליו כדי לאמת את עצמו. כך משתמשים יכולים להיכנס בלי לזכור סיסמה, אבל המעבר בין הדפדפן או האפליקציה לבין תוכנת האימייל יהיה קשה. בנוסף, מנגנון האימות מסתמך על האימייל, ולכן רמת האבטחה החלשה של ספק האימייל עלולה לסכן את חשבונות המשתמשים.

משאבי למידה

אתרים

כדי לשלב מפתחות גישה באתר, השתמשו ב-Web Authentication API (WebAuthn). למידע נוסף, אפשר לעיין במקורות המידע הבאים:

Android

כדי לשלב מפתחות גישה באפליקציה ל-Android, תוכלו להשתמש בספרייה של 'מנהל פרטי הכניסה'. למידע נוסף, אפשר לעיין במקורות המידע הבאים:

חוויית משתמש

המלצות לחוויית המשתמש של מפתחות גישה: