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

Natalia Markoborodova
Natalia Markoborodova

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

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

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

משתמש נכנס לחשבון עם ספקי IdP שונים באמצעות ה-API מרובה-ה-IdP.

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

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

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

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

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

כשסטטוס ההתחברות של המשתמש מחובר, אבל פג התוקף של הסשן, מוצג ממשק המשתמש של חוסר ההתאמה.

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

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

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

רוצה לנסות את זה כמשתמש/ת?

נסו את זה בעצמכם כמשתמשים. ודא ש:

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

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

רוצה לנסות את זה כמפתח/ת?

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

כדי לבדוק את ה-Multi IdPs ב-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 שהמשתמש ביצע אימות. ה-RP יכול לקבוע איך לטפל ב-token שמתקבל, כי הוא משתנה בהתאם ל-IdP.

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

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

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

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

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

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

ממשק ה-API של מצב הלחצן ל-Chrome ב-Android

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

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

בדומה למיתוג של ה-IdP בקובץ התצורה, אפשר להגדיר את הסמלים של ה-RP בצד ה-IdP ולהחזיר אותם בתשובה 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 ושל הגורם המוגבל.
סמלי הלוגו של ה-IdP ושל הגורם המוגבל בממשק המשתמש של הגילוי הנאות בנייד.

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

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

משתמש נכנס לחשבון באמצעות מצב לחצן בנייד.

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

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

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

חבילת ממשק API של המשך ל-Chrome ב-Android

החל מגרסה 128 של Chrome, חבילת ה-API ההמשך תהיה זמינה ל-Chrome ב-Android כחלק מגרסת המקור לניסיון, לאחר תקופת הניסיון הראשונית במחשב. החבילה מורכבת מכמה תכונות של FedCM, כולל Continuation API, Parameters API, Fields API, כתובות URL מרובות config ותוויות חשבון מותאמות אישית.

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

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

מעורבות ושיתוף משוב

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