Chrome תומך באימות מחדש אוטומטי ב-FedCM
Federated Credential Management API (FedCM) הוא ממשק API לאינטרנט לאיחוד שירותי אימות הזהות לשמירה על הפרטיות. באיחוד שירותי אימות הזהות, צד נסמך (RP) מסתמך על ספק זהויות (IdP) כדי לספק למשתמש חשבון בלי לדרוש שם משתמש וסיסמה חדשים.
FedCM מאפשר לדפדפן להבין את ההקשר שבו ה-RP וה-IdP מחליפים מידע. היא מעדכנת את המשתמש לגבי רמות ההרשאות והמידע ששותפו, ומונעת ניצול לרעה לא מכוון. FedCM זמין ב-Chrome החל מגרסה 108.
ב-Chrome 115, תהיה תמיכה ב-FedCM לאימות מחדש אוטומטי, שמשפר את חוויית המשתמש ומאפשר אימות מחדש יעיל יותר של RP אחרי ההסכמה הראשונית.
אימות מחדש אוטומטי
נכון לעכשיו, אחרי שמשתמש יוצר חשבון מאוחד ב-RP עם IdP דרך FedCM API, בפעם הבאה שהוא יבקר באתר הוא יצטרך לבצע את אותם השלבים בממשק המשתמש. כלומר, המשתמש יצטרך לאשר מחדש באופן מפורש וידני כדי לבצע אימות מחדש ולהמשיך בתהליך הכניסה.
חוויית המשתמש המפורשת הגיונית לפני שהמשתמש יוצר את החשבון המאוחד כדי למנוע מעקב (אחד מהיעדים העיקריים של FedCM), אבל היא מסורבלת ומיותרת אחרי שהמשתמש עובר אותה פעם אחת: אחרי שהמשתמש מעניק הרשאה לאפשר תקשורת בין RP ל-IdP, אין יתרון לפרטיות או לאבטחה באכיפת אישור מפורש נוסף של המשתמש לגבי משהו שכבר אישר בעבר. לכן אנחנו משיקים ממשק משתמש יעיל יותר, שבעזרתו בעלי תוכן דיגיטלי יכולים לבחור את חוויית המשתמש למשתמשים חוזרים.
אימות מחדש אוטומטי (בקיצור 'אימות מחדש אוטומטי') ב-FedCM מאפשר למשתמשים לבצע אימות מחדש באופן אוטומטי כשהם חוזרים אחרי האימות הראשוני באמצעות FedCM. 'אימות ראשוני' כאן פירושו שהמשתמש יוצר חשבון או נכנס לאתר של RP על ידי הקשה על הלחצן 'המשך בתור…' בתיבת הדו-שיח של FedCM לכניסה בפעם הראשונה באותו מופיע בדפדפן.

