برای برنامههای گپ Google که بر روی نقاط پایانی HTTP ساخته شدهاند، این بخش نحوه تأیید اینکه درخواستها به نقطه پایانی شما از Chat میآیند را توضیح میدهد.
برای ارسال رویدادهای تعاملی به نقطه پایانی برنامه گپ، Google درخواستهایی را به سرویس شما ارسال میکند. برای تأیید اینکه درخواست از طرف Google ارسال میشود، Chat شامل یک نشانه حامل در سرصفحه Authorization
هر درخواست HTTPS به نقطه پایانی شما میشود. به عنوان مثال:
POST
Host: yourappurl.com
Authorization: Bearer AbCdEf123456
Content-Type: application/json
User-Agent: Google-Dynamite
رشته AbCdEf123456
در مثال قبل نشانه مجوز حامل است. این یک توکن رمزنگاری است که توسط گوگل تولید شده است. نوع رمز حامل و مقدار فیلد audience
به نوع مخاطب احراز هویتی که هنگام پیکربندی برنامه چت انتخاب کرده اید بستگی دارد.
اگر برنامه چت خود را با استفاده از Cloud Functions یا Cloud Run پیادهسازی کردهاید، Cloud IAM بهطور خودکار تأیید توکن را انجام میدهد. فقط باید حساب سرویس Google Chat را به عنوان یک فراخوان مجاز اضافه کنید. اگر برنامه شما سرور HTTP خود را پیادهسازی میکند، میتوانید توکن حامل خود را با استفاده از کتابخانه مشتری Google API منبع باز تأیید کنید:
- جاوا : https://github.com/google/google-api-java-client
- پایتون : https://github.com/google/google-api-python-client
- Node.js : https://github.com/google/google-api-nodejs-client
- دات نت : https://github.com/google/google-api-dotnet-client
اگر رمز برای برنامه چت تأیید نشد، سرویس شما باید با کد پاسخ HTTPS 401 (Unauthorized)
به درخواست پاسخ دهد.
درخواست ها را با استفاده از توابع Cloud یا Cloud Run تأیید کنید
اگر منطق عملکرد شما با استفاده از توابع Cloud یا Cloud Run پیاده سازی شده است، باید URL نقطه پایانی HTTP را در قسمت Authentication Audience تنظیمات اتصال برنامه Chat انتخاب کنید و مطمئن شوید که URL نقطه پایانی HTTP در پیکربندی با URL تابع Cloud مطابقت دارد یا نقطه پایانی Cloud Run
سپس، باید حساب سرویس Google Chat chat@system.gserviceaccount.com
را به عنوان یک فراخوان مجاز کنید.
مراحل زیر نحوه استفاده از توابع ابری (نسل اول) را نشان می دهد:
کنسول
پس از استقرار عملکرد خود در Google Cloud:
در کنسول Google Cloud، به صفحه Cloud Functions بروید:
در فهرست توابع ابری، روی کادر کنار تابع دریافت کلیک کنید. (روی خود تابع کلیک نکنید.)
روی Permissions در بالای صفحه کلیک کنید. پانل مجوزها باز می شود.
روی افزودن اصلی کلیک کنید.
در قسمت New principals ،
chat@system.gserviceaccount.com
را وارد کنید.نقش Cloud Functions > Cloud Functions Invoker را از منوی کشویی Select a role انتخاب کنید.
روی ذخیره کلیک کنید.
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
با نام عملکرد برنامه چت خود جایگزین کنید.
مراحل زیر نحوه استفاده از سرویسهای Cloud Function (نسل دوم) یا Cloud Run را نشان میدهد:
کنسول
پس از استقرار عملکرد یا سرویس خود در Google Cloud:
در کنسول Google Cloud، به صفحه Cloud Run بروید:
در لیست خدمات Cloud Run، روی کادر کنار تابع دریافت کلیک کنید. (روی خود تابع کلیک نکنید.)
روی Permissions در بالای صفحه کلیک کنید. پانل مجوزها باز می شود.
روی افزودن اصلی کلیک کنید.
در قسمت New principals ،
chat@system.gserviceaccount.com
را وارد کنید.نقش Cloud Run > Cloud Run Invoker را از منوی کشویی Select a role انتخاب کنید.
روی ذخیره کلیک کنید.
gcloud
از دستور gcloud functions add-invoker-policy-binding
استفاده کنید:
gcloud functions add-invoker-policy-binding RECEIVING_FUNCTION \
--member='serviceAccount:chat@system.gserviceaccount.com'
RECEIVING_FUNCTION
با نام عملکرد برنامه چت خود جایگزین کنید.
درخواست های HTTP را با شناسه شناسه احراز هویت کنید
اگر قسمت Authentication Audience تنظیمات اتصال برنامه گپ روی نشانی اینترنتی نقطه پایانی HTTP تنظیم شده باشد، نشانه مجوز حامل در درخواست، یک رمز شناسه OpenID Connect (OIDC) با امضای Google است. فیلد email
روی chat@system.gserviceaccount.com
تنظیم شده است. فیلد Authentication Audience روی نشانی اینترنتی است که Google Chat را برای ارسال درخواستها به برنامه چت خود پیکربندی کردهاید. به عنوان مثال، اگر نقطه پایانی پیکربندی شده برنامه چت شما https://example.com/app/
باشد، فیلد Authentication Audience در نشانه شناسه https://example.com/app/
است.
نمونههای زیر نشان میدهند که چگونه میتوان تأیید کرد که توکن حامل توسط Google Chat صادر شده و برنامه شما را با استفاده از کتابخانه سرویس گیرنده Google OAuth هدف قرار داده است.
جاوا
پایتون
Node.js
درخواستها را با شماره پروژه JWT تأیید کنید
اگر قسمت Authentication Audience در تنظیمات اتصال برنامه گپ روی Project Number
تنظیم شده باشد، نشانه مجوز حامل در درخواست، یک نشانه وب JSON (JWT) است که توسط chat@system.gserviceaccount.com
صادر و امضا شده است. فیلد audience
روی شماره پروژه Google Cloud که برای ساختن برنامه چت خود استفاده کردید تنظیم شده است. برای مثال، اگر شماره پروژه Cloud برنامه Chat شما 1234567890
باشد، فیلد audience
در JWT 1234567890
است.
نمونههای زیر نشان میدهند که چگونه میتوان تأیید کرد که توکن حامل توسط Google Chat صادر شده و پروژه شما را با استفاده از کتابخانه سرویس گیرنده Google OAuth هدف قرار داده است.
جاوا
پایتون
Node.js
موضوعات مرتبط
- برای یک نمای کلی از احراز هویت و مجوز در Google Workspace، به اطلاعاتی درباره احراز هویت و مجوز مراجعه کنید.
- برای مرور کلی احراز هویت و مجوز در چت، به نمای کلی احراز هویت مراجعه کنید.
- احراز هویت و مجوز را با اعتبار کاربری یا یک حساب سرویس تنظیم کنید.