באפליקציות של 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
בדוגמה שלמעלה היא ההרשאה למוכ"ז
ב-Assistant. זהו אסימון קריפטוגרפי ש-Google מפיקה. סוג הגורם האחראי
ואת הערך של
audience
השדה תלוי בסוג קהל האימות שבחרתם
איך מגדירים את אפליקציית Chat.
אם הטמעתם את אפליקציית Chat באמצעות Cloud פונקציות או Cloud Run, Cloud IAM מטפל באימות אסימונים באופן אוטומטי. שלך צריך רק להוסיף את חשבון השירות של Google Chat כ-invoker מורשה. אם האפליקציה מטמיעה שרת 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
chat@system.gserviceaccount.com
כגורם מפעיל.
בשלבים הבאים מוסבר איך להשתמש ב-Cloud Functions (דור ראשון):
המסוף
אחרי פריסת הפונקציה ב-Google Cloud:
במסוף Google Cloud, נכנסים לדף Cloud Functions:
ברשימה Cloud Functions, לוחצים על תיבת הסימון שליד מותאמת אישית. (לא לוחצים על הפונקציה עצמה).
לוחצים על הרשאות בחלק העליון של המסך. החלונית Permissions נפתח.
לוחצים על Add principal.
בשדה New principals, מזינים
chat@system.gserviceaccount.com
.בתפריט הנפתח 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:chat@system.gserviceaccount.com' \
--role='roles/cloudfunctions.invoker'
מחליפים את RECEIVING_FUNCTION
בשם שלכם
הפונקציה של אפליקציית Chat.
השלבים הבאים מסבירים איך להשתמש בשירותי Cloud Functions (דור שני) או Cloud Run:
המסוף
אחרי שפרסתם את הפונקציה או השירות ב-Google Cloud:
נכנסים לדף Cloud Run במסוף Google Cloud:
ברשימת שירותי Cloud Run, לוחצים על תיבת הסימון שליד מותאמת אישית. (לא לוחצים על הפונקציה עצמה).
לוחצים על הרשאות בחלק העליון של המסך. החלונית Permissions נפתח.
לוחצים על Add principal.
בשדה New principals, מזינים
chat@system.gserviceaccount.com
.בוחרים את התפקיד Cloud Run > Cloud Run Invoker מ- בתפריט הנפתח Select a rol.
לוחצים על שמירה.
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),
אסימון ההרשאה למוכ"ז בבקשה הוא OpenID Connect בחתימה של Google
(OIDC) אסימון מזהה.
השדה email
מוגדר ל-chat@system.gserviceaccount.com
.
השדה 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 של מספר פרויקט
אם השדה 'קהל לאימות' באפליקציית Chat
הגדרת החיבור מוגדרת ל-Project
Number
, אסימון ההרשאה למוכ"ז בבקשה הוא בחתימה עצמית
אסימון אינטרנט מסוג JSON (JWT),
הונפק ונחתם על ידי chat@system.gserviceaccount.com
.
השדה audience
מוגדר למספר הפרויקט ב-Google Cloud שבו השתמשתם
כדי לפתח את אפליקציית Chat. לדוגמה, אם
מספר הפרויקט ב-Cloud של אפליקציית Chat הוא
1234567890
, השדה audience
ב-JWT הוא 1234567890
.
הדוגמאות הבאות מראות איך לאמת שאסימון למוכ"ז הונפק על ידי Google Chat וטירגוט הפרויקט שלך באמצעות ספריית הלקוח של OAuth של Google.
Java
Python
Node.js
נושאים קשורים
- לסקירה כללית של אימות והרשאה ב-Google Workspace: לראות מידע נוסף על אימות והרשאה
- לסקירה כללית של תהליך האימות וההרשאה ב-Chat: לראות סקירה כללית על אימות
- הגדרת אימות והרשאה באמצעות פרטי הכניסה של המשתמש או חשבון שירות.