अपने Firebase ML Apple ऐप्लिकेशन के क्लाउड क्रेडेंशियल को सुरक्षित रखना

अगर आपका Apple ऐप्लिकेशन आपके ऐप्लिकेशन को लॉन्च करने से पहले, Firebase ML के किसी क्लाउड एपीआई का इस्तेमाल करता है इसलिए, आपको बिना अनुमति के एपीआई ऐक्सेस.

1. मौजूदा एपीआई पासकोड का दायरा कम करें

सबसे पहले, Cloud Vision के ऐक्सेस की अनुमति न देने के लिए, मौजूदा एपीआई पासकोड कॉन्फ़िगर करें एपीआई:

  1. अपना क्रेडेंशियल पेज खोलें Google Cloud Console. जब कहा जाए, तब अपना प्रोजेक्ट चुनें.

  2. सूची में पहले से मौजूद हर एपीआई पासकोड के लिए, बदलाव करने का व्यू खोलें.

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

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

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

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

2. Firebase ML के साथ इस्तेमाल करने के लिए, नई एपीआई पासकोड बनाएं

इसके बाद, Firebase एमएल के लिए एक नई एपीआई पासकोड बनाएं, जो सिर्फ़ क्लाउड विज़न एपीआई:

  1. क्रेडेंशियल पेज पर वापस जाएं. पक्का करें कि Firebase प्रोजेक्ट अब भी चुना हुआ है.

  2. क्रेडेंशियल बनाएं > API पासकोड. नई API कुंजी को नोट करें, फिर कुंजी पर पाबंदी लगाएं पर क्लिक करें.

  3. एपीआई से जुड़ी पाबंदियां सेक्शन में, प्रतिबंधित कुंजी चुनें. इसके बाद, सूची सिर्फ़ Cloud Vision API.

यह एपीआई कुंजी सिर्फ़ Cloud Vision API को ऐक्सेस देती है और इसका इस्तेमाल कर सकता है क्लाउड-आधारित मॉडल को ऐक्सेस करने के लिए Firebase एमएल.

हैक किए गए पासकोड के नतीजों को कम करने के लिए, आपको Cloud Vision API की डिफ़ॉल्ट सेटिंग से, हर उपयोगकर्ता के हिसाब से डेटा का कोटा. इसके लिए:

  1. इसके लिए, Cloud Vision API क़ोटा पेज खोलें Google Cloud Console. जब कहा जाए, तब अपना प्रोजेक्ट चुनें.

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

    ध्यान दें कि इस संदर्भ में "हर उपयोगकर्ता के हिसाब से अनुरोध" से पता चलता है कि एक आईपी पता. अगर आपको अपने समाचार संगठन के लिए, ताकि उपयोगकर्ता एक ही समय पर NAT से आपका ऐप्लिकेशन इस्तेमाल कर सकें.

4. अपनी Firebase ML API कुंजी का इस्तेमाल करके Cloud API को कॉल करना

आखिर में, अपने ऐप्लिकेशन में नई एपीआई कुंजी का इस्तेमाल करने के लिए, Firebase एमएल को कॉन्फ़िगर करें.

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

इन तरीकों का इस्तेमाल किए जाने के बावजूद, हो सकता है कि एपीआई पासकोड को डिवाइस हैक हो गया है. इसके असर को कम करने के लिए, आपको कदम उठाने चाहिए कुंजी से छेड़छाड़ की जाएगी, जैसे कि ऊपर बताए गए तरीके से, एपीआई का हर उपयोगकर्ता कोटा कम करना, डेटा सुरक्षित करने वाली कुंजी का नया वर्शन बनाने से जुड़ी नीतियों को लागू करना, और ग्रुप में रखा गया है.

आपके ऐप्लिकेशन के सुरक्षित तरीके से एपीआई पासकोड हासिल करने के बाद, जब आपको Firebase ML Cloud API, कुंजी की जानकारी दें:

Swift

if let cloudVisionKey = getYourApiKey() {  // See note above about securing your API key
    let options = VisionCloudDetectorOptions()
    options.apiKeyOverride = cloudVisionKey
    let cloudDetector = Vision.vision().cloudLandmarkDetector(options: options)
}

Objective-C

NSString *cloudVisionKey = [self getYourApiKey];  // See note above about securing your API key
if (cloudVisionKey != nil) {
    FIRVisionCloudDetectorOptions *options =
            [[FIRVisionCloudDetectorOptions alloc] init];
    options.APIKeyOverride = cloudVisionKey;
    FIRVisionCloudLandmarkDetector *landmarkDetector =
            [vision cloudLandmarkDetectorWithOptions:options];
}

इसके अलावा, आपको यहां दी गई सामान्य सलाह का पालन करना चाहिए एपीआई पासकोड को सुरक्षित करना.

अगले चरण

इस बारे में जानकारी पाने के लिए लॉन्च चेकलिस्ट देखें Firebase की अन्य सुविधाओं का इस्तेमाल करते समय, आपके ऐप्लिकेशन को लॉन्च करने के लिए तैयार कर रहा है.