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

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

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

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

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

איחוד שירותי אימות הזהות מאפשר להעביר את האימות או ההרשאה של אדם (משתמש או ישות) לספק זהויות חיצוני (IdP) מהימן. ספק הזהויות מאפשר למשתמש להיכנס לאתר של צד שלישי (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 מראים שמשתמשים מעדיפים ליצור חשבונות באמצעות תהליך בלחיצה אחת של FedCM על פני אפשרויות כניסה מרובות שלבים.

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

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

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

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

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

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

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

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

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

אתם ספק IdP

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

מספר גורמים מוגבלים

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

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

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

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

אינטראקציה של משתמשים עם 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, כספק זהויות (IdP) או כצד מסתמך (RP), כולל אחסון מידע בציוד הקצה של המשתמש או גישה למידע שכבר מאוחסן בו. לכן, זו פעילות שחלים עליה חוקי הפרטיות האלקטרונית באזור הכלכלי האירופי (EEA) ובבריטניה, שבדרך כלל מחייבים קבלת הסכמת משתמשים. באחריותכם לקבוע אם השימוש שלכם ב-FedCM הוא הכרחי כדי לספק שירות אונליין שהמשתמש ביקש במפורש, ולכן פטור מדרישת ההסכמה.

Vision

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

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

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