अपने एपीआई पासकोड को सुरक्षित रखने के लिए, 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 की ज़रूरत नहीं है. हालांकि, अगर जीएमपी के साथ कम्यूनिकेट करने वाले सर्वर का इस्तेमाल सार्वजनिक क्लाइंट (जैसे, मोबाइल ऐप्लिकेशन) करते हैं, तो जीएमपी के बजाय उस सर्वर को सुरक्षित रखने के लिए 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 इंटिग्रेशन की प्लानिंग करते समय इन बातों का ध्यान रखना ज़रूरी है

इंटिग्रेशन की प्रोसेस शुरू करने से पहले, इन बातों का ध्यान रखें:

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

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

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

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

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

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

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

  • Maps JS API के हर हफ़्ते या हर तिमाही वाले नए वर्शन, कोर, और जगहों की लाइब्रेरी वाला ऐप्लिकेशन लोड किया गया हो.
  • ऐसा क्लाउड प्रोजेक्ट जिसमें Maps JS और Places API (नया) एपीआई चालू हों.
  • यह ज़रूरी है कि आपके पास Cloud Console में ऐप्लिकेशन का मालिकाना हक हो.
  • आपको Cloud Console से ऐप्लिकेशन का प्रोजेक्ट आईडी चाहिए होगा

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

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

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

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

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

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

    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 का दस्तावेज़ देखें.