एचटीटीपी एंडपॉइंट पर बनाए गए Google Chat ऐप्लिकेशन के लिए, इस सेक्शन में यह बताया गया है कि यह कैसे पुष्टि करें कि आपके एंडपॉइंट पर किए गए अनुरोध, Chat से किए गए हैं.
Google, आपके Chat ऐप्लिकेशन के एंडपॉइंट पर इंटरैक्शन इवेंट भेजने के लिए, आपकी सेवा से अनुरोध करता है. यह पुष्टि करने के लिए कि अनुरोध Google से आ रहा है, Chat आपके एंडपॉइंट को किए गए हर एचटीटीपीएस अनुरोध के Authorization हेडर में बेयरर टोकन शामिल करता है. उदाहरण के लिए:
POST
Host: yourappurl.com
Authorization: Bearer AbCdEf123456
Content-Type: application/json
User-Agent: Google-Dynamite
ऊपर दिए गए उदाहरण में, स्ट्रिंग AbCdEf123456, बियरर ऑथराइज़ेशन टोकन है. यह Google का बनाया हुआ क्रिप्टोग्राफ़िक टोकन है. बियरर टोकन का टाइप और audience फ़ील्ड की वैल्यू, इस बात पर निर्भर करती है कि आपने Chat ऐप्लिकेशन को कॉन्फ़िगर करते समय किस तरह के पुष्टि करने वाले दर्शक चुने थे.
अगर आपने Cloud Run फ़ंक्शन का इस्तेमाल करके Chat ऐप्लिकेशन को लागू किया है, तो Cloud IAM टोकन की पुष्टि अपने-आप करता है. आपको Google Chat के सेवा खाते को, अनुमति पा चुके इनवोकर के तौर पर जोड़ना होगा. अगर आपका ऐप्लिकेशन अपना एचटीटीपी सर्वर लागू करता है, तो ओपन सोर्स 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 ऐप्लिकेशन के लिए टोकन की पुष्टि नहीं होती है, तो आपकी सेवा को अनुरोध का जवाब एचटीटीपीएस रिस्पॉन्स कोड 401 (Unauthorized) के साथ देना चाहिए.
Cloud Run फ़ंक्शन का इस्तेमाल करके अनुरोधों की पुष्टि करना
अगर आपके फ़ंक्शन लॉजिक को Cloud Run फ़ंक्शन का इस्तेमाल करके लागू किया गया है, तो आपको Chat ऐप्लिकेशन की कनेक्शन सेटिंग के Authentication Audience फ़ील्ड में एचटीटीपी एंडपॉइंट यूआरएल चुनना होगा. साथ ही, यह पक्का करना होगा कि कॉन्फ़िगरेशन में मौजूद एचटीटीपी एंडपॉइंट यूआरएल, 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 ऐप्लिकेशन की कनेक्शन सेटिंग में, Authentication Audience फ़ील्ड को HTTP एंडपॉइंट यूआरएल पर सेट किया गया है, तो अनुरोध में मौजूद Bearer Authorization Token, Google के हस्ताक्षर वाला OpenID Connect (OIDC) आईडी टोकन होता है.
email फ़ील्ड को chat@system.gserviceaccount.com पर सेट किया गया है. Authentication Audience फ़ील्ड को उस यूआरएल पर सेट किया जाता है जिसे आपने Google Chat को अपने Chat ऐप्लिकेशन पर अनुरोध भेजने के लिए कॉन्फ़िगर किया है. उदाहरण के लिए, अगर आपके Chat ऐप्लिकेशन का कॉन्फ़िगर किया गया एंडपॉइंट https://example.com/app/ है, तो आईडी टोकन में Authentication Audience फ़ील्ड https://example.com/app/ होगा.
अगर आपका एचटीटीपी एंडपॉइंट, IAM पर आधारित पुष्टि करने की सुविधा देने वाली सेवा (जैसे कि Cloud Run) पर होस्ट नहीं किया गया है, तो पुष्टि करने के इस तरीके का इस्तेमाल करने का सुझाव दिया जाता है. इस तरीके का इस्तेमाल करने पर, आपकी एचटीटीपी सेवा को उस एंडपॉइंट के यूआरएल की जानकारी चाहिए जहां वह चल रही है. हालांकि, उसे Cloud प्रोजेक्ट नंबर की जानकारी की ज़रूरत नहीं होती.
यहां दिए गए उदाहरणों में, यह पुष्टि करने का तरीका बताया गया है कि Google Chat ने ही बियरर टोकन जारी किया है. साथ ही, Google OAuth क्लाइंट लाइब्रेरी का इस्तेमाल करके, यह पुष्टि करने का तरीका बताया गया है कि यह टोकन आपके ऐप्लिकेशन के लिए है.
Java
Python
Node.js
प्रोजेक्ट नंबर वाले JWT की मदद से अनुरोधों की पुष्टि करना
अगर चैट ऐप्लिकेशन की कनेक्शन सेटिंग में, पुष्टि करने वाले ऑडियंस फ़ील्ड को Project
Number पर सेट किया गया है, तो अनुरोध में मौजूद बियरर ऑथराइज़ेशन टोकन, chat@system.gserviceaccount.com के ज़रिए जारी किया गया और हस्ताक्षर किया गया, खुद से हस्ताक्षर किया गया JSON Web Token (JWT) होता है.
audience फ़ील्ड को उस Google Cloud प्रोजेक्ट नंबर पर सेट किया जाता है जिसका इस्तेमाल आपने Chat ऐप्लिकेशन बनाने के लिए किया था. उदाहरण के लिए, अगर आपके Chat ऐप्लिकेशन का Cloud प्रोजेक्ट नंबर 1234567890 है, तो JWT में audience फ़ील्ड 1234567890 होगा.
पुष्टि करने के इस तरीके का इस्तेमाल सिर्फ़ तब करें, जब आपको एचटीटीपी एंडपॉइंट यूआरएल के बजाय, Cloud प्रोजेक्ट नंबर का इस्तेमाल करके अनुरोधों की पुष्टि करनी हो. उदाहरण के लिए, अगर आपको समय के साथ एंडपॉइंट यूआरएल बदलना है, लेकिन Cloud प्रोजेक्ट नंबर को एक ही रखना है. इसके अलावा, अगर आपको कई Cloud प्रोजेक्ट नंबर के लिए एक ही एंडपॉइंट का इस्तेमाल करना है और audience फ़ील्ड की तुलना Cloud प्रोजेक्ट नंबर की सूची से करनी है.
नीचे दिए गए उदाहरणों में, यह पुष्टि करने का तरीका बताया गया है कि Google Chat ने बेयरर टोकन जारी किया है और Google OAuth क्लाइंट लाइब्रेरी का इस्तेमाल करके, उसे आपके प्रोजेक्ट के लिए टारगेट किया गया है.
Java
Python
Node.js
मिलते-जुलते विषय
- Google Workspace में पुष्टि करने और अनुमति देने की प्रोसेस के बारे में खास जानकारी पाने के लिए, पुष्टि करने और अनुमति देने की प्रोसेस के बारे में जानें लेख पढ़ें.
- Chat में पुष्टि करने और अनुमति देने की खास जानकारी के लिए, पुष्टि करने की खास जानकारी देखें.
- उपयोगकर्ता के क्रेडेंशियल या सेवा खाते का इस्तेमाल करके, पुष्टि करने और अनुमति देने की सुविधा सेट अप करें.