הענקת גישה לניהול קהלים לצד שלישי

כדי לשלוט בניהול קהלים, אפשר להשתמש במדיניות הרשאות או להעביר את השליטה לצד שלישי על ידי הגדרת כתובת URL של הרשאות מוכרות.

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

נדרשת הרשאה מ: joinAdInterestGroup()

כלומר, malicious.example לא יכול להתקשר אל joinAdInterestGroup() בשם קבוצת אינטרס שבבעלות dsp.example.com, בלי ש-dsp.example.com ייתן הרשאה.

הרשאה מהאתר שבו ביקרתם

אפשר להעניק הרשאה מאותו מקור או ממקורות שונים.

כברירת מחדל, ההרשאה ניתנת לקריאות של joinAdInterestGroup() מאותו מקור כמו האתר שבו מבקרים (במילים אחרות, מאותו מקור כמו המסגרת ברמה העליונה של הדף הנוכחי). אתרים יכולים להשתמש בjoin-ad-interest-group כותרת מדיניות ההרשאות כדי להשבית קריאות ל-joinAdInterestGroup().

קריאה ל-joinAdInterestGroup() ממקורות שונים (מקורות ששונים מהדף הנוכחי) יכולה להצליח רק אם האתר שבו מבקרים הגדיר מדיניות הרשאות שמאפשרת קריאות ל-joinAdInterestGroup() מ-iframe ממקורות שונים.

הרשאה מבעלי קבוצת האינטרס

הרשאת הבעלים של קבוצת נושאים מוענקת באופן מרומז על ידי קריאה ל-joinAdInterestGroup() מתוך iframe עם אותו מקור כמו זה של הבעלים של קבוצת הנושאים. לדוגמה, dsp.example.com iframe יכול לקרוא ל-joinAdInterestGroup() עבור קבוצות אינטרס שבבעלות dsp.example.com.

במהותה, joinAdInterestGroup() יכולה לפעול בדף או ב-iframe בדומיין של הבעלים, או להיות מוקצית לדומיינים אחרים שמופיעים ברשימה בכתובת URL של .well-known.

כשפריים עובר לדומיין אחד וקורא לפונקציות joinAdInterestGroup(), leaveAdInterestGroup() או clearOriginJoinedAdInterestGroups() עבור קבוצת נושאים עם בעלים שונים, הדפדפן יאחזר את כתובת ה-URL ‏https://owner.domain/.well-known/interest-group/permissions/?origin=frame.origin, כאשר owner.domain הוא הדומיין שבבעלותו קבוצת הנושאים ו-frame.origin הוא המקור של הפריים. הפעולה fetch משתמשת במצב omit credentials (השמטת פרטי כניסה), באמצעות מפתח חלוקת הרשת של המסגרת שהפעילה את השיטה. כדי למנוע דליפה של נתונים ממקורות שונים דרך ה-Promise שמוחזר באופן לא צפוי, הפונקציה fetch משתמשת במצב cors. התגובה שאוחזרה צריכה להיות מסוג JSON MIME ובפורמט הבא:

{ "joinAdInterestGroup": true/false,
  "leaveAdInterestGroup": true/false
}

ההגדרה הזו מציינת אם למקור בנתיב יש הרשאות להצטרף לקבוצות של נושאים או לצאת מהן, שנמצאות בבעלות הדומיין שאליו נשלחת הבקשה. ההנחה היא שההרשאות החסרות הן false. מאחר שהתקשרות אל navigator.joinAdInterestGroup() עם lifetimeMs של 0 מוציאה למעשה קבוצת עניין, joinAdInterestGroup: true מאפשרת גם למקור להתקשר אל navigator.leaveAdInterestGroup(), גם אם leaveadInterestGroup חסר או מוגדר כ-false. שימו לב שגם leaveAdInterestGroup() וגם clearOriginJoinedAdInterestGroups() בודקים את ההרשאה leaveAdInterestGroup.