הגדרה

לפני שמוסיפים 'כניסה באמצעות חשבון 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 (אפליקציית אינטרנט) כדי ליצור מזהה לקוח חדש. כדי להשתמש במזהה לקוח קיים, בוחרים אחד מהסוגים Web application.
  4. מוסיפים את ה-URI של האתר למקורות המורשים של JavaScript. ה-URI כולל רק את הסכימה ואת שם המארח המלא. לדוגמה, https://www.example.com.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

הקשה אחת ללא FedCM

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

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

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

Content Security Policy

מדיניות אבטחת תוכן היא אופציונלית, אבל מומלץ להשתמש בה כדי לאבטח את האפליקציה ולמנוע מתקפות XSS (Cross-Site Scripting). למידע נוסף, ראו מבוא ל-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 הראשית של מסגרות iframe של הלחצן 'הקשה אחת וכניסה באמצעות חשבון 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.

כשמשתמשים ב-connect-src, אין לכלול רשימה של כתובות URL בודדות של GIS. כך אפשר למזער כשלים כאשר 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.

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