בוחרים אפשרות לאימות חוזר אוטומטי
אנחנו משיקים את האימות האוטומטי מחדש כדי לספק חוויית משתמש טובה יותר ולפעול בהתאם למפרט, אבל חוויית המשתמש שמוגדרת כברירת מחדל תהיה שונה בלי שינוי בקוד. כשהאימות מחדש האוטומטי זמין, הדפדפן משנה את ההתנהגות שלו בהתאם לאפשרות שבוחרים באפשרות mediation
שהמפתחים מספקים באמצעות navigator.credentials.get()
.
const cred = await navigator.credentials.get({
identity: {
providers: [{
configURL: "https://idp.example/fedcm.json",
clientId: "1234",
}],
},
mediation: 'optional', // this is the default
});
השדה mediation
הוא מאפיין ב-Credential Management API, והוא פועל באותו אופן כמו השדות PasswordCredential ו-FederatedCredential, ויש לו תמיכה חלקית גם ב-PublicKeyCredential. המאפיין יכול לקבל את ארבעת הערכים הבאים:
'required'
: תמיד נדרש תהליך בחירת רשת כדי להמשיך, למשל, לחיצה על הלחצן 'המשך' בממשק המשתמש. בוחרים באפשרות הזו אם המשתמשים אמורים להעניק הרשאה במפורש בכל פעם שהם צריכים לעבור אימות.'optional'
(ברירת המחדל): אימות חוזר אוטומטי אם אפשר, נדרש תהליך בחירת רשת אם לא. מומלץ לבחור באפשרות הזו בדף הכניסה.'silent'
: אימות מחדש אוטומטי אם אפשר, כשל שקט ללא צורך בתהליך בחירת רשת אם לא. מומלץ לבחור באפשרות הזו בדפים שאינם דף הכניסה הייעודי, אבל שבהם רוצים שהמשתמשים יישארו מחוברים – לדוגמה, דף פריט באתר של חברת משלוחים או דף כתבה באתר חדשות.'conditional'
: משמש ל-WebAuthn ולא זמין כרגע ל-FedCM.
כשמבצעים את הקריאה הזו, האימות מחדש האוטומטי מתבצע בתנאים הבאים:
- אפשר להשתמש ב-FedCM. לדוגמה, המשתמש לא השבית את FedCM ברמת הארגון או ברמת RP בהגדרות.
- המשתמש השתמש רק בחשבון אחד עם FedCM API כדי להיכנס לאתר בדפדפן הזה.
- המשתמש נכנס ל-IdP באמצעות החשבון הזה.
- האימות מחדש האוטומטי לא התרחש ב-10 הדקות האחרונות.
- ה-RP לא קרא ל-
navigator.credentials.preventSilentAccess()
אחרי הכניסה הקודמת.
כשהתנאים שלמעלה מתקיימים, המערכת מנסה לאמת מחדש את המשתמש באופן אוטומטי ברגע שמפעילים את FedCM navigator.credentials.get()
.
אכיפת תהליך בחירת הרשת באמצעות preventSilentAccess()
אימות מחדש אוטומטי של משתמשים מיד אחרי שהם יוצאים מהחשבון לא יספק חוויית משתמש טובה במיוחד. לכן, ב-FedCM יש תקופת שקט של 10 דקות אחרי אימות מחדש אוטומטי כדי למנוע את ההתנהגות הזו. כלומר, האימות מחדש האוטומטי מתבצע לכל היותר פעם ב-10 דקות, אלא אם המשתמש נכנס שוב לחשבון תוך 10 דקות. ה-RP צריך לבצע קריאה ל-navigator.credentials.preventSilentAccess() כדי לבקש מהדפדפן להשבית את האימות מחדש האוטומטי כשמשתמש יוצא מה-RP באופן מפורש, למשל על ידי לחיצה על כפתור יציאה.
function signout() {
navigator.credentials.preventSilentAccess();
location.href = '/signout';
}
המשתמשים יכולים לבטל את ההסכמה לאימות מחדש אוטומטי בהגדרות
המשתמשים יכולים לבטל את ההסכמה לאימות מחדש אוטומטי בתפריט ההגדרות:
- ב-Chrome למחשב, עוברים אל
chrome://password-manager/settings
> כניסה אוטומטית. - ב-Chrome ל-Android, פותחים את הגדרות > מנהל הסיסמאות > מקישים על גלגל השיניים בפינה השמאלית העליונה > כניסה אוטומטית.
השבתת המתג מאפשרת למשתמש לבטל את ההסכמה להתנהגות של אימות אוטומטי לגמרי. ההגדרה הזו מאוחסנת ומסונכרנת במכשירים השונים, אם המשתמש מחובר לחשבון Google במכונה של Chrome והסנכרון מופעל.
מתן משוב
אם אתם בודקים את FedCM, אתם יכולים לשלוח משוב או לדווח על בעיות crbug.com בקטע "Blink>Identity>FedCM".
תמונה של Noah Samuel Franz ב-Unsplash