अगर आपका Apple ऐप्लिकेशन, Firebase ML के किसी क्लाउड एपीआई का इस्तेमाल करता है, तो ऐप्लिकेशन को प्रोडक्शन में लॉन्च करने से पहले, आपको कुछ और कदम उठाने चाहिए. इससे, एपीआई को बिना अनुमति के ऐक्सेस करने से रोका जा सकता है.
1. मौजूदा एपीआई कुंजियों का दायरा कम करना
सबसे पहले, Cloud Vision के ऐक्सेस की अनुमति न देने के लिए, मौजूदा एपीआई पासकोड कॉन्फ़िगर करें एपीआई:
अपना क्रेडेंशियल पेज खोलें Google Cloud कंसोल. जब कहा जाए, तब अपना प्रोजेक्ट चुनें.
सूची में पहले से मौजूद हर एपीआई पासकोड के लिए, बदलाव करने का व्यू खोलें.
एपीआई से जुड़ी पाबंदियां सेक्शन में, कुंजी पर पाबंदी लगाएं को चुनें. इसके बाद, उन सभी एपीआई को सूची में जोड़ें जिनका ऐक्सेस आपको एपीआई कुंजी को देना है. पक्का करें कि इसमें Cloud Vision API को शामिल नहीं करना होगा.
जब किसी एपीआई पासकोड की एपीआई से जुड़ी पाबंदियों को कॉन्फ़िगर किया जाता है, तो आपको साफ़ तौर पर उन एपीआई का एलान करना जिनका ऐक्सेस कुंजी के पास है. डिफ़ॉल्ट रूप से, जब एपीआई से जुड़ी पाबंदियां सेक्शन में कुंजी पर पाबंदी न लगाएं को चुना जाता है, तो प्रोजेक्ट के लिए चालू किए गए किसी भी एपीआई को ऐक्सेस करने के लिए, एपीआई पासकोड का इस्तेमाल किया जा सकता है.
अब आपकी मौजूदा एपीआई पासकोड, क्लाउड पर उपलब्ध एमएल सेवाओं का ऐक्सेस नहीं देंगे. हालांकि, हर पासकोड उन सभी एपीआई के लिए काम करता रहेगा जिन्हें आपने एपीआई से जुड़ी पाबंदियों की सूची में जोड़ा है.
ध्यान दें कि अगर आने वाले समय में कोई और एपीआई चालू किया जाता है, तो आपको उसे लागू एपीआई पासकोड के लिए, एपीआई से जुड़ी पाबंदियों की सूची में जोड़ना होगा.
2. Firebase ML के साथ इस्तेमाल करने के लिए नई एपीआई कुंजी बनाएं
इसके बाद, Firebase ML के लिए एक नई API कुंजी बनाएं, जिससे सिर्फ़ क्लाउड विज़न एपीआई:
क्रेडेंशियल पेज पर वापस जाएं. पक्का करें कि आपका Firebase प्रोजेक्ट अब भी चुना गया हो.
क्रेडेंशियल बनाएं > API पासकोड. नए एपीआई पासकोड को नोट करें और इसके बाद कुंजी पर पाबंदी लगाएं पर क्लिक करें.
एपीआई से जुड़ी पाबंदियां सेक्शन में, प्रतिबंधित कुंजी चुनें. इसके बाद, सूची सिर्फ़ Cloud Vision API.
यह एपीआई पासकोड, सिर्फ़ Cloud Vision API को ऐक्सेस करने की अनुमति देता है. साथ ही, इसका इस्तेमाल Firebase ML, क्लाउड-आधारित मॉडल को ऐक्सेस करने के लिए कर सकता है.
3. सुझाया गया: Cloud Vision API का कोटा कम करें
हैक की गई कुंजी के असर को कम करने के लिए, आपको हर उपयोगकर्ता के लिए Cloud Vision API के कोटे को उसकी डिफ़ॉल्ट सेटिंग से कम करना चाहिए. इसके लिए:
इसके लिए, Cloud Vision API कोटा पेज खोलें Google Cloud कंसोल. जब कहा जाए, तब अपना प्रोजेक्ट चुनें.
अनुरोध सेक्शन में, हर उपयोगकर्ता के लिए हर मिनट के अनुरोध का कोटा सेट करें आपके ऐप्लिकेशन के लिए उचित भी है. उदाहरण के लिए, अगर आपके ऐप्लिकेशन में किसी दस्तावेज़ का टेक्स्ट वापस पाने के लिए कोई तस्वीर अपलोड करना है, तो ऐसे में उपयोगकर्ता हर कुछ सेकंड में एक से ज़्यादा बार ऐसा करेगा, इसलिए 30-40 का कोटा शायद सुरक्षित रहेगा.
ध्यान दें कि इस संदर्भ में, "हर उपयोगकर्ता के अनुरोध" का मतलब एक आईपी पते से किए गए अनुरोधों से है. अगर आपको अपने समाचार संगठन के लिए, ताकि उपयोगकर्ता एक ही समय पर NAT से आपका ऐप्लिकेशन इस्तेमाल कर सकें.
4. अपनी Firebase ML एपीआई पासकोड का इस्तेमाल करके, Cloud के एपीआई को कॉल करना
आखिर में, अपने ऐप्लिकेशन में अपनी नई एपीआई कुंजी का इस्तेमाल करने के लिए, Firebase ML को कॉन्फ़िगर करें.
Firebase ML एपीआई पासकोड की मदद से, Cloud Vision एपीआई को बिना पुष्टि के ऐक्सेस किया जा सकता है. इसलिए, यह ज़रूरी है कि आप इस पासकोड को गुप्त रखें, ताकि कोई दूसरा व्यक्ति इसका गलत इस्तेमाल न कर सके और आपके बिलिंग खाते से पैसे न काटे जा सकें. ऐसा करने के लिए, आपको एपीआई पासकोड को भी अपने ऐप्लिकेशन की बाइनरी में डालें. इसके बजाय, ऐप्लिकेशन के रनटाइम पर पुष्टि करें कि किसी ऐसे उपयोगकर्ता ने साइन इन किया है जिसकी पहचान की जा चुकी है और वह भरोसेमंद है. इसके बाद ही, सर्वर से एपीआई पासकोड पाएं.
इन तरीकों का इस्तेमाल किए जाने के बावजूद, हो सकता है कि एपीआई पासकोड को डिवाइस हैक हो गया है. इसके असर को कम करने के लिए, आपको कदम उठाने चाहिए कुंजी से छेड़छाड़ की जाएगी, जैसे कि ऊपर बताए गए तरीके से, एपीआई का हर उपयोगकर्ता कोटा कम करना, डेटा सुरक्षित करने वाली कुंजी का नया वर्शन बनाने से जुड़ी नीतियों को लागू करना, और ग्रुप में रखा गया है.
आपके ऐप्लिकेशन के सुरक्षित तरीके से एपीआई पासकोड हासिल करने के बाद, जब आपको 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 की अन्य सुविधाओं का इस्तेमाल करते समय, आपके ऐप्लिकेशन को लॉन्च करने के लिए तैयार कर रहा है.