Firebase के लिए, एपीआई पासकोड इस्तेमाल और मैनेज करने के बारे में जानें

एपीआई पासकोड एक यूनीक स्ट्रिंग होती है. इसका इस्तेमाल, Firebase और Google की सेवाओं के साथ इंटरैक्ट करते समय, आपके Firebase प्रोजेक्ट पर अनुरोधों को रूट करने के लिए किया जाता है. इस पेज पर, एपीआई पासकोड के बारे में बुनियादी जानकारी दी गई है. साथ ही, Firebase ऐप्लिकेशन के साथ एपीआई पासकोड इस्तेमाल करने और मैनेज करने के सबसे सही तरीके भी बताए गए हैं.

एपीआई पासकोड और Firebase के बारे में सामान्य जानकारी

Firebase के लिए एपीआई पासकोड, सामान्य एपीआई पासकोड से अलग होते हैं

आम तौर पर एपीआई पासकोड का इस्तेमाल करने के तरीके के उलट, Firebase सेवाओं के लिए एपीआई पासकोड का इस्तेमाल, बैकएंड संसाधनों के ऐक्सेस को कंट्रोल करने के लिए नहीं किया जाता. ऐसा सिर्फ़ Firebase Security Rules (यह कंट्रोल करने के लिए कि कौनसे असल उपयोगकर्ता संसाधनों को ऐक्सेस कर सकते हैं) और Firebase App Check (यह कंट्रोल करने के लिए कि कौनसे ऐप्लिकेशन संसाधनों को ऐक्सेस कर सकते हैं) की मदद से किया जा सकता है.

आम तौर पर, आपको एपीआई पासकोड को सुरक्षित रखने की ज़रूरत होती है. उदाहरण के लिए, वॉल्ट सेवा का इस्तेमाल करके या पासकोड को एनवायरमेंट वैरिएबल के तौर पर सेट करके. हालांकि, Firebase की सेवाओं के लिए एपीआई पासकोड को कोड या चेक इन की गई कॉन्फ़िगरेशन फ़ाइलों में शामिल किया जा सकता है.

Firebase की सेवाओं के लिए एपीआई कुंजियों को कोड में शामिल करना सुरक्षित है. हालांकि, आपको उनकी समीक्षा करके, उन पर सही पाबंदियां और सीमाएं लागू करनी चाहिए.

एपीआई पासकोड बनाना

किसी Firebase प्रोजेक्ट में कई एपीआई पासकोड हो सकते हैं. हालांकि, हर एपीआई पासकोड को सिर्फ़ एक Firebase प्रोजेक्ट से जोड़ा जा सकता है.

आपके Firebase ऐप्लिकेशन के लिए, Firebase के ज़रिए अपने-आप जनरेट हुई एपीआई कुंजियां

Firebase आपके प्रोजेक्ट के लिए एपीआई कुंजियां अपने-आप बनाता है, जब आप इनमें से कोई भी काम करते हैं:

  • Firebase प्रोजेक्ट बनाएं > Browser key अपने-आप बनने वाला
  • Firebase Apple ऐप्लिकेशन बनाएं > iOS key अपने-आप बना
  • Firebase Android ऐप्लिकेशन बनाएं > Android key अपने-आप जनरेट हुआ

Google Cloud कंसोल में भी अपनी एपीआई कुंजियां बनाई जा सकती हैं. उदाहरण के लिए, डेवलपमेंट या डीबग करने के लिए. इस पेज पर जाकर, इस बारे में ज़्यादा जानें कि यह सुविधा कब सुझाई जा सकती है.

अपनी एपीआई कुंजियां ढूंढना

Google Cloud कंसोल में, एपीआई और सेवाएं > क्रेडेंशियल पैनल में जाकर, अपने प्रोजेक्ट की सभी एपीआई पासकोड देखे और मैनेज किए जा सकते हैं.

यहां यह भी पता लगाया जा सकता है कि कौनसी एपीआई पासकोड, Firebase ऐप्लिकेशन से अपने-आप मैच हो जाता है. डिफ़ॉल्ट रूप से, एक ही प्लैटफ़ॉर्म (Apple बनाम Android बनाम वेब) के लिए, आपके प्रोजेक्ट के सभी Firebase ऐप्लिकेशन एक ही एपीआई पासकोड का इस्तेमाल करेंगे.

  • Firebase के Apple ऐप्लिकेशनAPI_KEY फ़ील्ड में, Firebase कॉन्फ़िगरेशन फ़ाइल, GoogleService-Info.plist में अपने-आप मैच होने वाली API कुंजी ढूंढें.

  • Firebase के Android ऐप्लिकेशनcurrent_key फ़ील्ड में, Firebase कॉन्फ़िगरेशन फ़ाइल, google-services.json में अपने-आप मैच होने वाली एपीआई पासकोड ढूंढें.

  • Firebase वेब ऐप्लिकेशनapiKey फ़ील्ड में, Firebase कॉन्फ़िगरेशन ऑब्जेक्ट में अपने-आप मैच होने वाली एपीआई पासकोड ढूंढें.

