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