फायरबेस के लिए एपीआई कुंजियों के उपयोग और प्रबंधन के बारे में जानें

एपीआई कुंजी एक अद्वितीय स्ट्रिंग है जिसका उपयोग फ़ायरबेस और Google सेवाओं के साथ इंटरैक्ट करते समय आपके फ़ायरबेस प्रोजेक्ट में अनुरोधों को रूट करने के लिए किया जाता है। यह पृष्ठ एपीआई कुंजियों के बारे में बुनियादी जानकारी के साथ-साथ फायरबेस ऐप्स के साथ एपीआई कुंजियों के उपयोग और प्रबंधन के लिए सर्वोत्तम प्रथाओं का वर्णन करता है।

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

फायरबेस के लिए एपीआई कुंजियाँ सामान्य एपीआई कुंजियों से भिन्न होती हैं

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

आमतौर पर, आपको एपीआई कुंजियों की सावधानीपूर्वक सुरक्षा करने की आवश्यकता होती है (उदाहरण के लिए, वॉल्ट सेवा का उपयोग करके या कुंजियों को पर्यावरण चर के रूप में सेट करके); हालाँकि, फायरबेस सेवाओं के लिए एपीआई कुंजियाँ कोड या चेक-इन कॉन्फ़िगरेशन फ़ाइलों में शामिल करना ठीक है।

हालाँकि फायरबेस सेवाओं के लिए एपीआई कुंजियाँ कोड में शामिल करने के लिए सुरक्षित हैं, फिर भी कुछ विशिष्ट मामले हैं जब आपको अपनी एपीआई कुंजी के लिए सीमाएं लागू करनी चाहिए; उदाहरण के लिए, यदि आप फायरबेस एमएल, ईमेल/पासवर्ड साइन-इन विधि के साथ फायरबेस प्रमाणीकरण, या बिल योग्य Google क्लाउड एपीआई का उपयोग कर रहे हैं। इस पृष्ठ पर बाद में इन मामलों के बारे में और जानें।

एपीआई कुंजियाँ बनाना

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

आपके फ़ायरबेस ऐप्स के लिए फ़ायरबेस द्वारा स्वचालित रूप से बनाई गई एपीआई कुंजियाँ

जब आप निम्न में से कोई भी कार्य करते हैं तो फायरबेस स्वचालित रूप से आपके प्रोजेक्ट के लिए एपीआई कुंजी बनाता है:

  • एक फायरबेस प्रोजेक्ट बनाएं > Browser key स्वतः निर्मित
  • एक फ़ायरबेस ऐप्पल ऐप बनाएं > iOS key स्वतः निर्मित
  • एक फ़ायरबेस एंड्रॉइड ऐप बनाएं > Android key स्वतः निर्मित

आप Google क्लाउड कंसोल में अपनी स्वयं की API कुंजियाँ भी बना सकते हैं, उदाहरण के लिए विकास या डिबगिंग के लिए । इस पृष्ठ पर बाद में इसकी अनुशंसा कब की जा सकती है, इसके बारे में और जानें।

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

आप Google क्लाउड कंसोल में API और सेवाएँ > क्रेडेंशियल पैनल में अपने सभी प्रोजेक्ट की API कुंजियाँ देख और प्रबंधित कर सकते हैं।

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

  • फायरबेस ऐप्पल ऐप्स - एपीआई_KEY फ़ील्ड में फायरबेस कॉन्फ़िगरेशन फ़ाइल, GoogleService-Info.plist API_KEY ऐप की ऑटो-मैचेड एपीआई कुंजी ढूंढें।

  • फायरबेस एंड्रॉइड ऐप्स - फायरबेस कॉन्फ़िगरेशन फ़ाइल, google-services.json , current_key फ़ील्ड में ऐप की ऑटो-मैचेड एपीआई कुंजी ढूंढें।

  • फायरबेस वेब ऐप्स - apiKey फ़ील्ड में फायरबेस कॉन्फिग ऑब्जेक्ट में ऐप की ऑटो-मैचेड एपीआई कुंजी ढूंढें।

