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

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

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

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

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

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

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

אישורים

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

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

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

שרת הרשאות

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

קוד הרשאה

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

טוקן גישה

טוקן שמעניק גישה ל-API של Google Workspace. אסימון גישה יחיד יכול להעניק דרגות שונות של גישה למספר ממשקי 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 של Google Workspace. עם זאת, חשבון שירות יכול לגשת לנתוני משתמשים באמצעות הטמעה של העברת הרשאות ברמת הדומיין. פרטים נוספים זמינים במאמר הסבר על חשבונות שירות.

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

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

השלב הבא

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