Catch up on everything announced at Firebase Summit, and learn how Firebase can help you accelerate app development and run your app with confidence. Learn More

अपने फायरबेस एमएल एंड्रॉइड ऐप के क्लाउड क्रेडेंशियल को सुरक्षित रखें

संग्रह की मदद से व्यवस्थित रहें अपनी प्राथमिकताओं के आधार पर, कॉन्टेंट को सेव करें और कैटगरी में बांटें.

अगर आपका एंड्रॉइड ऐप फायरबेस एमएल के क्लाउड एपीआई में से एक का उपयोग करता है, तो इससे पहले कि आप अपने ऐप को प्रोडक्शन में लॉन्च करें, आपको अनधिकृत एपीआई एक्सेस को रोकने के लिए कुछ अतिरिक्त कदम उठाने चाहिए।

अपने प्रोडक्शन ऐप्स के लिए, आप यह सुनिश्चित करेंगे कि केवल प्रमाणित क्लाइंट ही क्लाउड सेवाओं तक पहुंच बना सकते हैं। (ध्यान दें कि केवल गैर-रूट किए गए डिवाइस वर्णित विधि का उपयोग करके प्रमाणित कर सकते हैं।)

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

1. अपने प्रोडक्शन ऐप्स को Firebase के साथ रजिस्टर करें

सबसे पहले, अपने प्रोडक्शन ऐप्स को Firebase के साथ रजिस्टर करें।

  1. सुनिश्चित करें कि आपके पास अपने ऐप के SHA-1 हस्ताक्षर हैं। कैसे जानने के लिए अपने क्लाइंट को प्रमाणित करना देखें।

  2. फायरबेस कंसोल में अपनी प्रोजेक्ट सेटिंग्स पर जाएं, फिर सेटिंग्स टैब चुनें।

  3. अपने ऐप्स कार्ड तक नीचे स्क्रॉल करें, फिर अपना Android ऐप चुनें।

  4. अपने ऐप्लिकेशन की जानकारी में अपने ऐप्लिकेशन का SHA-1 हस्ताक्षर जोड़ें.

2. अपनी एपीआई कुंजियों के दायरे को सीमित करें

इसके बाद, Cloud Vision API तक पहुंच को अस्वीकार करने के लिए अपनी मौजूदा API कुंजियों को कॉन्फ़िगर करें:

  1. Google क्लाउड कंसोल का क्रेडेंशियल पेज खोलें। संकेत मिलने पर, अपनी परियोजना का चयन करें।

  2. सूची में प्रत्येक मौजूदा API कुंजी के लिए, संपादन दृश्य खोलें।

  3. एपीआई प्रतिबंध अनुभाग में, प्रतिबंधित कुंजी का चयन करें, फिर सूची में उन सभी एपीआई को जोड़ें, जिन तक आप एपीआई कुंजी का उपयोग करना चाहते हैं। सुनिश्चित करें कि Cloud Vision API शामिल नहीं है।

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

अब, आपकी मौजूदा एपीआई कुंजियां क्लाउड एमएल सेवाओं तक पहुंच प्रदान नहीं करेंगी, लेकिन प्रत्येक कुंजी किसी भी एपीआई के लिए काम करना जारी रखेगी जिसे आपने इसकी एपीआई प्रतिबंध सूची में जोड़ा है।

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

3. डिबग-ओनली एपीआई कुंजी बनाएं और उसका उपयोग करें

अंत में, केवल विकास के लिए उपयोग की जाने वाली एक नई API कुंजी बनाएं। फ़ायरबेस एमएल इस एपीआई कुंजी का उपयोग ऐसे वातावरण में Google क्लाउड सेवाओं तक पहुंचने के लिए कर सकता है जहां ऐप प्रमाणीकरण संभव नहीं है, जैसे एमुलेटर पर चलते समय।

  1. विकास के लिए उपयोग की जाने वाली एक नई API कुंजी बनाएं:

    1. Google क्लाउड कंसोल का क्रेडेंशियल पेज खोलें। संकेत मिलने पर, अपनी परियोजना का चयन करें।

    2. क्रेडेंशियल बनाएं> एपीआई कुंजी पर क्लिक करें और नई एपीआई कुंजी पर ध्यान दें। यह कुंजी अनधिकृत ऐप्स से API एक्सेस की अनुमति देती है, इसलिए इस कुंजी को गोपनीय रखें .

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

    1. यदि आपके पास पहले से कोई डिबग मेनिफेस्ट नहीं है, तो फ़ाइल > नया > अन्य > Android मैनिफ़ेस्ट फ़ाइल पर क्लिक करके और लक्ष्य स्रोत सेट से debug का चयन करके एक बनाएं।

    2. डिबग मेनिफेस्ट में, निम्नलिखित घोषणा जोड़ें:

      <application>
      <meta-data
          android:name="com.firebase.ml.cloud.ApiKeyForDebug"
          android:value="your-debug-api-key" />
      </application>
      
  3. अपने ऐप में, अपने क्लाइंट को उत्पादन में प्रमाणित करने के लिए प्रमाणपत्र फ़िंगरप्रिंट मिलान का उपयोग करने के लिए Firebase ML को कॉन्फ़िगर करें और API कुंजियों का उपयोग करने के लिए—डीबग कुंजी—केवल डिबग बिल्ड में:

    Java

    FirebaseVisionCloudImageLabelerOptions.Builder optionsBuilder =
            new FirebaseVisionCloudImageLabelerOptions.Builder();
    if (!BuildConfig.DEBUG) {
        // Requires physical, non-rooted device:
        optionsBuilder.enforceCertFingerprintMatch();
    }
    
    // Set other options. For example:
    optionsBuilder.setConfidenceThreshold(0.8f);
    // ...
    
    // And lastly:
    FirebaseVisionCloudImageLabelerOptions options = optionsBuilder.build();
    FirebaseVision.getInstance().getCloudImageLabeler(options).processImage(myImage);

    Kotlin+KTX

    val optionsBuilder = FirebaseVisionCloudImageLabelerOptions.Builder()
    if (!BuildConfig.DEBUG) {
        // Requires physical, non-rooted device:
        optionsBuilder.enforceCertFingerprintMatch()
    }
    
    // Set other options. For example:
    optionsBuilder.setConfidenceThreshold(0.8f)
    // ...
    
    // And lastly:
    val options = optionsBuilder.build()
    FirebaseVision.getInstance().getCloudImageLabeler(options).processImage(myImage)

अगले कदम

अन्य Firebase सुविधाओं का उपयोग करते समय अपने ऐप को लॉन्च करने के लिए तैयार करने के बारे में जानकारी के लिए लॉन्च चेकलिस्ट देखें।