بالنسبة إلى تطبيقات 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 مفتوحة المصدر:
- 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 في حقل جمهور المصادقة في إعدادات الاتصال لتطبيق Chat والتأكّد من أنّ عنوان URL لنقطة نهاية HTTP في الإعدادات يتطابق مع عنوان URL لنقطة نهاية Cloud Function أو Cloud Run.
بعد ذلك، عليك تفويض حساب خدمة Google Chat
chat@system.gserviceaccount.com
كمُستخدِم.
توضِّح الخطوات التالية كيفية استخدام Cloud Functions (الجيل الأول):
وحدة التحكّم
بعد نشر الدالة على Google Cloud:
في وحدة تحكّم Google Cloud، انتقِل إلى صفحة Cloud Functions:
في قائمة Cloud Functions، ضَع علامة في مربّع الاختيار بجانب الدوال التي تتلقّى الطلبات. (لا تنقر على الدالة نفسها).
انقر على الأذونات في أعلى الشاشة. تفتح لوحة الأذونات.
انقر على إضافة جهة أساسية.
في الحقل العناصر الرئيسية الجديدة، أدخِل
chat@system.gserviceaccount.com
.اختَر الدور 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:
في وحدة تحكّم Google Cloud، انتقِل إلى صفحة Cloud Run:
في قائمة خدمات Cloud Run، ضَع علامة في مربّع الاختيار بجانب دالّة الاستقبال. (لا تنقر على الدالة نفسها).
انقر على الأذونات في أعلى الشاشة. تفتح لوحة الأذونات.
انقر على إضافة جهة أساسية.
في الحقل العناصر الرئيسية الجديدة، أدخِل
chat@system.gserviceaccount.com
.اختَر الدور 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،
يكون رمز التفويض المميّز للحامل في الطلب هو رمز تعريف اتصال OpenID (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 Functions أو Cloud Run). باستخدام هذه الطريقة، تحتاج خدمة HTTP إلى معلومات عن عنوان URL لنقطة النهاية التي يتم تشغيلها فيها، ولكنّها لا تحتاج إلى معلومات عن رقم مشروع Cloud.
توضِّح العيّنات التالية كيفية التأكّد من أنّ الرمز المميّز لمستخدِم الحساب قد أصدرته Google Chat وكان موجهًا إلى تطبيقك باستخدام مكتبة عملاء Google OAuth.
Java
Python
Node.js
مصادقة الطلبات باستخدام رمز JWT لرقم المشروع
إذا تم ضبط حقل Authentication Audience (جمهور المصادقة) في إعدادات الاتصال لتطبيق Chat على Project
Number
، يكون رمز التفويض الممنوح لحامله في الطلب هو رمز JSON المميّز للويب (JWT) الموقَّع ذاتيًا، والذي أصدره ووقَّعه chat@system.gserviceaccount.com
.
يتم ضبط الحقل audience
على رقم مشروع Google Cloud الذي استخدمته
لإنشاء تطبيق Chat. على سبيل المثال، إذا كان
رقم مشروع Cloud لتطبيق Chat هو
1234567890
، سيكون الحقل audience
في JWT هو 1234567890
.
لا يُنصح باستخدام طريقة المصادقة هذه إلا إذا كنت تفضّل استخدام
رقم مشروع Cloud لإثبات صحة الطلبات بدلاً من عنوان URL لنقطة نهاية HTTP. على سبيل المثال، إذا كنت تريد تغيير عنوان URL للنقطة الطرفية بمرور الوقت مع
الاحتفاظ برقم مشروع Cloud نفسه، أو إذا كنت تريد استخدام النقطة الطرفية
نفسها لعدة أرقام مشاريع على Cloud وتريد مقارنة الحقل
audience
بقائمة أرقام مشاريع Cloud.
توضِّح العيّنات التالية كيفية التأكّد من أنّ الرمز المميّز لمستخدِم التذكرة قد أصدرته Google Chat وكان موجهًا إلى مشروعك باستخدام مكتبة عملاء Google OAuth.
Java
Python
Node.js
مواضيع ذات صلة
- للحصول على نظرة عامة على المصادقة والتفويض في Google Workspace، يُرجى قراءة مقالة التعرّف على المصادقة والتفويض.
- للحصول على نظرة عامة حول المصادقة والتفويض في Chat، يُرجى قراءة نظرة عامة على المصادقة.
- يمكنك إعداد المصادقة والتفويض باستخدام بيانات اعتماد المستخدم أو حساب خدمة.