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