अपनी एपीआई पासकोड को सुरक्षित रखने के लिए, App Check का इस्तेमाल करना

Firebase App Check, Google Maps Platform को आपके ऐप्लिकेशन से किए जाने वाले कॉल को सुरक्षित रखता है. इसके लिए, यह ऐसे ट्रैफ़िक को ब्लॉक करता है जो भरोसेमंद ऐप्लिकेशन के अलावा अन्य सोर्स से आता है. यह पुष्टि करने के लिए, reCAPTCHA Enterprise जैसे पुष्टि करने वाली सेवा देने वाली कंपनी से मिले टोकन की जांच करता है. अपने ऐप्लिकेशन को App Check के साथ इंटिग्रेट करने से, नुकसान पहुंचाने वाले अनुरोधों से सुरक्षा मिलती है. इससे, आपको बिना अनुमति वाले एपीआई कॉल के लिए शुल्क नहीं देना पड़ता.

क्या App Check मेरे लिए सही है?

ज़्यादातर मामलों में, App Check का इस्तेमाल करने का सुझाव दिया जाता है. हालांकि, इन मामलों में App Check का इस्तेमाल करना ज़रूरी नहीं है या यह काम नहीं करता:

  • Places SDK के ओरिजनल वर्शन का इस्तेमाल किया जा रहा हो. App Check की सुविधा सिर्फ़ Places SDK (नया) के साथ काम करती है.
  • निजी या एक्सपेरिमेंटल ऐप्लिकेशन. अगर आपका ऐप्लिकेशन सार्वजनिक तौर पर ऐक्सेस नहीं किया जा सकता, तो App Check की ज़रूरत नहीं है.
  • अगर आपके ऐप्लिकेशन का इस्तेमाल सिर्फ़ सर्वर-टू-सर्वर किया जाता है, तो App Check की ज़रूरत नहीं होती. हालांकि, अगर GMP से कम्यूनिकेट करने वाले सर्वर का इस्तेमाल सार्वजनिक क्लाइंट (जैसे, मोबाइल ऐप्लिकेशन) करते हैं, तो GMP के बजाय App Check का इस्तेमाल करके उस सर्वर को सुरक्षित करें.

लागू करने के चरणों के बारे में खास जानकारी

ऐप्लिकेशन को App Check के साथ इंटिग्रेट करने के लिए, आपको यह तरीका अपनाना होगा:

  1. अपने ऐप्लिकेशन में Firebase जोड़ें.
  2. App Check लाइब्रेरी जोड़ें और उसे शुरू करें.
  3. अपने ऐप्लिकेशन में टोकन की सेवा देने वाली कंपनी को जोड़ें.
  4. Places और App Check API शुरू करें.
  5. डीबग करने की सुविधा चालू करें.
  6. अपने ऐप्लिकेशन के अनुरोधों पर नज़र रखें और नीति उल्लंघन ठीक करने के तरीके के बारे में फ़ैसला करें.

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

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

App Check इंटिग्रेशन को प्लान करते समय ध्यान रखने वाली बातें

इंटिग्रेशन की योजना बनाते समय, इन बातों का ध्यान रखें:

  • हम जिस पुष्टि करने वाली कंपनी का सुझाव देते हैं, वह reCAPTCHA Enterprise है. यह हर महीने 10,000 से ज़्यादा आकलन के लिए शुल्क लेता है.

    हमारा सुझाव है कि आप reCAPTCHA v3 का इस्तेमाल करें. हालांकि, इसकी एक सीमा है. इसके बाद, ट्रैफ़िक का आकलन नहीं किया जाएगा.

    आपके पास पुष्टि करने की सेवा देने वाली किसी कंपनी को चुनने का विकल्प होता है. हालांकि, यह इस्तेमाल का एक ऐडवांस उदाहरण है. ज़्यादा जानकारी के लिए, App Check का दस्तावेज़ देखें.

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

    App Check टोकन के मान्य रहने की अवधि (टाइम टू लिव या टीटीएल) से यह तय होता है कि पुष्टि कितनी बार की जाएगी. इस अवधि को Firebase कंसोल में कॉन्फ़िगर किया जा सकता है. फिर से पुष्टि तब होती है, जब टीटीएल का करीब आधा समय बीत चुका होता है. ज़्यादा जानकारी के लिए, पुष्टि करने की सेवा देने वाली कंपनी के Firebase दस्तावेज़ देखें.

अपने ऐप्लिकेशन को App Check के साथ इंटिग्रेट करना

ज़रूरी शर्तें

पहला चरण: अपने ऐप्लिकेशन में Firebase जोड़ना

