העברה ל-FedCM

המדריך הזה יעזור לכם להבין את השינויים באפליקציית האינטרנט שלכם בעקבות Federated Credentials Management API‏ (FedCM).

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

סקירה כללית

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

ברוב האתרים, ההעברה מתבצעת בצורה חלקה באמצעות עדכונים תואמים לאחור לספריית JavaScript של Google Identity Services.

עדכונים לגבי התכונה 'כניסה אוטומטית'

גרסת הבטא של Federated Credential Management‏ (FedCM) ל-Google Identity Services הושקה באוגוסט 2023. מפתחים רבים בדקו את ה-API וסיפקנו משוב חשוב.

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

לאחרונה, ב-M121, בוצע ב-Chrome שינוי בממשק המשתמש של תהליך הכניסה האוטומטי ל-FedCM. נדרש אישור חוזר רק כשקובצי cookie של צד שלישי מוגבלים. כלומר:

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

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

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

בתהליך הכניסה האוטומטי, ה-JavaScript של GIS לא יפעיל את FedCM בדפדפני Chrome ישנים יותר (לפני M121), גם אם בחרתם באתר להביע הסכמה ל-FedCM.

הבדלים בתהליך שעובר המשתמש

חוויית השימוש ב-One Tap באמצעות FedCM ובלי FedCM דומה, עם הבדלים קלים בלבד.

משתמש חדש שביצע ביקור יחיד

כשמשתמשים ב-FedCM, ב-One Tap מוצג שם הדומיין ברמה העליונה במקום שם האפליקציה.

שימוש ב-FedCM ללא FedCM
משתמש חדש בסשן יחיד באמצעות FedCM משתמש חדש בסשן יחיד ללא FedCM

משתמש חוזר שהיה לו סשן יחיד (עם כניסה אוטומטית מושבתת)

כשמשתמשים ב-FedCM, ב-One Tap מוצג שם הדומיין ברמה העליונה במקום שם האפליקציה.

שימוש ב-FedCM ללא FedCM
תהליך של משתמש חוזר בסשן יחיד באמצעות FedCM (כשהכניסה האוטומטית מושבתת) תהליך של משתמש חוזר בסשן יחיד ללא FedCM (עם כניסה אוטומטית מושבתת)

משתמש חוזר שהיה לו סשן יחיד (עם כניסה אוטומטית מופעלת)

באמצעות FedCM, המשתמשים יכולים ללחוץ על X כדי לבטל את הכניסה האוטומטית תוך 5 שניות, במקום ללחוץ על הלחצן Cancel.

שימוש ב-FedCM ללא FedCM
תהליך של משתמש חוזר בסשן יחיד באמצעות FedCM (עם כניסה אוטומטית מופעלת) תהליך של משתמש חוזר בסשן יחיד ללא FedCM (עם כניסה אוטומטית מופעלת)

מספר סשנים

כשמשתמשים ב-FedCM, ב-One Tap מוצג שם הדומיין ברמה העליונה במקום שם האפליקציה.

שימוש ב-FedCM ללא FedCM
משתמש עם כמה ביקורים שמשתמש ב-FedCM משתמש שביצע מספר ביקורים ללא FedCM

לפני שמתחילים

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

  • FedCM API זמין ב-Chrome 117 ואילך.

  • ההגדרה כניסה של צד שלישי מופעלת ב-Chrome.

  • אם גרסת דפדפן Chrome שלכם היא 119 ואילך, פותחים את chrome://flags ומפעילים את התכונה הניסיונית FedCmWithoutThirdPartyCookies. אין צורך לבצע את השלב הזה בדפדפן Chrome בגרסה 120 ואילך.

העברת אפליקציית האינטרנט

כדי להפעיל את FedCM, להעריך את ההשפעה הפוטנציאלית של ההעברה ולבצע שינויים באפליקציית האינטרנט הקיימת, פועלים לפי השלבים הבאים:

1. מוסיפים דגל בוליאני כדי להפעיל את FedCM במהלך האתחול באמצעות:

2. מסירים את השימוש ב-methods isDisplayMoment(),‏ isDisplayed(),‏ isNotDisplayed() ו-getNotDisplayedReason() בקוד.

