בקטע הזה מוסבר איך לוודא שבקשות לנקודת הקצה של אפליקציות ל-Google Chat שנבנו על נקודות קצה של HTTP מגיעות מ-Chat.
כדי לשלוח אירועי אינטראקציה לנקודת הקצה של אפליקציית Chat, Google שולחת בקשות לשירות שלכם. כדי לוודא שהבקשה מגיעה מ-Google, Chat כולל אסימון bearer בכותרת Authorization של כל בקשת HTTPS לנקודת הקצה. לדוגמה:
POST
Host: yourappurl.com
Authorization: Bearer AbCdEf123456
Content-Type: application/json
User-Agent: Google-Dynamite
המחרוזת AbCdEf123456 בדוגמה הקודמת היא טוקן הרשאת הגישה. זהו טוקן קריפטוגרפי שנוצר על ידי Google. הסוג של טוקן ה-bearer והערך של השדה audience תלויים בסוג של קהל האימות שבחרתם כשהגדרתם את אפליקציית הצ'אט.
אם הטמעתם את אפליקציית Chat באמצעות פונקציות Cloud Run, מערכת Cloud IAM מטפלת באימות האסימון באופן אוטומטי. צריך להוסיף את חשבון השירות של Google Chat בתור חשבון מורשה להפעלת פונקציות. אם האפליקציה שלכם מטמיעה שרת HTTP משלה, אתם יכולים לאמת את אסימון ה-bearer באמצעות ספריית לקוח של Google API בקוד פתוח:
- Java: https://github.com/google/google-api-java-client
- Python: https://github.com/google/google-api-python-client
- Node.js: https://github.com/google/google-api-nodejs-client
- .NET: https://github.com/google/google-api-dotnet-client
אם אי אפשר לאמת את הטוקן באפליקציית Chat, השירות שלכם צריך להגיב לבקשה עם קוד תגובה מסוג HTTPS 401 (Unauthorized).
אימות בקשות באמצעות פונקציות Cloud Run
אם הלוגיקה של הפונקציה מיושמת באמצעות פונקציות Cloud Run, צריך לבחור באפשרות כתובת URL של נקודת קצה HTTP בשדה קהל היעד לאימות של הגדרת החיבור של אפליקציית Chat, ולוודא שכתובת ה-URL של נקודת הקצה HTTP בהגדרה תואמת לכתובת ה-URL של נקודת הקצה של פונקציית Cloud Run.
לאחר מכן, צריך לתת הרשאה לחשבון השירות של Google Chat chat@system.gserviceaccount.com בתור מפעיל באמצעות השלבים הבאים:
המסוף
אחרי שפורסים את הפונקציה או השירות ב-Google Cloud:
במסוף Google Cloud, עוברים לדף Cloud Run:
ברשימת שירותי Cloud Run, לוחצים על תיבת הסימון לצד הפונקציה המקבלת. (לא לוחצים על הפונקציה עצמה).
לוחצים על הרשאות בחלק העליון של המסך. נפתחת החלונית הרשאות.
לוחצים על Add principal.
בשדה New principals, מזינים
chat@system.gserviceaccount.com.בתפריט Select a role (בחירת תפקיד), בוחרים בתפקיד Cloud Run.
Cloud Run Invoker.
לוחצים על שמירה.
gcloud
משתמשים בפקודה gcloud functions add-invoker-policy-binding:
gcloud functions add-invoker-policy-binding RECEIVING_FUNCTION \
--member='serviceAccount:chat@system.gserviceaccount.com'מחליפים את RECEIVING_FUNCTION בשם הפונקציה של אפליקציית Chat.
אימות בקשות HTTP באמצעות אסימון מזהה
אם השדה 'קהל האימות' בהגדרת החיבור של אפליקציית Chat מוגדר לכתובת URL של נקודת קצה HTTP, אסימון ההרשאה מסוג bearer בבקשה הוא אסימון מזהה של OpenID Connect (OIDC) בחתימת Google.
השדה email מוגדר ל-chat@system.gserviceaccount.com. השדה Authentication Audience מוגדר לכתובת ה-URL שהגדרתם ב-Google Chat לשליחת בקשות לאפליקציית Chat. לדוגמה, אם נקודת הקצה שהוגדרה של אפליקציית Chat היא https://example.com/app/, אז השדה Authentication Audience בטוקן המזהה הוא https://example.com/app/.
זוהי שיטת האימות המומלצת אם נקודת הקצה של ה-HTTP לא מתארחת בשירות שתומך באימות מבוסס-IAM (כמו Cloud Run). בשיטה הזו, שירות ה-HTTP צריך מידע על כתובת ה-URL של נקודת הקצה שבה הוא פועל, אבל הוא לא צריך מידע על מספר פרויקט Cloud.
בדוגמאות הבאות מוסבר איך לוודא שאסימון ה-Bearer הונפק על ידי Google Chat ומיועד לאפליקציה שלכם באמצעות ספריית הלקוח של Google OAuth.
Java
Python
Node.js
אימות בקשות באמצעות JWT של מספר פרויקט
אם השדה 'קהל היעד לאימות' בהגדרות החיבור של אפליקציית Chat מוגדר לערך Project
Number, אסימון ההרשאה מסוג bearer בבקשה הוא אסימון אינטרנט מסוג JSON (JWT) בחתימה עצמית, שהונפק ונחתם על ידי chat@system.gserviceaccount.com.
השדה audience מוגדר למספר הפרויקט ב-Google Cloud שבו השתמשתם כדי ליצור את האפליקציה ל-Chat. לדוגמה, אם מספר הפרויקט ב-Cloud של האפליקציה ל-Chat הוא 1234567890, אז השדה audience ב-JWT הוא 1234567890.
מומלץ להשתמש בשיטת האימות הזו רק אם אתם מעדיפים להשתמש במספר פרויקט Cloud כדי לאמת בקשות במקום בכתובת ה-URL של נקודת הקצה של HTTP. לדוגמה, אם רוצים לשנות את כתובת ה-URL של נקודת הקצה לאורך זמן תוך שמירה על אותו מספר פרויקט ב-Cloud, או אם רוצים להשתמש באותה נקודת קצה למספר פרויקטים ב-Cloud ולהשוות את השדה audience לרשימה של מספרי פרויקטים ב-Cloud.
בדוגמאות הבאות מוצגות דרכים לאמת שאסימון ה-Bearer הונפק על ידי Google Chat ושהוא מיועד לפרויקט שלכם באמצעות ספריית לקוח Google OAuth.
Java
Python
Node.js
נושאים קשורים
- בסקירה הכללית על אימות והרשאה תוכלו ללמוד על תהליך האימות וההרשאה ב-Google Workspace.
- בסקירה הכללית על אימות תוכלו לקרוא על אימות והרשאה ב-Chat.
- מגדירים אימות והרשאה באמצעות פרטי כניסה של משתמש או חשבון שירות.