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

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

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

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

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

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

Firebase सेवाओं की एपीआई कुंजियों को कोड में शामिल करना सुरक्षित होता है. हालांकि, ऐसे कुछ खास मामले हैं जिनमें आपको अपने एपीआई पासकोड के लिए सीमाएं लागू करनी चाहिए. जैसे, अगर Firebase ML का इस्तेमाल किया जा रहा है, ईमेल/पासवर्ड में साइन-इन करने के तरीके से Firebase से पुष्टि करने की सुविधा या बिलिंग करने लायक Google Cloud API का इस्तेमाल किया जा रहा है. इस पेज पर बाद में, इन मामलों के बारे में ज़्यादा जानें.

एपीआई कुंजियां बनाई जा रही हैं

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

आपके Firebase ऐप्लिकेशन के लिए, Firebase की ओर से अपने-आप बनाई गई एपीआई कुंजियां

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

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

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

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

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

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

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

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

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

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

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

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

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

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

एपीआई कुंजियों पर पाबंदियां लागू करें (सुझाया गया)

हालांकि, Firebase सेवाओं के लिए किसी एपीआई पासकोड को सीक्रेट के तौर पर इस्तेमाल करना ज़रूरी नहीं है, फिर भी कुछ खास मामले (नीचे देखें) हैं. इनके लिए, आपको अपने प्रोजेक्ट को एपीआई पासकोड के गलत इस्तेमाल से बचाने के लिए अतिरिक्त कदम उठाने होंगे.

पासवर्ड-आधारित पुष्टि का इस्तेमाल करने पर कोटा सीमित करें

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

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

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

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

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

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

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

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

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

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

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

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

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

समस्या हल करना