כדי לשפר את פרטיות המשתמשים, פונקציית ה-call back‏ google.accounts.id.prompt כבר לא מחזירה התראות על רגעים מיוחדים להצגה באובייקט PromptMomentNotication. מסירים כל קוד שמבוסס על השיטות שקשורות לרגע התצוגה. אלה השיטות isDisplayMoment(),‏ isDisplayed(),‏ isNotDisplayed() ו-getNotDisplayedReason().

3. מסירים את השימוש בשיטה getSkippedReason() בקוד.

אמנם רגע הדילוג, isSkippedMoment(), עדיין יקרא ל-callback‏ google.accounts.id.prompt באובייקט PromptMomentNotication, אבל לא תסופק סיבה מפורטת. מסירים מהקוד כל קוד שמבוסס על השיטה getSkippedReason().

חשוב לשים לב שההתראה על ביטול הרגע, isDismissedMoment(), ושיטת הסיבה המפורטת המשויכת, getDismissedReason(), לא משתנות כשהתכונה FedCM מופעלת.

4. מסירים את מאפייני הסגנון position מ-data-prompt_parent_id ומ-intermediate_iframes.

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

5. מעדכנים את פריסת הדף לפי הצורך.

הדפדפן קובע את הגודל והמיקום של ההנחיות למשתמשים. בהתאם למבנה של דפים מסוימים, יכול להיות שחלק מהתוכן יוצג בשכבה עליונה כי אין תמיכה במיקומים מותאמים אישית של מודעות One Tap במחשב, למשל מאפיין סגנון, data-prompt_parent_id, intermediate_iframes, iframe בהתאמה אישית ודרכים יצירתיות אחרות.

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

6. מוסיפים את המאפיין allow="identity-credentials-get" למסגרת ההורה אם אפליקציית האינטרנט קוראת ל-One Tap API מ-iframes ממקורות שונים.

iframe נחשב כמקור חוצה אם המקור שלו לא זהה לחלוטין למקור ההורה. לדוגמה:

  • דומיינים שונים: https://example1.com ו-https://example2.com
  • דומיינים שונים ברמה העליונה: https://example.uk ו-https://example.jp
  • תת-דומיינים: https://example.com ו-https://login.example.com

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

מכיוון שהפער הזה עלול להטעות, השיטה הנתמכת היא להשתמש רק ב-One Tap ב-iframes ממקורות שונים, אבל ב-אותו אתר. לדוגמה, דף בדומיין ברמה העליונה https://www.example.com שמשתמש ב-iframe כדי להטמיע דף עם One Tap ב-https://login.example.com. בהודעה של הקשה אחת תוצג ההודעה "כניסה אל example.com באמצעות google.com".

בכל מקרה אחר, כמו דומיינים שונים, אין תמיכה. במקום זאת, כדאי לשקול שיטות שילוב חלופיות כמו:

  • הטמעת הלחצן 'כניסה באמצעות חשבון Google'.
  • הטמעת One Tap בדומיין ברמה העליונה
  • שימוש בנקודות הקצה של OAuth 2.0 של Google לשילוב מותאם אישית יותר.
  • אם אתם מטמיעים אתר של צד שלישי בתוך iframe ואתם לא יכולים לשנות את ההטמעה של התכונה 'הקשה אחת', אתם יכולים למנוע את הצגת ההנחיה 'הקשה אחת' בתוך ה-iframe. כדי לעשות זאת, מסירים את המאפיין allow="identity-credentials-get" מתג ה-iframe בפריים ההורה. הפעולה הזו תמנע את הצגת ההנחיה, ואז תוכלו להפנות את המשתמשים ישירות לדף הכניסה של האתר המוטמע.

כשקוראים ל-One Tap API מ-iframes ממקורות שונים, צריך להוסיף את המאפיין allow="identity-credentials-get" לכל תג iframe של מסגרת הורה:

  <iframe src="https://your.cross-origin/onetap.page" allow="identity-credentials-get"></iframe>

אם האפליקציה שלכם משתמשת ב-iframe שמכיל iframe נוסף, עליכם לוודא שהמאפיין מתווסף לכל iframe, כולל כל iframe המשנה.

