ה-Federated Credential Management API נשלח ב-Chrome 108, אבל הוא צפוי להמשיך להתפתח. לא מתוכנן שינויים שעלולים לגרום לכשל.
למי העדכונים האלה מיועדים?
העדכונים האלה מיועדים אם:
- אתם מוגדרים כ-IdP שמשתמשים ב-Federated Credential Management API.
- אתם מוגדרים כ-IdP או RP ואתם רוצים להרחיב את ה-API כך שיתאים לתרחיש לדוגמה שלכם. לדוגמה, אם צפיתם בדיונים במאגר CG של FedID או השתתפתם בהם, ואתם רוצים להבין את השינויים שבוצעו ב-API.
- אתם ספקי דפדפנים ואתם רוצים להתעדכן בסטטוס ההטמעה של ה-API.
אם זו הפעם הראשונה שאתם משתמשים ב-API הזה או שעדיין לא ניסיתם אותו, קראו את המבוא ל-Federated Credential Management API.
יומן שינויים
כדי להתעדכן לגבי השינויים ב-FedCM API, כדאי לעיין בבלוג שלנו או בניוזלטר.
Chrome 125 (אפריל 2024)
- מכיוון שהמפרט עדכן את השם של 'נקודות קצה של רשימת חשבונות' ל'נקודת הקצה של החשבונות', המסמכים שלנו תואמים בהתאם.
- גרסת המקור לניסיון שלbutton Mode API זמינה בגרסה 125 של Chrome למחשב. מידע נוסף זמין במאמר עדכוני FedCM: גרסת המקור לניסיון של Enable Mode API, CORS ו-SameSite.
- CORS נאכף בנקודת הקצה של טענת נכוֹנוּת (assertion) של המזהה החל מ-Chrome 125.
- Chrome ישלח רק קובצי Cookie שסומנו במפורש כ-
SameSite=None
לנקודת הקצה של טענת הנכונות (assertion) של המזהה ולנקודת הקצה של החשבונות החל מ-Chrome 125.
Chrome 123 (פברואר 2024)
- נוספה תמיכה ב-Domain Hint API. Domain Hint API מאפשר ל-RP לציין נכס
domainHint
בקריאה ל-FedCM API כדי להציג למשתמש רק חשבונות שתואמים.
Chrome 122 (ינואר 2024)
- נוספה תמיכה ב-ניתוק API. ה-API לניתוק מאפשר ל-RP לנתק את המשתמשים שלהם מחשבון ה-IdP בלי להסתמך על קובצי cookie של צד שלישי.
- המערכת מדלגת עכשיו על הבדיקה
/.well-known/web-identity
כשה-RP וה-IdP הם באותו אתר. - עכשיו אפשר להגדיר במשאבי המשנה סטטוס התחברות לאותו אתר.
Chrome 121 (דצמבר 2023)
- התנאי הרגוע להפעלת אימות אוטומטי מחדש של FedCM:
- התכונה אימות מחדש אוטומטי ב-FedCM מופעלת רק כשהמשתמש חוזר. כלומר, המשתמש צריך להיכנס ל-RP באמצעות FedCM פעם אחת בכל מופע של דפדפן, לפני שאפשר יהיה להפעיל את האימות מחדש. התנאי הזה הושק בהתחלה כדי לצמצם את הסיכון למכשירי מעקב שמתחזים לספק זהויות (IdP) ולגרום לדפדפן לבצע אימות מחדש אוטומטית
של משתמש ללא הידיעה או ההסכמה שלו. עם זאת, העיצוב הזה לא יכול להבטיח תועלת לפרטיות אם לכלי המעקב יש גישה לקובצי cookie של צד שלישי בהקשר של הגורם המוגבל (RP). FedCM מספק רק חלק מהיכולות האפשריות באמצעות קובצי cookie של צד שלישי, כך שאם כבר יש לכלי המעקב גישה לקובצי cookie של צד שלישי בהקשר של הגורם המוגבל, הגישה ל-FedCM לא מהווה סיכון פרטיות נוסף.
מכיוון שיש שימושים לגיטימיים בקובצי cookie של צד שלישי והרגעת התנאי ישפר את חוויית המשתמש, ולכן חל שינוי בהתנהגות הזו ב-Chrome 121. החלטנו להקל את ההגבלה של התנאי שיש להתייחס למשתמש כחוזר: אם קובצי Cookie של צד שלישי זמינים ל-IdP בהקשר של הגורם המוגבל, Chrome ייתן אמון בטענה של הספק לגבי סטטוס החשבון של המשתמש שמצוינת ברשימהapproved_clients
, ובמקרה הצורך יפעיל אימות מחדש אוטומטי. קובצי Cookie של צד שלישי יכולים להיות זמינים דרך: הגדרות משתמש, מדיניות ארגונית, היוריסטיקה (Safari, Firefox, Chrome) וממשקי API אחרים של פלטפורמת אינטרנט (כמו Storage Access API). שימו לב שאם ה-IdP יאבד את הגישה לקובצי Cookie של צד שלישי בעתיד, גם אם משתמש מעולם לא העניק הרשאה מפורשת לממשק המשתמש של FedCM (למשל לאחר לחיצה על הלחצן Continue as) בעבר, המערכת תמשיך להתייחס אליו כאל משתמש חדש.
אין צורך לבצע פעולות למפתחים. שימו לב שיכול להיות שתהליך האימות מחדש האוטומטי יופעל יותר בעקבות השינוי הזה, אם ל-IdP יש גישה לקובצי cookie של צד שלישי וטוען שהמשתמש יצר חשבון ב-RP בעבר.
- התכונה אימות מחדש אוטומטי ב-FedCM מופעלת רק כשהמשתמש חוזר. כלומר, המשתמש צריך להיכנס ל-RP באמצעות FedCM פעם אחת בכל מופע של דפדפן, לפני שאפשר יהיה להפעיל את האימות מחדש. התנאי הזה הושק בהתחלה כדי לצמצם את הסיכון למכשירי מעקב שמתחזים לספק זהויות (IdP) ולגרום לדפדפן לבצע אימות מחדש אוטומטית
של משתמש ללא הידיעה או ההסכמה שלו. עם זאת, העיצוב הזה לא יכול להבטיח תועלת לפרטיות אם לכלי המעקב יש גישה לקובצי cookie של צד שלישי בהקשר של הגורם המוגבל (RP). FedCM מספק רק חלק מהיכולות האפשריות באמצעות קובצי cookie של צד שלישי, כך שאם כבר יש לכלי המעקב גישה לקובצי cookie של צד שלישי בהקשר של הגורם המוגבל, הגישה ל-FedCM לא מהווה סיכון פרטיות נוסף.
Chrome 120 (נובמבר 2023)
- נוספה תמיכה בשלוש התכונות הבאות ב-Chrome 120:
- Login Status API: ה-API של סטטוס ההתחברות הוא מנגנון שבו אתר, במיוחד IdP, מודיע לדפדפן על סטטוס ההתחברות של המשתמש. באמצעות ה-API הזה, הדפדפן יכול להפחית בקשות מיותרות ל-IdP ולצמצם התקפות תזמון פוטנציאליות. ה-Login Status API הוא דרישה של FedCM.
בעקבות השינוי הזה, הדגל
chrome://flags/#fedcm-without-third-party-cookies
לא נדרש יותר כדי להפעיל FedCM כשקובץ cookie של צד שלישי חסום. - Error API: ה-Error API שולח התראה למשתמש על ידי הצגת ממשק משתמש של דפדפן עם פרטי השגיאה שסופקו על ידי ה-IdP.
- Auto-Selected flag API: Auto-Selected flag API מאפשר לראות אם התקבלה הרשאת משתמש מפורשת באמצעות הקשה על הלחצן Continue as (המשך בתור) גם ב-IdP וגם ב-RP, בכל פעם שבה מתבצע אימות מחדש או תהליך בחירת רשת מפורש. השיתוף מתרחש רק אחרי שניתנת הרשאת משתמש לתקשורת IdP ו-RP.
- Login Status API: ה-API של סטטוס ההתחברות הוא מנגנון שבו אתר, במיוחד IdP, מודיע לדפדפן על סטטוס ההתחברות של המשתמש. באמצעות ה-API הזה, הדפדפן יכול להפחית בקשות מיותרות ל-IdP ולצמצם התקפות תזמון פוטנציאליות. ה-Login Status API הוא דרישה של FedCM.
בעקבות השינוי הזה, הדגל
Chrome 117 (ספטמבר 2023)
- גרסת המקור לניסיון של Idp Sign-In Status API זמינה ב-Android מגרסה 117 של Chrome. מידע נוסף זמין בעדכוני FedCM: ממשק API של סטטוס כניסה ל-IdP, רמז להתחברות ועוד.
Chrome 116 (אוגוסט 2023)
- נוספה תמיכה בשלוש התכונות הבאות ב-Chrome 116:
- Login Hint API: מציינים את חשבון המשתמש המועדף שצריך להיכנס אליו.
- User Info API: אחזור המידע של המשתמש החוזר כדי שספק הזהויות (IdP) יוכל לעבד לחצן כניסה בהתאמה אישית בתוך iframe.
- RP Context API: צריך להשתמש בשם שונה מ 'כניסה' בתיבת הדו-שיח של FedCM.
- גרסת המקור לניסיון של ה-API של סטטוס הכניסה ל-IdP זמינה. מידע נוסף זמין בעדכוני FedCM: ממשק API של סטטוס כניסה ל-IdP, רמז להתחברות ועוד.
Chrome 115 (יוני 2023)
- נוספה תמיכה באימות מחדש אוטומטי שמאפשרת למשתמשים לבצע אימות מחדש באופן אוטומטי כשהם חוזרים אחרי האימות הראשוני באמצעות FedCM. כך אפשר לשפר את חוויית המשתמש ולאפשר אימות מחדש לגורם המוגבל (RP) בצורה חלקה יותר לאחר ההסכמה הראשונית. מידע נוסף על אימות אוטומטי של FedCM
Chrome 110 (פברואר 2023)
- בנקודת הקצה של טענת הנכוֹנוּת (assertion) של המזהה, ספקי זהויות צריכים לבדוק את הכותרת
Origin
(במקום את הכותרתReferer
) כדי לראות אם הערך תואם למקור של מזהה הלקוח. - עכשיו יש תמיכה ב-iframe ממקורות שונים ב-FedCM. המטמיע צריך לציין את Permissions-Policy
identity-credentials-get
כדי לאפשר ל-FedCM API ב-iframe המוטמע של מקורות שונים. תוכלו לראות דוגמה ל-iframe ממקורות שונים. - נוסף דגל Chrome חדש
chrome://flags/#fedcm-without-third-party-cookies
. בעזרת הדגל הזה אפשר לבדוק את הפונקציונליות של FedCM ב-Chrome על ידי חסימת קובצי cookie של צד שלישי. מידע נוסף זמין במסמכי התיעוד של FedCM.
Chrome 108 (אוקטובר 2022)
- 'מניפסט ברמה העליונה' נקרא עכשיו 'קובץ ידוע' במסמך. אין צורך לבצע שינויים בהטמעה.
- 'מניפסט IdP' נקרא עכשיו 'קובץ תצורה' במסמך. אין צורך לבצע שינויים בהטמעה.
- השם של
id_token_endpoint
ב'קובץ התצורה' השתנה ל-id_assertion_endpoint
. - הבקשות ל-IdP כוללות עכשיו כותרת
Sec-Fetch-Dest: webidentity
במקום כותרתSec-FedCM-CSRF: ?1
.
Chrome 105 (אוגוסט 2022)
- הוספנו למסמך פרטי אבטחה חשובים. ספק הזהויות (IdP) צריך לבדוק אם הכותרת
Referer
תואמת למקור שה-RP רשם מראש בנקודת הקצה של האסימון המזהה. - השם של המניפסט ברמה העליונה השתנה מ-
/.well-known/fedcm.json
ל-/.well-known/web-identity
, וכתובת ה-URL שצוינה ב-provider_urls
צריכה לכלול את שם הקובץ. - ה-methods
login()
,logout()
ו-revoke()
במכונות שלFederatedCredential
לא זמינות יותר. - ב-Federated Credential Management API נעשה עכשיו שימוש בסוג חדש
IdentityCredential
במקוםFederatedCredential
. אפשר להשתמש בו לזיהוי תכונות, אבל חוץ מזה, מדובר בשינוי בלתי נראה בדרך כלל. - העברת הפונקציונליות של ההתחברות משילוב של
navigator.credentials.get()
ו-FederatedCredential.prototype.login()
אלnavigator.credentials.get()
. - נקודת הקצה לביטול במניפסט לא בתוקף.
- בקריאות
navigator.credentials.get()
משתמשים בשדהidentity
במקום בשדהfederated
. url
הוא עכשיוconfigURL
והוא חייב להיות כתובת ה-URL המלאה של קובץ המניפסט של JSON, במקום הנתיב לקריאה שלnavigator.credentials.get()
.- עכשיו
nonce
הוא פרמטר אופציונלי בשבילnavigator.credentials.get()
. hint
כבר לא זמין כאפשרות עבורnavigator.credentials.get()
.
const credential = await navigator.credentials.get({
identity: {
providers: [{
configURL: 'https://idp.example/anything.json',
clientId: '********',
nonce: '******'
}]
}
});
const { token } = credential;
Chrome 104 (יוני 2022)
- הפרמטר
consent_acquired
שנשלח לנקודת הקצה של אסימון המזהה הואdisclosure_text_shown
. הערך לא משתנה. - סמלי המיתוג במניפסט של ה-IdP הפסיקו לתמוך בתמונות SVG, אבל הם כבר לא צריכים להיות מותרים במסגרת מדיניות אבטחת התוכן של הגורם המוגבל.
Chrome 103 (מאי 2022)
- יש תמיכה בסביבות של מחשבים.
- תומכת בהגדרות לכל גורם מוגבל במחשב.
- נקודת הקצה (endpoint) של המטא-נתונים של הלקוח היא עכשיו אופציונלית. בנקודת הקצה הזו, גם כתובת ה-URL של מדיניות הפרטיות היא אופציונלית.
- נוספה אזהרה לגבי השימוש ב-CSP
connect-src
במסמך.