एपीआई पासकोड का इस्तेमाल करना

एपीआई पासकोड का इस्तेमाल, Firebase/Google की सेवाओं के साथ इंटरैक्ट करते समय, आपके Firebase प्रोजेक्ट की पहचान करने के लिए किया जाता है. खास तौर पर, इनका इस्तेमाल कोटा और बिलिंग के लिए, एपीआई अनुरोधों को आपके प्रोजेक्ट से जोड़ने के लिए किया जाता है. ये सार्वजनिक डेटा को ऐक्सेस करने के लिए भी काम के हैं.

उदाहरण के लिए, एपीआई पासकोड का साफ़ तौर पर इस्तेमाल करने के लिए, उसकी वैल्यू को क्वेरी पैरामीटर के तौर पर REST एपीआई कॉल में पास करें. इस उदाहरण में, Dynamic Links लिंक छोटा करने वाले एपीआई से अनुरोध करने का तरीका बताया गया है:

POST https://firebasedynamiclinks.googleapis.com/v1/shortLinks?key=API_KEY

जब आपका ऐप्लिकेशन किसी ऐसे Firebase API को कॉल करता है जिसके लिए मोबाइल/वेब क्लाइंट से दी गई एपीआई कुंजी की ज़रूरत होती है, तो आपका ऐप्लिकेशन आपके प्रोजेक्ट की एपीआई कुंजी के लिए, Firebase कॉन्फ़िगरेशन फ़ाइल/ऑब्जेक्ट में अपने-आप खोज करेगा. हालांकि, अपने ऐप्लिकेशन के लिए एपीआई पासकोड देने के लिए, किसी दूसरे तरीके का इस्तेमाल किया जा सकता है. जैसे, एनवायरमेंट वैरिएबल.

एपीआई पासकोड की समीक्षा करें और उन पर सही पाबंदियां लागू करें (इसका सुझाव दिया जाता है)

Firebase की सेवाओं के लिए एपीआई पासकोड को गुप्त रखने की ज़रूरत नहीं है. हालांकि, आपको इस सेक्शन में बताई गई पाबंदियों और सीमाओं की समीक्षा करनी चाहिए और उन्हें लागू करना चाहिए.

अपनी Firebase एपीआई कुंजियों के लिए, अनुमति वाली सूची में अपने-आप जुड़े एपीआई की समीक्षा करना

जब Firebase आपके प्रोजेक्ट में एपीआई पासकोड बनाता है, तो हम उस पासकोड में "एपीआई से जुड़ी पाबंदियां" अपने-आप जोड़ देते हैं. इस अनुमति वाली सूची में जोड़े गए एपीआई, Firebase से जुड़े एपीआई हैं. इनके लिए, क्लाइंट को कॉल के साथ एपीआई पासकोड देना ज़रूरी है. ध्यान दें कि Firebase की सेवाओं का इस्तेमाल करने के लिए ज़रूरी ज़्यादातर एपीआई को, आपकी एपीआई कुंजियों की अनुमति वाली सूची में शामिल करने की ज़रूरत नहीं होती.

Firebase, सभी Firebase सेवाओं के लिए ज़रूरी एपीआई जोड़ता है. इसलिए, किसी एपीआई पासकोड की अनुमति वाली सूची में ऐसे प्रॉडक्ट के एपीआई शामिल हो सकते हैं जिनका इस्तेमाल नहीं किया जाता. अनुमति वाली सूची से एपीआई हटाए जा सकते हैं. हालांकि, आपको बहुत सावधानी बरतनी होगी, ताकि Firebase और इस्तेमाल की जा रही Firebase सेवाओं के लिए ज़रूरी एपीआई न हटाएं. इसके लिए, Firebase से जुड़े उन एपीआई की सूची देखें जिन्हें हर सेवा / प्रॉडक्ट के लिए अनुमति वाली सूची में शामिल करना ज़रूरी है. ऐसा न करने पर, आपको Firebase की सेवाओं को कॉल करते समय गड़बड़ियां दिखेंगी.

पासवर्ड पर आधारित Authentication का इस्तेमाल करने पर, कोटा को कम करें

अगर पासवर्ड पर आधारित Firebase Authentication का इस्तेमाल किया जाता है और किसी व्यक्ति को आपकी एपीआई पासकोड मिल जाता है, तो वह आपके Firebase प्रोजेक्ट के किसी भी डेटाबेस या Cloud Storage डेटा को नहीं ऐक्सेस कर पाएगा. ऐसा तब तक होगा, जब तक यह डेटा Firebase Security Rules से सुरक्षित रहेगा. हालांकि, वे Firebase के पुष्टि करने वाले एंडपॉइंट को ऐक्सेस करने और आपके प्रोजेक्ट के लिए पुष्टि करने के अनुरोध करने के लिए, आपकी एपीआई पासकोड का इस्तेमाल कर सकते हैं.

