עדכונים ל-FedCM: Multi IdP API במחשב, button Mode API ו-Continue Bundle ל-Chrome בגרסאות מקור לניסיון של Android

Natalia Markoborodova
Natalia Markoborodova

החל מ-Chrome 128, אנחנו מתחילים גרסת מקור לניסיון של Multi-IdP API במחשב, וגרסת מקור לניסיון של Button Mode API ושל Continuation bundle ב-Android. באמצעות התכונה 'ספקי זהויות מרובים', מפתחים יכולים לציין מערך של כמה ספקי זהויות נתמכים בקריאה אחת של get(). ב-Button Mode API נוסף ממשק משתמש חדש. בעזרת Button Mode API, ספקי זהויות יכולים להשתמש ב-FedCM API גם אם למשתמשים שלהם אין סשנים פעילים של ספקי זהויות בזמן הקריאה ל-API. חבילת ההמשכיות מורכבת מ-Continuation API ומ-Parameters API, שמאפשרים חוויה שדומה לתהליך הרשאת OAuth שכולל תיבת דו-שיח של הרשאה שסופקה על ידי ספק הזהויות. החבילה כוללת גם שינויים אחרים, כמו Fields API, ‏ Multiple configURL ותוויות חשבון מותאמות אישית.

גרסת מקור לניסיון: Multi IdP API

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

משתמש נכנס באמצעות ספקי זהויות שונים באמצעות API של כמה ספקי זהויות.

ספקי הזהויות מקבלים עדיפות על סמך החשבונות הקיימים של המשתמשים וחותמות הזמן המשויכות להם.

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

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

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

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

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

מידע נוסף על סטטוס הכניסה זמין במסמכי התיעוד. פרטים נוספים על ההטמעה זמינים במדריך למפתחים.

גרסת מקור לניסיון: Multi IdP API

משתמשים יכולים לנסות את Multi IdP API בהדגמה של RP, ומפתחים יכולים לנסות אותו ב-Chrome 128 או בגרסה חדשה יותר.

ניסיון בתור משתמש

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

  • דפדפן Chrome לא מוגדר לחסימת הנחיות לכניסה לצד שלישי בדף: chrome://settings/content/federatedIdentityApi.
  • אתם מחוברים לכמה ספקי זהויות להדגמה. פועלים לפי ההוראות בדף ההדגמה.

שימו לב: כדי לנסות את Multi-IdP באתרים שהמקור שלהם לא רשום לניסוי המקור, צריך להפעיל את דגל התכונה בקטע chrome://flags/#fedcm-multi-idp.

אני רוצה לנסות בתור מפתח/ת

אם ספק הכניסה הטמיע ערכת SDK ב-JavaScript ב-RP (מומלץ), הספק יכול להטמיע את הקריאה navigator.credentials.get() להפעלת מספר ספקי זהויות, ומפתחי ה-RP לא צריכים לשנות את הקוד שלהם. אחרת, ספק הזהויות צריך לקרוא ל-FedCM API בעצמו.

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

try {
  const cred = await navigator.credentials.get({
    identity: {
      providers: [
        {
          configUrl: "https://idp1.example/foo.json", // first IdP
          clientId: "123",
        },
        {
          configUrl: "https://idp2.example/bar.json", // second IdP
          clientId: "456",
        }
      ]
    }
  });

  const token = cred.token;
  const currentConfigFileUrl = cred.configURL;

  if (cred.configURL === 'https://idp1.example/foo.json')  {
    // handle the token for idp1.example
  } else if (cred.configURL === 'https://idp2.example/bar.json') {
    // handle the token for idp2.example
  }
} catch (error) {
  console.error("Error during credential retrieval:", error);
}

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

השתתפות בגרסת מקור לניסיון

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

אתם יכולים לנסות את התכונה Multi IdP על ידי הרשמה לניסויים של התכונה החל מגרסה Chrome 128.

כדי לנסות את Multi IdP, ספק שירות יכול לרשום את המקור שלו ולהפעיל ניסיון של מקור מאינטראקציה ישירה (first-party). אפשר גם לרשום את ספק ה-IdP לתקופת ניסיון של מקור צד שלישי, כדי שהתכונה 'מספר ספקי IdP' תהיה זמינה לכל ספקי ה-RP שלו באמצעות ערכות SDK של JavaScript.