לדוגמה, נבחן את התרחיש הבא:

  • המסמך העליון (https://www.example.uk) מכיל iframe בשם Iframe A, שמוטמע בו דף (https://logins.example.com).

  • הדף המוטמע הזה (https://logins.example.com) מכיל גם iframe בשם 'Iframe B', שמוטמע בו דף (https://onetap.example2.com) שמארח את One Tap.

    כדי לוודא שאפשר להציג את התכונה 'הקשה אחת' כראוי, צריך להוסיף את המאפיין גם לתג Iframe A וגם לתג Iframe B.

    מתכוננים לשאלות לגבי ההנחיה 'הקשה אחת' שלא מוצגת. אתרים אחרים עם מקורות שונים עשויים להטמיע את הדפים שלכם שמארחים את One Tap בתוך iframes שלהם. יכול להיות שתקבלו יותר כרטיסי תמיכה ממשתמשים קצה או מבעלי אתרים אחרים לגבי הבעיה של One Tap שלא מופיע. רק בעלי האתר יכולים לבצע את העדכונים בדפים שלהם, אבל אתם יכולים לבצע את הפעולות הבאות כדי לצמצם את ההשפעה:

  • מעדכנים את המסמכים למפתחים כך שיכללו הוראות להגדרת ה-iframe בצורה נכונה כדי לקרוא לאתר. אפשר לקשר לדף הזה במסמכי העזרה.

  • מעדכנים את דף השאלות הנפוצות למפתחים, אם רלוונטי.

  • כדאי להודיע לצוות התמיכה על השינוי הקרוב ולהכין מראש את התשובה לשאלה.

  • מומלץ ליצור קשר באופן יזום עם שותפים, לקוחות או בעלי אתרים שהושפעו מהשינוי, כדי שהמעבר ל-FedCM יהיה חלק.

7. מוסיפים את ההנחיות האלה למדיניות האבטחה של התוכן (CSP).

השלב הזה הוא אופציונלי, כי לא כל האתרים בוחרים להגדיר שירות CSP.

  • אם לא נעשה שימוש ב-CSP באתר שלכם, אין צורך לבצע שינויים.

  • אם ה-CSP פועל עם One Tap הנוכחי ואתם לא משתמשים ב-connect-src,‏ frame-src, ‏ script-src, ‏ style-src או default-src, אין צורך לבצע שינויים.

  • אחרת, פועלים לפי המדריך הזה כדי להגדיר את ה-CSP. בלי הגדרה נכונה של CSP, התכונה FedCM One Tap לא תוצג באתר.

8. מסירים את התמיכה ב-Accelerated Mobile Pages‏ (AMP) לכניסה.

תמיכה בכניסת משתמשים ב-AMP היא תכונה אופציונלית של GIS שאולי הטמעתם באפליקציית האינטרנט שלכם. במקרה כזה,

מחיקה של כל ההפניות אל:

  • רכיב מותאם אישית מסוג amp-onetap-google, וגם
  • <script async custom-element="amp-onetap-google" src="https://cdn.ampproject.org/v0/amp-onetap-google-0.1.js"></script>
    

    כדאי להפנות אוטומטית בקשות כניסה מ-AMP לתהליך הכניסה ב-HTML של האתר. חשוב לזכור שהשדה הקשור Intermediate Iframe Support API לא מושפע.

בדיקה ואימות של ההעברה

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

  1. מוודאים שהדפדפן תומך ב-FedCM ושיש לכם סשן קיים בחשבון Google.

  2. עוברים לדפים של One Tap באפליקציה.

  3. מוודאים שההנחיה להקשה אחת מוצגת ומופיעה בבטחה על התוכן שמתחתיה.

  4. מוודאים שפרטי הכניסה הנכונים מוחזרים לנקודת הקצה או לשיטת ה-callback כשנכנסים לאפליקציה באמצעות One Tap.

  5. אם הכניסה האוטומטית מופעלת, מוודאים שהביטול פועל והפרטים המתאימים מוחזרים לנקודת הקצה או לשיטת ה-callback.

תקופת הצינון של One Tap

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

תקופת שקט לכניסה אוטומטית

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

מקורות מידע שימושיים

כלי הניתוח של 'ארגז החול לפרטיות' (PSAT) הוא תוסף ל-Chrome DevTools שעוזר בהטמעת ממשקי API חלופיים כמו FedCM. הכלי סורק את האתר כדי לזהות את התכונות שהושפעו ומספק רשימה של שינויים מומלצים.