בקטע הזה נסביר איך לאמת שאפליקציות Google Chat שנוצרו על נקודות קצה מסוג HTTP מגיעות מ-Chat.
כדי לשלוח אירועי אינטראקציה לנקודת הקצה של אפליקציית Chat, Google שולחת בקשות לשירות שלכם. כדי לוודא שהבקשה מגיעה מ-Google, Chat כולל אסימון למוכ"ז בכותרת Authorization
של כל בקשת HTTPS לנקודת הקצה שלכם. לדוגמה:
POST
Host: yourappurl.com
Authorization: Bearer AbCdEf123456
Content-Type: application/json
User-Agent: Google-Dynamite
המחרוזת AbCdEf123456
בדוגמה הקודמת היא אסימון ההרשאה למוכ"ז. זהו אסימון קריפטוגרפי ש-Google מפיקה. הסוג של אסימון המזהה והערך של השדה audience
תלויים בסוג קהל האימות שבחרתם בזמן הגדרת אפליקציית Chat.
אם הטמעתם את אפליקציית Chat באמצעות Cloud Functions או Cloud Run, מערכת Cloud IAM מטפלת באימות האסימונים באופן אוטומטי. צריך רק להוסיף את חשבון השירות של Google Chat בתור משתמש מורשה. אם באפליקציה שלכם מוטמע שרת HTTP משלה, אפשר לאמת את האסימון למוכ"ז באמצעות ספריית לקוח של 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 Functions או Cloud Run
אם לוגיק הפונקציה מיושם באמצעות Cloud Functions או Cloud Run, צריך לבחור באפשרות כתובת URL של נקודת קצה מסוג HTTP בשדה Authentication Audience בהגדרת החיבור של אפליקציית Chat, ולוודא שכתובת ה-URL של נקודת הקצה מסוג HTTP בהגדרה תואמת לכתובת ה-URL של נקודת הקצה ב-Cloud Functions או ב-Cloud Run.
לאחר מכן, צריך לאשר את חשבון השירות של Google Chat [email protected]
כגורם מפעיל.
השלבים הבאים מראים איך להשתמש ב-Cloud Functions (דור ראשון):
המסוף
אחרי שפרסתם את הפונקציה ב-Google Cloud:
נכנסים לדף Cloud Functions במסוף Google Cloud:
ברשימה של Cloud Functions, לוחצים על תיבת הסימון שלצד הפונקציה המקבלת. (לא לוחצים על הפונקציה עצמה).
לוחצים על Permissions (הרשאות) בחלק העליון של המסך. נפתחת החלונית Permissions.
לוחצים על Add principal.
בשדה New principals, מזינים
[email protected]
.בתפריט הנפתח Select a role, בוחרים את התפקיד Cloud Functions > Cloud Functions Invoker.
לוחצים על שמירה.
gcloud
משתמשים בפקודה gcloud functions add-iam-policy-binding
:
gcloud functions add-iam-policy-binding RECEIVING_FUNCTION \
--member='serviceAccount:[email protected]' \
--role='roles/cloudfunctions.invoker'
מחליפים את RECEIVING_FUNCTION
בשם הפונקציה של אפליקציית Chat.
בשלבים הבאים מוסבר איך להשתמש בשירותי Cloud Functions (דור שני) או בשירותי Cloud Run:
המסוף
אחרי פריסת הפונקציה או השירות ב-Google Cloud:
נכנסים לדף Cloud Run במסוף Google Cloud:
ברשימת השירותים של Cloud Run, לוחצים על תיבת הסימון שליד הפונקציה המקבלת. (אין ללחוץ על הפונקציה עצמה).
לוחצים על Permissions (הרשאות) בחלק העליון של המסך. נפתחת החלונית Permissions.
לוחצים על Add principal.
בשדה New principals, מזינים
[email protected]
.בתפריט הנפתח 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:[email protected]'
מחליפים את RECEIVING_FUNCTION
בשם הפונקציה של אפליקציית Chat.
אימות בקשות HTTP באמצעות אסימון מזהה
אם השדה Authentication Audience בהגדרת החיבור של אפליקציית Chat מוגדר לכתובת ה-URL של נקודת הקצה מסוג HTTP, אסימון ההרשאה למוכ"ז בבקשה הוא אסימון מזהה של OpenID Connect בחתימה של Google (OIDC).
השדה email
מוגדר ל-[email protected]
.
השדה Authentication Audience מוגדר לכתובת ה-URL שהגדרתם ב-Google Chat לשליחת בקשות לאפליקציית Chat. לדוגמה, אם נקודת הקצה שמוגדרת באפליקציית Chat היא https://example.com/app/
, השדה Authentication Audience באסימון המזהה יהיה https://example.com/app/
.
בדוגמאות הבאות מוסבר איך לאמת באמצעות ספריית הלקוח של Google OAuth שאסימון למוכ"ז הונפק על ידי Google Chat וכי הוא מיועד לאפליקציה שלכם.
Java
Python
Node.js
אימות בקשות באמצעות JWT של מספר פרויקט
אם השדה Authentication Audience (קהל היעד לאימות) בהגדרת החיבור של אפליקציית Chat מוגדר כ-Project
Number
, אסימון ההרשאה למוכ"ז בבקשה הוא אסימון אינטרנט מסוג JSON (JWT) בחתימה עצמית, שהונפק ונחתם על ידי [email protected]
.
השדה audience
מוגדר למספר הפרויקט ב-Google Cloud שבו השתמשתם כדי ליצור את אפליקציית Chat. לדוגמה, אם מספר הפרויקט ב-Cloud של אפליקציית Chat הוא 1234567890
, השדה audience
ב-JWT יהיה 1234567890
.
הדוגמאות הבאות ממחישות איך לוודא שהאסימון למוכ"ז הונפק על ידי Google Chat ושהוא מטורגט לפרויקט שלכם באמצעות ספריית הלקוח של OAuth של Google.
Java
Python
Node.js
נושאים קשורים
- במאמר מידע על אימות והרשאה תוכלו לקרוא סקירה כללית על אימות והרשאה ב-Google Workspace.
- בסקירה הכללית על אימות תוכלו ללמוד על תהליך האימות וההרשאה ב-Chat.
- אפשר להגדיר אימות והרשאה באמצעות פרטי הכניסה של משתמש או באמצעות חשבון שירות.