एपीआई कुंजी का उपयोग करना

फ़ायरबेस/Google सेवाओं के साथ इंटरैक्ट करते समय आपके फ़ायरबेस प्रोजेक्ट की पहचान करने के लिए एपीआई कुंजियों का उपयोग किया जाता है। विशेष रूप से, उनका उपयोग कोटा और बिलिंग के लिए एपीआई अनुरोधों को आपके प्रोजेक्ट के साथ जोड़ने के लिए किया जाता है। वे सार्वजनिक डेटा तक पहुँचने के लिए भी उपयोगी हैं।

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

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

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

एपीआई कुंजियों पर प्रतिबंध लागू करें (अनुशंसित)

हालाँकि फायरबेस सेवाओं के लिए एपीआई कुंजी को गुप्त मानना ​​आवश्यक नहीं है, लेकिन कुछ विशिष्ट मामले हैं (नीचे देखें) जिनमें आप अपने प्रोजेक्ट को एपीआई कुंजी के दुरुपयोग से बचाने के लिए अतिरिक्त उपाय करना चाह सकते हैं।

यदि आप पासवर्ड-आधारित प्रमाणीकरण का उपयोग करते हैं तो कोटा सख्त करें

यदि आप पासवर्ड-आधारित फायरबेस प्रमाणीकरण का उपयोग करते हैं और किसी को आपकी एपीआई कुंजी मिल जाती है, तो वे आपके फायरबेस प्रोजेक्ट के किसी भी डेटाबेस या क्लाउड स्टोरेज डेटा तक नहीं पहुंच पाएंगे , जब तक कि यह डेटा फायरबेस सुरक्षा नियमों द्वारा संरक्षित है । हालाँकि, वे फायरबेस के प्रमाणीकरण समापन बिंदुओं तक पहुँचने और आपके प्रोजेक्ट के विरुद्ध प्रमाणीकरण अनुरोध करने के लिए आपकी एपीआई कुंजी का उपयोग कर सकते हैं।

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

विशिष्ट प्रकार के एपीआई के लिए अलग, प्रतिबंधित एपीआई कुंजियों का उपयोग करें

हालाँकि फायरबेस सेवाओं के लिए उपयोग की जाने वाली एपीआई कुंजियों को आम तौर पर गुप्त मानने की आवश्यकता नहीं होती है, आपको Google क्लाउड एपीआई तक पहुंच प्रदान करने के लिए उपयोग की जाने वाली एपीआई कुंजियों के साथ कुछ अतिरिक्त सावधानी बरतनी चाहिए जिन्हें आपने मैन्युअल रूप से सक्षम किया है।

यदि आप Google क्लाउड एपीआई (किसी भी प्लेटफ़ॉर्म पर) का उपयोग करते हैं जो फायरबेस द्वारा स्वचालित रूप से सक्षम नहीं है (मतलब आपने इसे स्वयं सक्षम किया है), तो आपको उन एपीआई के साथ उपयोग के लिए अलग, प्रतिबंधित एपीआई कुंजी बनाने पर विचार करना चाहिए। यह विशेष रूप से महत्वपूर्ण है यदि एपीआई बिल योग्य Google क्लाउड सेवा के लिए है।

उदाहरण के लिए, यदि आप iOS पर फायरबेस एमएल के क्लाउड विज़न एपीआई का उपयोग करते हैं, तो आपको अलग एपीआई कुंजियाँ बनानी चाहिए जिनका उपयोग आप केवल क्लाउड विज़न एपीआई तक पहुँचने के लिए करते हैं।

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

पर्यावरण-विशिष्ट API कुंजियों का उपयोग करें (अनुशंसित)

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

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

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

पूछे जाने वाले प्रश्न