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

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

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

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

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

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

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

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

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

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

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

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

जब 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 API का इस्तेमाल किया जाता है जो Firebase सेवा / प्रॉडक्ट के लिए नहीं है, तो हमारा सुझाव है कि उन एपीआई के साथ इस्तेमाल करने के लिए, अलग से एपीआई पासकोड बनाएं. साथ ही, उन पर पाबंदियां लगाएं. अगर एपीआई, बिलिंग वाली Google Cloud सेवा के लिए है, तो यह खास तौर पर ज़रूरी है.

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

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

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

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

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

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

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

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

समस्या का हल