بالنسبة إلى تطبيقات 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 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 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، انقر على مربّع الاختيار بجانب الدالة المستلِمة. (لا تنقر على الدالة نفسها).
انقر على الأذونات في أعلى الشاشة. يتم فتح لوحة الأذونات.
انقر على إضافة أساسي.
في حقل الأساسيون الجدد ، أدخِل
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 Connect
(OIDC)
الذي وقّعته Google.
تم ضبط حقل email على chat@system.gserviceaccount.com. تم ضبط حقل جمهور المصادقة على عنوان URL الذي ضبطته لكي يرسل Google Chat الطلبات إلى تطبيق Chat. على سبيل المثال، إذا كانت نقطة النهاية التي تم ضبطها لتطبيق Chat هي https://example.com/app/، يكون حقل جمهور المصادقة في رمز التعريف هو https://example.com/app/.
هذه هي طريقة المصادقة المقترَحة إذا لم تكن نقطة نهاية HTTP مستضافة على خدمة تتيح المصادقة المستندة إلى IAM (مثل Cloud Run). باستخدام هذه الطريقة، تحتاج خدمة HTTP إلى معلومات عن عنوان URL لنقطة النهاية التي يتم تشغيلها عليها، ولكنها لا تحتاج إلى معلومات عن رقم مشروع Cloud.
توضّح النماذج التالية كيفية التأكّد من أنّ الرمز المميّز للوصول صادر عن Google Chat وموجّه إلى تطبيقك باستخدام مكتبة عميل Google OAuth.
جافا
Python
Node.js
المصادقة على الطلبات باستخدام رمز JWT لرقم المشروع
إذا تم ضبط حقل "جمهور المصادقة" لإعداد اتصال تطبيق 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.
جافا
Python
Node.js
مواضيع ذات صلة
- للحصول على نظرة عامة على المصادقة والتفويض في Google Workspace، يُرجى الاطّلاع على التعرّف على المصادقة والتفويض.
- للحصول على نظرة عامة على المصادقة والتفويض في Chat، يُرجى الاطّلاع على نظرة عامة على المصادقة.
- إعداد المصادقة والتفويض باستخدام بيانات اعتماد المستخدم أو حساب خدمة.