החל מגרסה 123 של Chrome, אפשר להשתמש בטיפים לדומיינים לצד Federated Credential Management API (FedCM). ב- Domain Hint API, מפתחים יכולים לספק חוויית משתמש טובה יותר רק שמציג את חשבונות ההתחברות המאוחדים מהדומיין שהם מקבלים.
ממשק API של Domain Hint
אפשר להשתמש ב-FedCM כדי להקל על המשתמשים להתחבר לגורם נסמך (RP, הפניה לאתר) באמצעות פרטי חשבון שסופקו על ידי זהות ספק (IdP). אבל יש מקרים שבהם הגורם המוגבל כבר יודע חשבונות שמשויכים לדומיין מסוים מורשים להתחבר לאתר. הזה נפוצה במיוחד בתרחישים ארגוניים שבהם ניגשים לאתר מוגבל לדומיין ארגוני. כדי לספק חוויית משתמש טובה יותר, ה-FedCM ה-API מאפשר ל-RP להציג רק את החשבונות שאפשר להשתמש בהם כדי להתחבר הגורם המוגבל. כך ניתן למנוע מצבים שבהם משתמש מנסה להתחבר לגורם המוגבל (RP) באמצעות חשבון מחוץ לדומיין התאגידי, יוצג רק עם הודעת שגיאה מאוחר יותר (או להשתיק כאשר ההתחברות לא עבדה) כי הסוג הנכון של לא נעשה שימוש בחשבון.
באמצעות Domain Hint API, ספקי RP יכולים לציין נכס domainHint
ב-FedCM API
קריאה להציג רק חשבונות שתואמים למשתמש. ה-IdP יכול לספק
הנכס domain_hints
כחלק מתשובה מרשימת החשבונות
נקודת קצה ל-
לציין לאילו דומיינים משויך החשבון. כך הדפדפן
יכול להציג את החשבונות התואמים בלי לחשוף את הרמז לדומיין המבוקש
ה-IdP.
תגובת JSON לדוגמה מנקודת הקצה של רשימת החשבונות תיראה כך הבאים:
{
"accounts": [{
"id": "1234",
"given_name": "John",
"name": "John Doe",
"email": "john_doe@idp.example",
"picture": "https://idp.example/profile/123",
"approved_clients": ["123", "456", "789"],
}, {
"id": "5678",
"given_name": "Johnny",
"name": "Johnny",
"email": "johnny@idp.example",
"picture": "https://idp.example/profile/456"
"approved_clients": ["abc", "def", "ghi"],
"domain_hints": ["corp.example"]
}]
}
הגורם המוגבל (RP) יכול לבצע קריאה אל navigator.credentials.get()
עם נכס domainHint
כדי
לסנן את החשבונות. לדוגמה, נניח שמשתמש מבקר בכתובת corp-partner.example
נכנס באמצעות חשבון מ-corp.example
. האתר יפעיל את ה-API בתור
ככה:
return await navigator.credentials.get({
identity: {
providers: [{
configURL: "https://idp.example/manifest.json",
clientId: "abc",
nonce: nonce,
domainHint : "corp.example"
}]
}
});
הערך domainHint
לא נשלח לרשימת החשבונות
נקודת קצה
לסינון בצד השרת, כי זה יכול להיות וקטור של טביעת אצבע דיגיטלית ל-IdP.
במקום זאת, Chrome מבצע בקשת FedCM כרגיל ומסנן את החשבונות
שלא תואמים לערך של domainHint
שצוין
שיחת navigator.credentials.get()
. לאחר מכן, Chrome מציג את תיבת הדו-שיח FedCM
משתמש עם רשימת החשבונות החדשה. הגישה הזו דומה לרמז להתחברות
API, אבל שני הדברים האלה
ממשקי API עונים על שאלות שונות. המטרה של Login Hint API היא לענות על
את המזהה של המשתמש שאני רוצה?", בעוד ש-Domain Hint נועד לענות על
תאגיד או שרת שייכים לחשבון זה?".
כשנעשה שימוש ב-domainHint: "any"
, Chrome מסנן חשבונות שאין להם
כל הדומיינים (כלומר, domain_hints
לא הועבר או ריק). לדוגמה,
כך אפשר להשתמש במקרים שבהם ה-RP מאפשר לרשום רק חשבונות מנוהלים
תהליך האימות.
כשאין חשבונות שתואמים ל-domainHint
, בתיבת הדו-שיח של FedCM מוצגת בקשת התחברות,
שמאפשר למשתמש להתחבר לחשבון IdP שתואם לרמז המבוקש
הגורם המוגבל. כשהמשתמש יקיש על ההנחיה, ייפתח חלון קופץ עם
כתובת ה-URL לכניסה מצוינת ברכיב config
. הקישור הוא
מצורף עם הרמז להתחברות והפרמטרים של השאילתה לגבי הרמז לדומיין.