כדי להשתתף בגרסת מקור לניסיון:

  1. עוברים אל דף ההרשמה לגרסת המקור לניסיון של Multi IdP API. 2. לוחצים על הלחצן הרשמה וממלאים את הטופס כדי לבקש טוקן.
  2. כדי להירשם לגרסת מקור לניסיון של צד ראשון, מזינים את המקור של ה-RP בשדה Web Origin (מקור אינטרנט). בניסיון שימוש במקור צד שלישי, מזינים את המקור של ה-SDK של JavaScript של ספק הזהויות ומסמנים את התיבה 'התאמה לצד שלישי'.
  3. לוחצים על שליחה.
  4. מספקים את הטוקן שהונפק בדף של ספק הזהויות:
    • למשתתפים בתקופת ניסיון של מקור צד ראשון: – כתג meta ב-<head>: <meta http-equiv="origin-trial" content="TOKEN_GOES_HERE"> – ככותרת HTTP: Origin-Trial: TOKEN_GOES_HERE
    • למשתתפים בגרסת מקור לניסיון של צד שלישי: – על ידי אספקת טוקן באופן פרוגרמטי.

‫Button Mode API ל-Chrome ב-Android

החל מגרסה Chrome 128, גרסת המקור לניסיון של Button Mode API תתחיל ב-Chrome ב-Android, אחרי הניסיון הראשוני ב-Desktop. בעזרת Button Mode API, ספקי זהויות יכולים להשתמש ב-FedCM API גם אם המשתמשים שלהם יצאו מהחשבון בספק הזהויות כשהם מבצעים קריאה ל-API. תהליך הכניסה מתחיל באמצעות תנועת משתמש, וכך משקף טוב יותר את הכוונה של המשתמש.

ב-Chrome 128, הושקה תכונה חדשה שמאפשרת לספקי IdP לכלול את סמל הלוגו הרשמי של ה-RP ישירות בתשובה של נקודת הקצה של מטא-נתוני הלקוח. כך משפרים את ממשק המשתמש במכשירים ניידים במצב לחצן.

בדומה למיתוג של ספק הזהויות בקובץ התצורה, אפשר להגדיר את הסמלים של ספק הזהויות בצד של ספק הזהויות ולהחזיר אותם בתשובה client_metadata_endpoint באופן הבא:

  "privacy_policy_url": "https://rp.example/privacy_policy.html",
  "terms_of_service_url": "https://rp.example/terms_of_service.html",
  "icons": [{
      "url": "https://idp.example/rp-icon.ico",
      "size": 40
   }]
סמלי לוגו של ספקי זהויות ושל צדדים מסתמכים.
סמלי הלוגו של ספק ה-IdP ושל ספק ה-RP בממשק המשתמש של הגילוי הנאות בנייד.

מידע נוסף על תמיכה בסמלים זמין במסמכי המפתח.

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

אם המשתמש מבצע אימות מחדש באמצעות חשבון קיים, ממשק המשתמש של הגילוי הנאות לא יוצג.

משתמש נכנס לחשבון קיים. ממשק הגילוי הנאות לא מוצג.

כדי להירשם לגרסת המקור לניסיון, אפשר לעיין בהוראות לשימוש ב-Button Mode API במחשב. אם כבר נרשמתם לתקופת הניסיון של התכונה במחשב, היא תהיה זמינה לכם באופן אוטומטי ב-Chrome ב-Android החל מגרסה Chrome 128.

חבילת Continuation API ל-Chrome ב-Android

החל מגרסה Chrome 128, חבילת Continuation API ‎תהיה זמינה ל-Chrome ב-Android כחלק מגרסת מקור לניסיון, אחרי הניסיון הראשוני שלה במחשב. החבילה כוללת כמה תכונות של FedCM, כולל Continuation API,‏ Parameters API,‏ Fields API,‏ Multiple configURLs ו-Custom Account Labels.

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

מידע נוסף על חבילת Continuation API זמין בפוסט בבלוג בנושא חבילת Continuation API במחשב. כדי להירשם לתקופת הניסיון של origin, פועלים לפי ההוראות האלה. אם כבר נרשמתם לגרסת המקור לניסיון במחשב, התכונות יהיו זמינות לכם באופן אוטומטי ב-Chrome ב-Android החל מ-Chrome 128.

אינטראקציה ושיתוף משוב

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