כשמפתחים יוצרים תוכנה, היא בדרך כלל כוללת מודולים שפועלים בשרת אינטרנט, מודולים אחרים שפועלים בדפדפן ומודולים נוספים שפועלים כאפליקציות לנייד ב-Android או ב-iOS. גם המפתחים וגם האנשים שמשתמשים בתוכנה שלהם בדרך כלל חושבים על כל המודולים האלה כחלק מאפליקציה אחת.
ההטמעה של OAuth 2.0 של Google תומכת בתפיסה הזו של העולם. כדי להשתמש באחד מהשירותים שמבוססים על OAuth2.0, צריך להגדיר את התוכנה ב- Google API Console. יחידת הארגון ב- API Console היא 'פרויקט', שיכול להתאים לאפליקציה מרובת רכיבים. לכל פרויקט אפשר לספק פרטי מיתוג, וחובה לציין לאילו ממשקי API האפליקציה תקבל גישה. כל רכיב באפליקציה מרובת רכיבים מזוהה באמצעות מזהה לקוח, מחרוזת ייחודית שנוצרת ב- API Console.
יעדי הרשאה ברמת חשבון הלקוח
כשאפליקציה משתמשת ב-OAuth 2.0 להרשאה, היא פועלת בשם המשתמש כדי לבקש אסימון גישה של OAuth 2.0 לגישה למשאב, שהאפליקציה מזהה באמצעות מחרוזת אחת או יותר של היקפי הרשאות. בדרך כלל, המשתמש מתבקש לאשר את הגישה.
כשמשתמש מעניק לאפליקציה שלכם גישה להיקף מסוים, הוא רואה את מסך ההסכמה של המשתמש, שכולל את המיתוג של המוצר ברמת הפרויקט שהגדרתם ב- Google API Console. לכן, Google מחשיבה שאם משתמש העניק גישה להיקף מסוים לכל מזהה לקוח בפרויקט, ההענקה מצביעה על כך שהמשתמש בוטח באפליקציה כולה לגבי ההיקף הזה.
המשמעות היא שהמשתמש לא יתבקש לאשר גישה למשאב כלשהו יותר מפעם אחת לאותה אפליקציה לוגית, בכל פעם שרכיבי האפליקציה יכולים לעבור אימות באופן מהימן על ידי תשתית ההרשאות של Google, שכוללת כיום אפליקציות אינטרנט, אפליקציות ל-Android, אפליקציות ל-Chrome, אפליקציות ל-iOS, אפליקציות למחשב ומכשירים עם קלט מוגבל.
טוקנים של גישה בין לקוחות
יש כמה דרכים שבהן תוכנה יכולה לקבל אסימוני גישה מסוג OAuth 2.0, בהתאם לפלטפורמה שבה הקוד פועל. פרטים נוספים זמינים במאמר שימוש ב-OAuth 2.0 כדי לגשת אל Google APIs. בדרך כלל, כשמעניקים טוקן גישה נדרש אישור מהמשתמש.
למזלנו, תשתית ההרשאות של Google יכולה להשתמש במידע על אישורי משתמשים עבור מזהה לקוח בפרויקט נתון, כדי להעריך אם לאשר לאחרים גישה לאותו פרויקט.
המשמעות היא שאם אפליקציית Android מבקשת אסימון גישה להיקף מסוים, והמשתמש ששולח את הבקשה כבר אישר לאפליקציית אינטרנט באותו פרויקט את אותו היקף, המשתמש לא יתבקש לאשר שוב. הגישה הזו פועלת בשני הכיוונים: אם הוענקה גישה להיקף מסוים באפליקציית Android, לא תהיה דרישה חוזרת לגישה הזו מלקוח אחר באותו פרויקט, כמו אפליקציית אינטרנט.