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