מידע על אימות והרשאה

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

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

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

סקירה כללית של התהליך

הדיאגרמה הבאה מציגה את השלבים העיקריים של אימות והרשאה לממשקי API של Google Workspace:

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

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

  3. בקשת משאבים: כשהאפליקציה צריכה גישה למשאבי Google, היא שולחת בקשה ל-Google באמצעות היקפי הגישה הרלוונטיים שרשמתם קודם.

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

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

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

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

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

  9. בקשת משאבים נוספים: אם נדרשת גישה נוספת, האפליקציה מבקשת מהמשתמש להעניק היקפי גישה חדשים, וכתוצאה מכך נשלחת בקשה חדשה לקבלת אסימון גישה (שלבים 3 עד 6).

מונחים חשובים

הרשימה הבאה מפרטת מונחים שקשורים לאימות ולהרשאה:

אימות

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

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

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

הסמכה

סוג של אמצעי זיהוי שמשמש באבטחת תוכנה. במונחים של אימות, פרטי כניסה הם לרוב שילוב של שם משתמש וסיסמה. במונחים של הרשאה לממשקי API של Google Workspace, פרטי הכניסה הם בדרך כלל סוג של זיהוי, כמו מחרוזת סודית ייחודית, שמוכרת רק למפַתח האפליקציות ולשרת האימות (AS). ‫Google תומכת בפרטי הכניסה הבאים לאימות: מפתח API, מזהה לקוח OAuth 2.0 וחשבונות שירות.

מפתח API
פרטי הכניסה שמשמשים לבקשת גישה לנתונים ציבוריים, כמו נתונים שסופקו באמצעות Maps API. אפשר לגשת גם לקבצים ציבוריים ב-Google Workspace ששותפו באמצעות ההגדרה 'כל מי שיש לו את הקישור הזה באינטרנט', אבל לרוב הנתונים ב-Google Workspace נדרש OAuth 2.0.
מזהה לקוח ב-OAuth 2
האישורים שמשמשים לבקשת גישה לנתונים שבבעלות המשתמש. אלה פרטי הכניסה העיקריים שמשמשים לבקשת גישה לנתונים באמצעות ממשקי API של Google Workspace. לשימוש באמצעי האימות הזה נדרשת הסכמת משתמש.
סוד לקוח
מחרוזת של תווים שרק האפליקציה ושרת ההרשאות צריכים לדעת. סוד הלקוח מגן על נתוני המשתמש בכך שהוא מאפשר רק למבקשים מורשים לקבל טוקנים. אסור לכלול באפליקציה את סוד הלקוח לא מוצפן. מומלץ לאחסן את סוד הלקוח בצורה מאובטחת. מידע נוסף זמין במאמר בנושא טיפול מאובטח בפרטי כניסה של לקוח.
מפתחות לחשבונות שירות
משמש חשבונות שירות כדי לקבל הרשאה לשירות Google.
חשבון שירות
אמצעי אימות שמשמש לאינטראקציות בין שרתים, כמו אפליקציה ללא ממשק משתמש שפועלת כתהליך כדי לגשת לנתונים או לבצע פעולות. בדרך כלל משתמשים בחשבונות שירות כדי לגשת לנתונים ולפעולות מבוססי-ענן. עם זאת, כשמשתמשים בהם עם הענקת גישה ברמת הדומיין, אפשר להשתמש בהם כדי לגשת לנתוני משתמשים.
היקף

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

שרת הרשאות

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

קוד הרשאה

קוד שנשלח משרת ההרשאות ומשמש לקבלת טוקן גישה. קוד נדרש רק אם סוג האפליקציה הוא אפליקציית שרת אינטרנט או אפליקציה מותקנת.

טוקן גישה

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

שרת משאבים

השרת שמארח את ה-API שהאפליקציה רוצה לקרוא לו.

המסגרת של OAuth 2.0

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

חשבון משתמש

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

סוג הנתונים

בהקשר של אימות והרשאה, סוג הנתונים מתייחס לישות שבבעלותה הנתונים שהאפליקציה מנסה לגשת אליהם. יש שלושה סוגי נתונים:

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

שלב הרשאה שבו המשתמש באפליקציה נדרש לאשר לאפליקציה לגשת לנתונים ולבצע פעולות בשמו.

סוג הבקשה

סוג האפליקציה שאתם רוצים ליצור. כשיוצרים פרטי כניסה באמצעות מסוף Google Cloud, צריך לבחור את סוג האפליקציה. סוגי האפליקציות כוללים: אפליקציית אינטרנט (JavaScript),‏ Android,‏ אפליקציית Chrome,‏ iOS,‏ מכשירי טלוויזיה ומכשירי קלט מוגבל, אפליקציה למחשב (שנקראת גם "אפליקציה מותקנת") ו-Universal Windows Platform‏ (UWP).

חשבון שירות

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

הענקת גישה ברמת הדומיין

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

השלב הבא

הגדרת מסך ההסכמה ל-OAuth באפליקציה כדי לוודא שהמשתמשים מבינים ומאשרים את הגישה של האפליקציה לנתונים שלהם.