अपने ऐप्लिकेशन में Firebase जोड़ने के लिए, Firebase डेवलपर के दस्तावेज़ में दिए गए निर्देशों का पालन करें.

दूसरा चरण: App Check लाइब्रेरी जोड़ना और App Check को चालू करना

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

तीसरा चरण: Maps JS API लाइब्रेरी लोड करना

  1. नीचे दिए गए स्निपेट में दिखाए गए तरीके से, Core, Maps, और Places लाइब्रेरी लोड करें. ज़्यादा जानकारी और निर्देशों के लिए, Maps JavaScript API Place Class से जुड़ा दस्तावेज़ देखें.

    async function init() {
      const {Settings} = await google.maps.importLibrary('core');
      const {Map} = await google.maps.importLibrary('maps');
      const {Place} = await google.maps.importLibrary('places');
    }  

चौथा चरण: Places और App Check API को शुरू करना

  1. Firebase कंसोल से मिले कॉन्फ़िगरेशन का इस्तेमाल करके, App Check को शुरू करें.
  2. पक्का करें कि Maps JS API के अनुरोधों के साथ App Check टोकन शामिल हों:
      async function init() {
        const {Settings} = await google.maps.importLibrary('core');
        const {Map} = await google.maps.importLibrary('maps');
        const {Place} = await google.maps.importLibrary('places');
      
        const app = initializeApp({
          // Your firebase configuration object
        });
      
        // Pass your reCAPTCHA Enterprise site key to initializeAppCheck().
        const appCheck = initializeAppCheck(app, {
          provider: new ReCaptchaEnterpriseProvider(
            'abcdefghijklmnopqrstuvwxy-1234567890abcd',
          ),
      
          // Optional argument. If true, the SDK automatically refreshes App Check
          // tokens as needed.
          isTokenAutoRefreshEnabled: true,
        });
      
        Settings.getInstance().fetchAppCheckToken = () =>
            getToken(appCheck, /* forceRefresh = */ false);
      
        // Make a Places JS request
        const place = new Place({id: 'ChIJN5Nz71W3j4ARhx5bwpTQEGg'});
        await place.fetchFields({fields: ['*']});
      
        // Load a map
        map = new Map(document.getElementById("map"), {
          center: { lat: 37.4161493, lng: -122.0812166 },
          zoom: 8,
        });
      }  
      

पाँचवाँ चरण: डीबग करने की सुविधा चालू करना (ज़रूरी नहीं)

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

अपने ऐप्लिकेशन को स्थानीय तौर पर टेस्ट करने के लिए:

  • डेवलपमेंट के लिए, डीबग करने की सुविधा देने वाली कंपनी को चालू करें.
  • आपको SDK टूल के डीबग लॉग से, अपने-आप जनरेट हुआ रैंडम UUID4 मिलेगा. इसे App Check के दस्तावेज़ में _डीबग टोकन_ कहा जाता है. इस टोकन को Firebase कंसोल में जोड़ें.
  • ज़्यादा जानकारी और निर्देशों के लिए, App Check का दस्तावेज़ देखें.

अपने ऐप्लिकेशन को सीआई एनवायरमेंट में चलाने के लिए:

  • Firebase कंसोल से, रैंडम UUID4 जनरेट करें.
  • UUID4 को डीबग टोकन के तौर पर जोड़ें. इसके बाद, इसे ऐसे सीक्रेट स्टोर में कॉपी करें जिसे सीआई टेस्ट, हर टेस्ट रन के हिसाब से ऐक्सेस करेंगे.
  • ज़्यादा जानकारी और निर्देशों के लिए, App Check का दस्तावेज़ देखें.

छठा चरण: अपने ऐप्लिकेशन के अनुरोधों पर नज़र रखें और नीति उल्लंघन ठीक करने के तरीके के बारे में फ़ैसला करें

नीति उल्लंघन ठीक करने के लिए कार्रवाई शुरू करने से पहले, पक्का करें कि आपके ऐप्लिकेशन के असली उपयोगकर्ताओं को कोई परेशानी न हो. इसके लिए, App Check की मेट्रिक स्क्रीन पर जाएं. इससे आपको पता चलेगा कि आपके ऐप्लिकेशन के ट्रैफ़िक का कितना प्रतिशत हिस्सा, पुष्टि किया गया है, पुराना है या गैर-ज़रूरी है. जब आपको लगे कि ज़्यादातर ट्रैफ़िक की पुष्टि हो गई है, तब नीति उल्लंघन ठीक करने के तरीके को लागू किया जा सकता है.

ज़्यादा जानकारी और निर्देशों के लिए, Firebase App Check का दस्तावेज़ देखें.