הגדרה

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

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

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

  1. פותחים את הדף Credentials במסוף Google APIs.
  2. יוצרים או בוחרים פרויקט של Google APIs. אם כבר יש לכם פרויקט ללחצן 'כניסה באמצעות חשבון Google' או בהקשה על Google One, תוכלו להשתמש בפרויקט הקיים ובמזהה הלקוח באינטרנט. כשיוצרים אפליקציות בסביבת ייצור, ייתכן שיהיה צורך בכמה פרויקטים. צריך לחזור על השלבים שנותרו בחלק הזה בכל פרויקט שאתם מנהלים.
  3. לוחצים על Create credentials > OAuth client ID, ובקטע Application type בוחרים באפשרות Web application כדי ליצור מזהה לקוח חדש. כדי להשתמש במזהה לקוח קיים, בוחרים בסוג 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. בדף 'Consent screen', ממלאים את הטופס ולוחצים על הלחצן 'Save' (שמירה).

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

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

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

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

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

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

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

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

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

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

הקשה אחת

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

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

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

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

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

איור 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 של ההורה במסגרות ה-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.

לא כדאי לרשום כתובות 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/;

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

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

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

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

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

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