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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

क्योंकि Firebase ML एपीआई पासकोड, 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 की अन्य सुविधाओं का इस्तेमाल करते समय, आपके ऐप्लिकेशन को लॉन्च करने के लिए तैयार कर रहा है.