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

מגדירים את הפרויקט והאפליקציה ב-Google Cloud: במהלך הפיתוח, רושמים את האפליקציה במסוף Google Cloud, ומגדירים היקפי הרשאה ופרטי גישה לאימות האפליקציה באמצעות מפתח API, פרטי כניסה של משתמש קצה או פרטי כניסה של חשבון שירות.
אימות האפליקציה לצורך גישה: כשהאפליקציה פועלת, המערכת בודקת את פרטי הגישה הרשומים. אם האפליקציה מאמתת את עצמה בתור משתמש קצה, יכול להיות שתוצג הנחיה לכניסה לחשבון.
בקשת משאבים: כשהאפליקציה צריכה גישה למשאבים של Google, היא שולחת בקשה ל-Google באמצעות היקפי הגישה הרלוונטיים שרשמתם קודם.
בקשת הסכמה מהמשתמש: אם האפליקציה עוברת אימות כמשתמש קצה, Google מציגה את מסך ההסכמה של OAuth כדי שהמשתמש יוכל להחליט אם להעניק לאפליקציה גישה לנתונים המבוקשים.
שליחת בקשה מאושרת למשאבים: אם המשתמש מסכים להיקפי הגישה, האפליקציה מאגדת את פרטי הכניסה ואת היקפי הגישה שאושרו על ידי המשתמש בבקשה אחת. הבקשה נשלחת לשרת ההרשאות של Google כדי לקבל אסימון גישה.
Google מחזירה אסימון גישה: אסימון הגישה מכיל רשימה של היקפי גישה שאושרו. אם רשימת ההיקפים שמוחזרת מצומצמת יותר מהיקפי הגישה המבוקשים, האפליקציה משביתה את כל התכונות שמוגבלות על ידי הטוקן.
גישה למשאבים המבוקשים: האפליקציה משתמשת באסימון הגישה מ-Google כדי להפעיל את ממשקי ה-API הרלוונטיים ולגשת למשאבים.
קבלת אסימון רענון (אופציונלי): אם האפליקציה שלכם צריכה גישה ל-Google API מעבר לתוחלת החיים של אסימון גישה יחיד, היא יכולה לקבל אסימון רענון.
בקשת משאבים נוספים: אם נדרשת גישה נוספת, האפליקציה מבקשת מהמשתמש להעניק היקפי גישה חדשים, וכתוצאה מכך נשלחת בקשה חדשה לקבלת אסימון גישה (שלבים 3 עד 6).
מונחים חשובים
בהמשך מופיעה רשימה של מונחים שקשורים לאימות ולהרשאות:
- אימות
הפעולה של וידוא שחשבון ראשי, שיכול להיות משתמש או אפליקציה שפועלת בשם משתמש, הוא מי שהוא אומר שהוא. כשכותבים אפליקציות ל-Google Workspace, חשוב להכיר את סוגי האימות הבאים:
- אימות משתמשים
- פעולת האימות (הכניסה) של משתמש באפליקציה. אימות משתמשים מתבצע בדרך כלל באמצעות תהליך כניסה שבו המשתמש משתמש בשם משתמש ובסיסמה כדי לאמת את הזהות שלו באפליקציה. אפשר לשלב אימות משתמשים באפליקציה באמצעות כניסה באמצעות חשבון Google.
- אימות אפליקציות
- פעולת האימות של אפליקציה ישירות לשירותי Google בשם המשתמש שמפעיל את האפליקציה. אימות אפליקציה מתבצע בדרך כלל באמצעות פרטי כניסה שנוצרו מראש בקוד של האפליקציה.
- הרשאה
ההרשאות או ה "סמכות" שיש לישות כדי לגשת לנתונים או לבצע פעולות. ההרשאה מתבצעת באמצעות קוד שכותבים באפליקציה. הקוד הזה מודיע למשתמש שהאפליקציה רוצה לפעול בשמו, ואם הוא מאשר, הקוד משתמש בפרטי הכניסה הייחודיים של האפליקציה כדי לקבל אסימון גישה מ-Google, שמשמש לגישה לנתונים או לביצוע פעולות.
- אישורים
סוג של זיהוי שמשמש באבטחת תוכנה. במונחים של אימות, פרטי כניסה הם לרוב שילוב של שם משתמש וסיסמה. במונחים של הרשאה ל-Google Workspace APIs, פרטי הכניסה הם בדרך כלל סוג של זיהוי, כמו מחרוזת סודית ייחודית, שמוכרת רק למפתח האפליקציה ולשרת האימות. Google תומכת בפרטי הכניסה הבאים לאימות: מפתח API, מזהה לקוח ב-OAuth 2.0 וחשבונות שירות.
- מפתח API
- האישורים שמשמשים לבקשת גישה לנתונים ציבוריים, כמו נתונים שסופקו באמצעות Maps API או קבצים של Google Workspace ששותפו באמצעות ההגדרה 'כל מי שיש לו את הקישור הזה באינטרנט' בהגדרות השיתוף של Google Workspace.
- מזהה לקוח ב-OAuth 2
- האישורים שמשמשים לבקשת גישה לנתונים שבבעלות המשתמש. אלה פרטי הכניסה העיקריים שמשמשים לבקשת גישה לנתונים באמצעות Google Workspace APIs. לשימוש באמצעי האימות הזה נדרשת הסכמת משתמש.
- סוד לקוח
- מחרוזת של תווים שרק האפליקציה ושרת ההרשאות צריכים לדעת. הסוד של הלקוח מגן על נתוני המשתמש בכך שהוא מאפשר רק למבקשים מורשים לקבל טוקנים. אסור לכלול באפליקציה את סוד הלקוח לא מוצפן. מומלץ לאחסן את סוד הלקוח בצורה מאובטחת. מידע נוסף זמין במאמר בנושא טיפול מאובטח בפרטי כניסה של לקוח.
- מפתחות לחשבונות שירות
- משמש חשבונות שירות כדי לקבל הרשאה לשירות Google.
- חשבון שירות
- פרטי כניסה שמשמשים לאינטראקציות בין שרתים, כמו אפליקציה ללא ממשק משתמש שפועלת כתהליך כדי לגשת לנתונים מסוימים או לבצע פעולה מסוימת. בדרך כלל משתמשים בחשבונות שירות כדי לגשת לנתונים ולפעולות מבוססי-ענן. עם זאת, כשמשתמשים בהם עם הענקת הרשאה ברמת הדומיין, אפשר להשתמש בהם כדי לגשת לנתוני משתמשים.
- היקף
מחרוזת URI של OAuth 2.0 שמגדירה רמת גישה למשאבים או לפעולות שניתנות לאפליקציה. ב-Google Workspace, כתובות ה-URI של היקפי ההרשאה מכילות את שם האפליקציה של Google Workspace, את סוג הנתונים שהיא ניגשת אליהם ואת רמת הגישה. משתמשי האפליקציה יכולים לבדוק את היקפי הגישה המבוקשים ולבחור אילו הרשאות לתת. לאחר מכן, שרת האימות של Google מחזיר לאפליקציה אסימון גישה עם היקפי הגישה המותרים. לפרטים נוספים, אפשר לעיין במאמר בנושא בחירת היקפי הרשאה לאפליקציה.
- שרת הרשאות
השרת של Google שמעניק גישה, באמצעות אסימון גישה, לנתונים ולפעולות שהאפליקציה מבקשת.
- קוד הרשאה
קוד שנשלח משרת ההרשאות ומשמש להשגת טוקן גישה. נדרש קוד רק אם סוג האפליקציה הוא אפליקציית שרת אינטרנט או אפליקציה מותקנת.
- טוקן גישה
טוקן שמעניק גישה ל-Google Workspace API. אסימון גישה יחיד יכול להעניק רמות שונות של גישה למספר ממשקי API, שנקראות היקפים. האפליקציה שלך מבקשת אסימוני גישה באמצעות קוד ההרשאה ומשתמשת בהם כדי להפעיל ממשקי Google Workspace API.
- שרת משאבים
השרת שמארח את ה-API שהאפליקציה רוצה לקרוא לו.
- המסגרת של OAuth 2.0
תקן שהאפליקציה יכולה להשתמש בו כדי לספק לה 'גישה מאובטחת בהרשאה' או גישה לנתונים ולפעולות בשם המשתמש של האפליקציה. מנגנוני האימות וההרשאה שבהם אתם משתמשים באפליקציה מייצגים את ההטמעה שלכם של מסגרת OAuth 2.0.
- חשבון משתמש
ישות, שנקראת גם זהות, שאפשר להעניק לה גישה למשאב. ממשקי Google Workspace API תומכים בשני סוגים של חשבונות משתמשים: חשבונות משתמשים וחשבונות שירות. פרטים נוספים זמינים במאמר בנושא סובייקטים.
- סוג הנתונים
בהקשר של אימות והרשאה, סוג הנתונים מתייחס לישות שבבעלותה הנתונים שהאפליקציה מנסה לגשת אליהם. יש שלושה סוגי נתונים:
- נתונים בנחלת הכלל
- נתונים שכל אחד יכול לגשת אליהם, כמו חלק מהנתונים במפות Google. בדרך כלל ניגשים לנתונים האלה באמצעות מפתח API.
- נתונים של משתמשי קצה
- נתונים ששייכים למשתמש קצה או לקבוצה ספציפיים, כמו קבצים ב-Google Drive של משתמש ספציפי. בדרך כלל ניגשים לסוג הנתונים הזה באמצעות מזהה לקוח OAuth 2 או חשבון שירות.
- נתונים בענן נתונים בבעלות של פרויקט ב-Google Cloud.
- בדרך כלל ניגשים לסוג הנתונים הזה באמצעות חשבון שירות.
- הסכמת משתמשים
שלב הרשאה שבו המשתמש באפליקציה שלכם נדרש לאשר לאפליקציה לגשת לנתונים ולבצע פעולות בשמו.
- סוג הבקשה
סוג האפליקציה שאתם רוצים ליצור. כשיוצרים פרטי כניסה באמצעות מסוף Google Cloud, צריך לבחור את סוג האפליקציה. סוגי האפליקציות הם: אפליקציית אינטרנט (JavaScript), Android, אפליקציית Chrome, iOS, טלוויזיות ומכשירי קלט מוגבל, אפליקציה למחשב (נקראת גם "אפליקציה מותקנת") ו-Universal Windows Platform (UWP).
- חשבון שירות
סוג מיוחד של חשבון Google שמייצג משתמש לא אנושי, שצריך לאמת ולאשר כדי לתת לו גישה לנתונים. האפליקציה מקבלת את הזהות של חשבון השירות כדי לשלוח קריאה ל-Google APIs, כך שהמשתמשים לא מעורבים באופן ישיר. כשלעצמם, אי אפשר להשתמש בחשבונות שירות כדי לגשת לנתוני משתמשים. בדרך כלל הגישה לנתונים מתבצעת באמצעות ממשקי API של Workspace. עם זאת, חשבון שירות יכול לגשת לנתונים של משתמשים באמצעות הטמעה של הענקת הרשאות גישה ברמת הדומיין. פרטים נוספים זמינים במאמר הסבר על חשבונות שירות.
- הענקת גישה ברמת הדומיין
תכונת ניהול שיכולה לתת לאפליקציה הרשאה לגשת לנתוני משתמשים בשם משתמשים בארגון Google Workspace. אפשר להשתמש בהענקת גישה ברמת הדומיין כדי לבצע משימות שקשורות לאדמין בנתוני משתמשים. כדי להעביר הרשאות בדרך הזו, אדמינים ב-Google Workspace משתמשים בחשבונות שירות עם OAuth 2.0. בגלל היכולות של התכונה הזו, רק סופר-אדמינים יכולים להפעיל הענקת הרשאות לכל הדומיין. פרטים נוספים זמינים במאמר בנושא הענקת הרשאה ברמת הדומיין לחשבון שירות.
השלב הבא
הגדרת מסך ההסכמה של OAuth באפליקציה כדי לוודא שהמשתמשים מבינים ומאשרים את הגישה של האפליקציה לנתונים שלהם.