ב-Chrome 123 אפשר להשתמש ברמזים לדומיינים לצד Federated Credential Management API (FedCM). בעזרת Domain Hint API, מפתחים יכולים לספק חוויית משתמש טובה יותר על ידי הצגת חשבונות הכניסה המאוחדים מהדומיין שהם מקבלים בלבד.
Domain Hint API
אפשר להשתמש ב-FedCM כדי להקל על משתמשים להתחבר לצד נסמך (RP, אתר) באמצעות פרטי חשבון שסופקו על ידי ספק זהויות (IdP). עם זאת, יש מקרים שבהם ה-RP כבר יודע שרק חשבונות שמשויכים לדומיין מסוים מורשים להתחבר לאתר. המצב הזה נפוץ במיוחד בתרחישים ארגוניים שבהם הגישה לאתר מוגבלת לדומיין של הארגון. כדי לספק חוויית משתמש טובה יותר, ה-FedCM API מאפשר ל-RP להציג רק את החשבונות שאפשר להשתמש בהם כדי להתחבר ל-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 עם רשימת החשבונות החדשה. הגישה הזו דומה ל-Login Hint API, אבל שני ממשקי ה-API האלה נותנים תשובות לשאלות שונות. מטרת ה-API של Login Hint היא לענות על השאלה "מהו המזהה של המשתמש הרצוי?", ואילו מטרת ה-API של Domain Hint היא לענות על השאלה "לאיזה תאגיד או שרת החשבון הזה צריך להיות שייך?".
כשמשתמשים ב-domainHint: "any"
, Chrome מסנן חשבונות שאין להם דומיינים (כלומר, domain_hints
לא מועבר או שהוא ריק). לדוגמה, אפשר להשתמש באפשרות הזו בתרחישי שימוש שבהם ה-RP מאפשר רק חשבונות מנוהלים בתהליך ההרשמה שלו.
אם אין חשבונות שתואמים ל-domainHint
, בתיבת הדו-שיח של FedCM תוצג בקשה להתחברות, שמאפשרת למשתמש להתחבר לחשבון IdP שתואם לטיפת המידע שביקשה ה-RP. כשהמשתמש מקשיב להנחיה, נפתח חלון קופץ עם כתובת ה-URL להתחברות שצוינה בקובץ התצורה. לאחר מכן, הקישור מצורף לטיפים להתחברות ולפרמטרים של שאילתות לטיפים לדומיין.

domainHint
.