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