תמיכה באימות אוטומטי מחדש ב-FedCM

Chrome תומך באימות מחדש אוטומטי ב-FedCM

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

FedCM מאפשר לדפדפן להבין את ההקשר שבו ה-RP וה-IdP על חילופי מידע. היא מיידעת את המשתמשים על המידע וההרשאה את רמות החברות במועדון ומונעת שימוש לרעה לא מכוון. FedCM זמין ב: Chrome מגרסה 108.

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

אימות מחדש אוטומטי

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

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

FedCM אימות מחדש באופן אוטומטי ('אימות אוטומטי' בקיצור) יכול לאפשר למשתמשים לבצע אימות מחדש באופן אוטומטי, לחזור אחרי האימות הראשוני באמצעות FedCM. "המודל הראשוני אימות" כאן המשמעות היא שהמשתמש יוצר חשבון או נכנס האתר באמצעות הקשה על הלחצן 'המשך בתור...' בתיבת הדו-שיח לכניסה ב-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 הוא נכס בניהול פרטי הכניסה API, הוא מתנהג באותו בדרך כזאת עושה בשביל PasswordCredential וגם FederatedCredential והיא נתמכת באופן חלקי PublicKeyCredential וגם. המאפיין מקבל את ארבעת הערכים הבאים:

  • 'required': תמיד צריך להגדיר גישור כדי להמשיך. לדוגמה, לחיצה על "Continue" בממשק המשתמש. יש לבחור באפשרות הזו אם המשתמשים צפויים מעניקות הרשאה מפורשת בכל פעם שצריך לאמת אותן.
  • 'optional'(ברירת מחדל): אימות אוטומטי אם אפשר, מחייב גישור. רביעי מומלץ לבחור באפשרות הזו בדף הכניסה.
  • 'silent': אימות מחדש אוטומטי אם אפשר, נכשל ללא צורך בתהליך בחירת הרשת אם לא. מומלץ לבחור באפשרות זו בדפים שאינם דף הכניסה הייעודי, אבל שבו רוצים שהמשתמשים יישארו מחוברים לחשבון למשל, דף פריט באתר משלוחים או דף מאמר בחדשות האתר.
  • 'conditional': השירות משמש ל-WebAuthn ולא זמין ל-FedCM כרגע.

בשיחה הזו, האימות מחדש האוטומטי מתקיים בתנאים הבאים:

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

כשהתנאים שלמעלה מתקיימים, ניסיון לבצע אימות מחדש באופן אוטומטי המשתמש יתחיל מיד לאחר הפעלת navigator.credentials.get() של FedCM.

משתמש שמבצע אימות מחדש באופן אוטומטי באמצעות FedCM.

אכיפת גישור באמצעות preventSilentAccess()

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

function signout() {
  navigator.credentials.preventSilentAccess();
  location.href = '/signout';
}

המשתמשים יכולים לבטל את ההסכמה לאימות אוטומטי בהגדרות

המשתמשים יכולים לבטל את ההסכמה לאימות אוטומטי דרך תפריט ההגדרות:

  • ב-Chrome במחשב, עוברים אל chrome://password-manager/settings > איך נכנסים באופן אוטומטי.
  • ב-Android Chrome, פותחים את הגדרות > מנהל הסיסמאות > מקישים על גלגל השיניים בפינה הימנית העליונה > כניסה אוטומטית.

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

מתן משוב

אם אתם בודקים את FedCM, תוכלו לשתף משוב או ליצור בעיות שנתקלתם בהן. בכתובת crbug.com מתחת לרכיב "Blink>Identity>FedCM".

תמונה מאת נואה סמואל פרנץ ב-Unbounce