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