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