FedCM: ממשק API לאיחוד שירותי אימות הזהות שמאפשר שמירה על פרטיות

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

Federated Credential Management (FedCM) הוא גישה שמתמקדת בפרטיות ונוחה למשתמשים לשירותי זהויות מאוחדים (כמו כניסה באמצעות ספק זהויות) שלא מסתמכת על קובצי Cookie של צד שלישי או על הפניות אוטומטיות.

עם FedCM, המשתמש מקבל דרך חדשה לבצע אימות אצל ספק זהויות צד שלישי באתר.

מה זה איחוד שירותי אימות הזהות

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

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

פתרונות קונבנציונליים וקובצי Cookie של צד שלישי

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

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

איחוד זהויות באמצעות FedCM

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

למה אנחנו צריכים את FedCM?

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

תמיכה בפתרונות לזיהוי משתמשים ללא קובצי Cookie של צד שלישי

‫FedCM יכול לעזור להפחית את ההסתמכות על קובצי Cookie של צד שלישי, שמשמשים לעיתים קרובות למעקב אחרי משתמשים באינטרנט. ממשק ה-API מציע חוויית כניסה מותאמת אישית גם כשקובצי Cookie של צד שלישי לא זמינים (לדוגמה, במצב פרטי).

‫FedCM משולב גם עם ממשקי Privacy Sandbox API אחרים. לדוגמה, Storage Access API משתמש באימות FedCM כאות מהימן. השילוב הזה שימושי לאתרים שמסתמכים על FedCM לאימות ועל SAA כדי לאפשר ל-iframe חוצה מקורות לגשת לאחסון הנדרש.

חוויית משתמש משופרת

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

דוגמה לבעיה באתר NASCAR: ממשק משתמש עמוס מדי בגלל שבע אפשרויות שונות לכניסה לחשבון.
דוגמה לבעיה באתר NASCAR: ממשק משתמש עמוס מדי בגלל בחירה רחבה מדי של ספקי IdP.

במקום מספר רב של לחצני התחברות דרך רשתות חברתיות, FedCM מספק ממשק פשוט וידידותי למשתמש.

אבטחה

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

המטרה של FedCM היא לייעל את תהליך הזהות המאוחדת כדי שהמשתמשים יעדיפו אותו על פני תהליכי זהות פחות מאובטחים.

חוויה מותאמת אישית ליותר משתמשים

השימוש ב-FedCM מצמצם את החיכוך בחוויית המשתמש במהלך תהליך ההרשמה לחשבון. מחקרים לדוגמה של Google Identity Service מראים שמשתמשים מעדיפים ליצור חשבונות באמצעות תהליך בלחיצה אחת של FedCM על פני אפשרויות כניסה בכמה שלבים.

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

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

תמיכה בספקי זהויות מגוונים

ממשק המשתמש הפשוט של FedCM נועד להציג למשתמשים רשימה מותאמת אישית של ספקי הזהויות הרלוונטיים. עם מנגנון בחירת ספק הזהויות של FedCM, הבחירה של ה-RP בספקי זהויות כבר לא מוגבלת לגודל בסיס המשתמשים של ספק הזהויות. לדוגמה, יכול להיות שלחלק מהמשתמשים יש חשבון רק ב-small-idp.example ולא ב-bigger-idp.example.

בעזרת התכונה Multi-IdP, ‏ rp.example יכול לתמוך גם ב-small-idp.example וגם ב-bigger-idp.example בלי להעמיס על ממשק המשתמש. היתרון הוא לכל הצדדים:

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

למי כדאי להשתמש ב-FedCM?

אנחנו צופים ש-FedCM יהיה שימושי לכם רק אם התנאים הבאים מתקיימים:

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

אתם ספק IdP

ממשק FedCM דורש תמיכה מספק זהויות. אתר (Relying Party) לא יכול להשתמש ב-FedCM באופן עצמאי. אם אתם ספקי שירות, אתם יכולים לבקש מספק הזהויות שלכם לספק הוראות.

