App Identity API for legacy bundled services

מזהה אזור

REGION_ID הוא קוד מקוצר ש-Google מקצה על סמך האזור שבוחרים כשיוצרים את האפליקציה. הקוד לא תואם למדינה או למחוז, למרות שחלק ממזהי האזורים עשויים להיראות דומים לקודים נפוצים של מדינות ומחוזות. באפליקציות שנוצרו אחרי פברואר 2020, המחרוזת REGION_ID.r כלולה בכתובות ה-URL של App Engine. באפליקציות קיימות שנוצרו לפני התאריך הזה, מזהה האזור הוא אופציונלי בכתובת ה-URL.

מידע נוסף על מזהי אזורים

ממשק ה-API של זהות האפליקציה מאפשר לאפליקציה לגלות את מזהה האפליקציה שלה (שנקרא גם מזהה הפרויקט). באמצעות המזהה, אפליקציית App Engine יכולה לאמת את הזהות שלה באפליקציות אחרות של App Engine, ב-Google APIs ובאפליקציות ובשירותים של צד שלישי. אפשר גם להשתמש במזהה האפליקציה כדי ליצור כתובת URL או כתובת אימייל, או כדי לקבל החלטה בזמן ריצה.

איך מקבלים את מזהה הפרויקט

אפשר למצוא את מזהה הפרויקט באמצעות ה-method‏ app_identity.get_application_id() method. סביבת WSGI או CGI חושפת פרטים מסוימים על ההטמעה, שמטופלים על ידי ה-API.

איך מקבלים את שם המארח של האפליקציה

כברירת מחדל, אפליקציות ב-App Engine מוצגות מכתובות URL בצורה https://PROJECT_ID.REGION_ID.r.appspot.com, שבה מזהה הפרויקט הוא חלק משם המארח. אם אפליקציה מוגשת מדומיין מותאם אישית, יכול להיות שיהיה צורך לאחזר את כל רכיב שם המארח. אפשר לעשות את זה באמצעות המאפיין app_identity.get_default_version_hostname() method.

הצהרת זהות באפליקציות אחרות של App Engine

אם רוצים לקבוע את הזהות של אפליקציית App Engine ששולחת בקשה לאפליקציית App Engine, אפשר להשתמש בכותרת הבקשה X-Appengine-Inbound-Appid. הכותרת הזו מתווספת לבקשה על ידי שירות URLFetch, ואי אפשר לשנות אותה. לכן, היא מציינת בצורה בטוחה את מזהה הפרויקט של האפליקציה ששולחת את הבקשה, אם הוא קיים.

דרישות:

  • רק שיחות שמתבצעות לדומיין appspot.com של האפליקציה יכללו את הכותרת X-Appengine-Inbound-Appid. שיחות לדומיינים מותאמים אישית לא מכילות את הכותרת.

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

    מגדירים את הפרמטר urlfetch.fetch() follow_redirects לערך False.

במטפל הבקשות של האפליקציה, אפשר לבדוק את המזהה הנכנס על ידי קריאת הכותרת X-Appengine-Inbound-Appid והשוואה שלה לרשימה של מזהים שמורשים לשלוח בקשות.

הצהרת זהות ל-Google APIs

ממשקי Google API משתמשים בפרוטוקול OAuth 2.0 לצורך אימות ומתן הרשאות. ה-App Identity API יכול ליצור טוקנים של OAuth שאפשר להשתמש בהם כדי לקבוע שמקור הבקשה הוא האפליקציה עצמה. ה-method‏ ה-method‏ get_access_token() ה-method‏ מחזירה אסימון גישה להיקף או לרשימה של היקפים. אחר כך אפשר להגדיר את האסימון הזה בכותרות ה-HTTP של שיחה כדי לזהות את האפליקציה שמבצעת את השיחה.

שימו לב שהזהות של האפליקציה מיוצגת על ידי שם חשבון השירות, שבדרך כלל הוא applicationid@appspot.gserviceaccount.com. אפשר לקבל את הערך המדויק באמצעות ה-method‏ get_service_account_name() או ה-method‏. בשירותים שמציעים רשימות ACL, אפשר לתת לאפליקציה גישה על ידי מתן גישה לחשבון הזה.

אימות הזהות בשירותים של צד שלישי

האסימון שנוצר על ידי השיטה השיטה get_access_token() פועל רק בשירותי Google.getAccessToken() עם זאת, אפשר להשתמש בטכנולוגיית החתימה הבסיסית כדי לאמת את הזהות של האפליקציה שלכם בשירותים אחרים. השיטה sign_blob() השיטה תחתום על בייטים באמצעות מפתח פרטי ייחודי לאפליקציה שלכם, והשיטה השיטה get_public_certificates() תחזיר אישורים שאפשר להשתמש בהם כדי לאמת את החתימה.

איך מאחזרים את שם הקטגוריה של Cloud Storage שמוגדר כברירת מחדל

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

כדי לקבל את השם של הקטגוריה שמוגדרת כברירת מחדל, אפשר להשתמש ב-App Identity API. Call google.appengine.api.app_identity.app_identity.get_default_gcs_bucket_name .