הגדרה

לפני שמוסיפים את 'כניסה באמצעות חשבון Google', 'הקשה אחת' או 'כניסה אוטומטית', מגדירים את הגדרות ה-OAuth של האתר, ואפשר גם להגדיר את ה-Content Security Policy של האתר.

קבלת מזהה הלקוח ב-Google API

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

  1. פותחים את הדף Credentials במסוף Google APIs.
  2. יוצרים או בוחרים פרויקט בממשקי Google APIs. אם כבר יש לכם פרויקט ללחצן 'כניסה באמצעות חשבון Google' או ל-Google One Tap, משתמשים בפרויקט הקיים ובמזהה הלקוח באינטרנט. כשיוצרים אפליקציות בסביבת ייצור, יכול להיות שיהיה צורך בכמה פרויקטים ולחזור על השלבים שנותרו בקטע הזה לכל פרויקט שאתם מנהלים.
  3. לוחצים על Create credentials > OAuth client ID, ובקטע Application type בוחרים באפשרות Web application כדי ליצור מזהה לקוח חדש. כדי להשתמש במזהה לקוח קיים, צריך לבחור סוג: אפליקציית אינטרנט.
  4. מוסיפים את ה-URI של האתר אל מקורות JavaScript מורשים. ה-URI כולל את הסכמה ואת שם המארח המלא בלבד. לדוגמה, https://www.example.com.

  5. אופציונלי: אפשר להחזיר את פרטי הכניסה באמצעות הפניה אוטומטית לנקודת קצה שאתם מארחים, במקום באמצעות קריאה חוזרת (callback) של JavaScript. במקרה כזה, הוסיפו את מזהי ה-URI של ההפניה האוטומטית למזהי URI מורשים להפניה אוטומטית. מזהי URI של הפניות אוטומטיות כוללים את הסכמה, שם המארח המלא והנתיב, והם צריכים לעמוד בכללי האימות של URI של הפניה אוטומטית. לדוגמה, https://www.example.com/auth-receiver.

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

  1. פותחים את הדף מסך ההסכמה של OAuth בקטע 'APIs & Services' ב-Google Developer Console.
  2. אם מתבקשים, בוחרים את הפרויקט שיצרתם.
  3. בדף 'מסך הסכמה של OAuth', ממלאים את הטופס ולוחצים על הלחצן 'שמירה'.

    1. שם האפליקציה: השם של האפליקציה שמבקשת הסכמה. השם צריך לשקף במדויק את האפליקציה שלכם ולהיות תואם לשם האפליקציה שהמשתמשים רואים במקומות אחרים.

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

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

    4. היקפים עבור Google APIs: היקפי ההרשאות מאפשרים לאפליקציה לגשת לנתונים הפרטיים של המשתמשים. מספיק להשתמש בהיקף ברירת המחדל (אימייל, פרופיל, openid) לאימות, ולא צריך להוסיף היקפים רגישים. בדרך כלל מומלץ לבקש היקפים באופן מצטבר, כאשר נדרשת גישה, ולא מראש. מידע נוסף

    5. דומיינים מורשים: כדי להגן עליכם ועל המשתמשים שלכם, Google מאפשרת רק לאפליקציות שמבצעות אימות באמצעות OAuth להשתמש בדומיינים מורשים. הקישורים של האפליקציות שלכם חייבים להתארח בדומיינים מורשים. מידע נוסף

    6. קישור לדף הבית של האפליקציה: מוצג במסך ההסכמה של 'כניסה באמצעות חשבון Google' ופרטי כתב ויתור שתואמים ל-GDPR בהקשה אחת מתחת ללחצן 'המשך בתור'. חייב להתארח בדומיין מורשה.

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

    8. קישור לתנאים ולהגבלות של האפליקציה (אופציונלי): מוצג במסך ההסכמה לכניסה באמצעות Google, ופרטי כתב ויתור שתואמים ל-GDPR בהקשה אחת מופיעים מתחת ללחצן 'המשך בתור'. חייב להתארח בדומיין מורשה.

  4. מסמנים את התיבה 'סטטוס אימות'. אם הבקשה צריכה לעבור אימות, לוחצים על הלחצן 'Submit For Verification' (שליחה לאימות) כדי לשלוח את הבקשה לאימות. לפרטים נוספים, ראו דרישות לאימות OAuth.

הצגה של הגדרות OAuth במהלך הכניסה

הקשה אחת באמצעות FedCM

הגדרות ההסכמה ל-OAuth כפי שמוצגות על ידי Chrome One Tap באמצעות FedCM

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

הקשה אחת בלי FedCM

הגדרות ההסכמה ל-OAuth כפי שמוצגות בהקשה אחת

שם האפליקציה מוצג כאשר המשתמשים מסכימים.

איור 1. הגדרות ההסכמה ל-OAuth שמוצגות על ידי הקשה אחת ב-Chrome.

Content Security Policy

אפשר להשתמש במדיניות אבטחת תוכן (Content Security Policy) כדי להגן על האפליקציה ולמנוע התקפות של סקריפטים חוצי-אתרים (XSS). למידע נוסף, ראו מבוא ל-CSP ו-CSP ו-XSS.

מדיניות אבטחת התוכן עשויה לכלול הוראה אחת או יותר, כמו connect-src, frame-src, script-src, style-src או default-src.

אם ה-CSP כולל את:

  • connect-src, מוסיפים את הערך https://accounts.google.com/gsi/ כדי לאפשר לדף לטעון את כתובת ה-URL של ההורה עבור נקודות קצה בצד השרת של Google Identity Services.
  • frame-src, מוסיפים את https://accounts.google.com/gsi/ כדי לאפשר את כתובת ה-URL של ההורה ב-iframes של הלחצן 'הקשה אחת וכניסה באמצעות חשבון Google'.
  • script-src, מוסיפים את https://accounts.google.com/gsi/client כדי לאפשר את כתובת ה-URL של ספריית ה-JavaScript של Google Identity Services.
  • style-src, צריך להוסיף את הערך https://accounts.google.com/gsi/style כדי לאפשר את כתובת ה-URL של גיליונות הסגנונות של Google Identity Services.
  • בהוראת default-src, אם משתמשים בה, היא מהווה חלופה אם אחת מההנחיות הקודמות (connect-src, frame-src, script-src או style-src) לא מוגדרת, מוסיפים https://accounts.google.com/gsi/ כדי לאפשר לדף לטעון את כתובת ה-URL של ההורה עבור נקודות קצה בצד השרת של Google Identity Services.

לא כדאי לציין כתובות URL נפרדות מסוג GIS כשמשתמשים ב-connect-src. כך אפשר לצמצם כשלים בעדכון GIS. לדוגמה, במקום להוסיף https://accounts.google.com/gsi/status, צריך להשתמש בכתובת ה-URL של ההורה מסוג GIS https://accounts.google.com/gsi/.

כותרת התגובה לדוגמה הזו מאפשרת ל-Google Identity Services לטעון ולהפעיל אותם בהצלחה:

Content-Security-Policy-Report-Only: script-src
https://accounts.google.com/gsi/client; frame-src
https://accounts.google.com/gsi/; connect-src https://accounts.google.com/gsi/;

מדיניות פותחן ממקורות שונים

ייתכן שלחיצה על הלחצן 'כניסה באמצעות חשבון Google' והקשה על Google One יחייבו שינויים ב-Cross-Origin-Opener-Policy (COOP) כדי ליצור חלונות קופצים.

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

עם זאת, כאשר FedCM מושבת, מגדירים את כותרת ה-COOP:

  • אל same-origin ו
  • כולל same-origin-allow-popups.

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