किसी व्यक्ति के ब्रूट फ़ोर्स अटैक के लिए, एपीआई पासकोड का गलत इस्तेमाल करने की संभावना को कम करने के लिए, identitytoolkit.googleapis.com एंडपॉइंट के डिफ़ॉल्ट कोटा को कम किया जा सकता है. इससे, आपके ऐप्लिकेशन के सामान्य ट्रैफ़िक की उम्मीदों को दिखाया जा सकता है. ध्यान रखें कि अगर इस कोटे को कम किया जाता है और आपके ऐप्लिकेशन में अचानक उपयोगकर्ताओं की संख्या बढ़ जाती है, तो आपको साइन इन करने से जुड़ी गड़बड़ियां दिख सकती हैं. ऐसा तब तक होगा, जब तक कोटा नहीं बढ़ाया जाता. Google Cloud कंसोल में जाकर, अपने प्रोजेक्ट के एपीआई कोटा में बदलाव किया जा सकता है.

Firebase से बाहर की किसी भी सेवा के लिए, अलग-अलग और पाबंदी वाली एपीआई कुंजियों का इस्तेमाल करना

आम तौर पर, Firebase की सेवाओं के लिए इस्तेमाल की जाने वाली एपीआई कुंजियों को गुप्त नहीं माना जाता. हालांकि, आपको उन एपीआई कुंजियों के लिए कुछ अतिरिक्त सावधानियां बरतनी चाहिए जिन्हें Google Cloud के अन्य एपीआई के साथ इस्तेमाल किया जाता है.

अगर किसी ऐसे Google Cloud एपीआई (किसी भी प्लैटफ़ॉर्म पर) का इस्तेमाल किया जाता है जो Firebase सेवा / प्रॉडक्ट के लिए नहीं है, तो हमारा सुझाव है कि उन एपीआई के साथ इस्तेमाल करने के लिए, अलग-अलग और पाबंदी वाली एपीआई पासकोड बनाएं. यह खास तौर पर तब ज़रूरी है, जब एपीआई का इस्तेमाल, बिलिंग की सुविधा वाली Google Cloud सेवा के लिए किया जा रहा हो.

उदाहरण के लिए, अगर iOS पर Firebase ML और Cloud Vision API का इस्तेमाल किया जाता है, तो आपको अलग-अलग एपीआई पासकोड बनाने चाहिए. इनका इस्तेमाल सिर्फ़ Cloud Vision API को ऐक्सेस करने के लिए किया जाना चाहिए.

Firebase के अलावा अन्य एपीआई के लिए, पाबंदी वाली अलग-अलग एपीआई कुंजियों का इस्तेमाल करके, ज़रूरत पड़ने पर कुंजियों को घुमाया या बदला जा सकता है. साथ ही, Firebase की सेवाओं के इस्तेमाल में रुकावट डाले बिना, एपीआई कुंजियों पर और पाबंदियां जोड़ी जा सकती हैं.

एनवायरमेंट के हिसाब से एपीआई पासकोड का इस्तेमाल करें (इसका सुझाव दिया जाता है)

अगर आपने अलग-अलग एनवायरमेंट के लिए अलग-अलग Firebase प्रोजेक्ट सेट अप किए हैं, जैसे कि स्टेजिंग और प्रोडक्शन, तो यह ज़रूरी है कि हर ऐप्लिकेशन इंस्टेंस, अपने संबंधित Firebase प्रोजेक्ट के साथ इंटरैक्ट करे. उदाहरण के लिए, आपके स्टैजिंग ऐप्लिकेशन इंस्टेंस को कभी भी आपके प्रोडक्शन Firebase प्रोजेक्ट से बात नहीं करनी चाहिए. इसका यह भी मतलब है कि आपके स्टैगिंग ऐप्लिकेशन को, स्टैगिंग Firebase प्रोजेक्ट से जुड़ी एपीआई कुंजियों का इस्तेमाल करना होगा.

डेवलपमेंट से स्टैजिंग और फिर प्रोडक्शन में कोड में किए गए बदलावों को प्रोमोट करने से जुड़ी समस्याओं को कम करने के लिए, कोड में एपीआई कुंजियों को शामिल करने के बजाय, उन्हें एनवायरमेंट वैरिएबल के तौर पर सेट करें या उन्हें कॉन्फ़िगरेशन फ़ाइल में शामिल करें.

ध्यान दें कि अगर Firebase ML के साथ-साथ डेवलपमेंट के लिए Firebase Local Emulator Suite का इस्तेमाल किया जा रहा है, तो आपको सिर्फ़ डीबग के लिए एपीआई पासकोड बनाना होगा और उसका इस्तेमाल करना होगा. इस तरह की कुंजी बनाने के लिए निर्देश, Firebase ML दस्तावेज़ में दिए गए हैं.

अक्सर पूछे जाने वाले सवाल और समस्या हल करना

अक्सर पूछे जाने वाले सवाल

समस्या का हल