מספר גורמים מסתמכים

אם ספקי הזהויות שלכם הם צד שלישי, או אם יש לכם יותר מארבעה ספקי זהויות שמשתמשים בפתרון הזהויות שלכם, מומלץ להשתמש ב-FedCM API לזהויות מאוחדות.

אתם רוצים לתמוך בתהליך איחוד שירותי אימות הזהות ללא שימוש בקובצי Cookie

‫FedCM תומך בתהליכים חיוניים של איחוד זהויות גם למשתמשים שגולשים ללא קובצי Cookie של צד שלישי. עם FedCM, המשתמשים עדיין יכולים להירשם, להתחבר ולצאת מהחשבונות המאוחדים שלהם ב-RP.

בנוסף, FedCM משמש כאות מהימן עבור Storage Access API, וכך מבטל את החיכוך בבקשות לגישה לאחסון שמתחילות ב-IdP.

אינטראקציה של משתמשים עם FedCM

‫FedCM נועד להיות אגנוסטי לגבי פרוטוקול האימות, ומציע למשתמש תהליך חדש לאימות ב-RP באמצעות IdP מצד שלישי. כדאי לנסות את FedCM באמצעות ההדגמה שלנו.

כניסה לצד מסתמך

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

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

  • החשבונות שאליהם הייתה גישה במכשיר של המשתמש מוצגים ראשונים, והחשבונות שאליהם הייתה גישה לאחרונה מוצגים ראשונים.
  • אחרי זה מוצגים החשבונות שהמשתמש ניגש אליהם ב-RP בהתאם ל-IdP. המידע על החשבונות שהייתה אליהם גישה מופק מערך המאפיין של approved_clients נקודת הקצה של החשבון.
  • חשבונות שלא נעשה בהם שימוש ב-RP בעבר מוצגים אחרונים.

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

מצבי ממשק משתמש של FedCM

ל-FedCM יש שני מצבי ממשק משתמש: פסיבי ופעיל.

מצב פסיבי. במצב פסיבי לא נדרשת פעולה מהמשתמש כדי שההודעה של FedCM תופיע. כשמשתמש מגיע לאתר של הצד המסתמך (RP), תיבת דו-שיח לכניסה באמצעות FedCM תוצג כשמתבצעת קריאה ל-navigator.credentials.get() אם התנאים הבאים מתקיימים:

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

מצב פעיל. במצב פעיל, נדרשת הפעלה זמנית של המשתמש (למשל, לחיצה על הלחצן כניסה באמצעות…) כדי להפעיל הנחיה של FedCM.

משתמש נכנס לחשבון באתר RP באמצעות FedCM במצב פעיל.

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

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

עמידה בדרישות של חוקים בנושא פרטיות אלקטרונית

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

ראייה

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

  • אנחנו בודקים אפשרויות שונות לחוויית משתמש שיהפכו את תהליך האימות לחלק, אינטואיטיבי ופחות פולשני עבור המשתמשים.
  • אנחנו מחויבים לשיפור הפרטיות של המשתמשים. אנחנו מתכננים לעבור למודל FedCM מהדור הבא שמתמקד בהעברת הרשאות, ומצמצם את הבעיה של מעקב אחר ספק הזהויות. ב-NextGen, המשתמשים יכולים להתחבר ל-RP בלי שה-IdP יעקוב אחרי המשתמש.
  • מטרת FedCM היא להציג למשתמשים מבחר רחב יותר של ספקי זהויות, על סמך הבחירה של האתר (Relying Party). כדי להשיג את המטרה הזו, אנחנו עובדים על ממשקי ה-API של Multi-IdP ושל IdP Registration.
  • אנחנו פועלים באופן פעיל לשילוב של FedCM עם שיטות אימות אחרות, כמו מפתחות גישה, ועם אמצעים נוספים כמו מילוי אוטומטי, כדי ליצור חוויית אימות אחידה.

פרטים נוספים מופיעים בתוכנית הפיתוח שלנו.