আপনার Firebase ML Apple অ্যাপের ক্লাউড শংসাপত্রগুলি সুরক্ষিত করুন৷

যদি আপনার অ্যাপল অ্যাপটি Firebase ML এর ক্লাউড API ব্যবহার করে, তাহলে আপনার অ্যাপটি উৎপাদনে চালু করার আগে, অননুমোদিত API অ্যাক্সেস রোধ করার জন্য আপনার কিছু অতিরিক্ত পদক্ষেপ নেওয়া উচিত।

১. বিদ্যমান API কীগুলির পরিধি হ্রাস করুন

প্রথমে, ক্লাউড ভিশন API-তে অ্যাক্সেস নিষিদ্ধ করার জন্য আপনার বিদ্যমান API কীগুলি কনফিগার করুন:

  1. Google Cloud কনসোলের ক্রেডেনশিয়াল পৃষ্ঠাটি খুলুন। অনুরোধ করা হলে, আপনার প্রকল্পটি নির্বাচন করুন।

  2. তালিকার প্রতিটি বিদ্যমান API কী-এর জন্য, সম্পাদনা দৃশ্য খুলুন।

  3. API বিধিনিষেধ বিভাগে, Restrict key নির্বাচন করুন, তারপর তালিকায় সেই সমস্ত API যোগ করুন যেখানে আপনি API কী অ্যাক্সেস করতে চান। Cloud Vision API অন্তর্ভুক্ত না করার বিষয়টি নিশ্চিত করুন।

    যখন আপনি একটি API কী-এর API সীমাবদ্ধতা কনফিগার করেন, তখন আপনি স্পষ্টভাবে সেই API গুলি ঘোষণা করেন যেখানে কী-এর অ্যাক্সেস আছে । ডিফল্টরূপে, যখন API সীমাবদ্ধতা বিভাগে "Don't restrict key" নির্বাচন করা থাকে, তখন প্রকল্পের জন্য সক্রিয় যেকোনো API অ্যাক্সেস করতে একটি API কী ব্যবহার করা যেতে পারে।

এখন, আপনার বিদ্যমান API কীগুলি ক্লাউড ML পরিষেবাগুলিতে অ্যাক্সেস দেবে না, তবে প্রতিটি কী আপনার API বিধিনিষেধ তালিকায় যোগ করা যেকোনো API-এর জন্য কাজ করতে থাকবে।

মনে রাখবেন, ভবিষ্যতে যদি আপনি কোনও অতিরিক্ত API সক্রিয় করেন, তাহলে আপনাকে প্রযোজ্য API কী-এর জন্য API বিধিনিষেধের তালিকায় সেগুলি যোগ করতে হবে।

২. Firebase ML সাথে ব্যবহারের জন্য একটি নতুন API কী তৈরি করুন

এরপর, Firebase ML এর জন্য একটি নতুন API কী তৈরি করুন যা শুধুমাত্র Cloud Vision API তে কল করার অনুমতি দেয়:

  1. শংসাপত্র পৃষ্ঠায় ফিরে যান। নিশ্চিত করুন যে আপনার Firebase প্রকল্পটি এখনও নির্বাচিত আছে।

  2. Create credencials > API key এ ক্লিক করুন। নতুন API key টি নোট করে নিন, তারপর Restrict key এ ক্লিক করুন।

  3. API সীমাবদ্ধতা বিভাগে, Restrict key নির্বাচন করুন, তারপর তালিকায় শুধুমাত্র Cloud Vision API যোগ করুন।

এই API কীটি শুধুমাত্র ক্লাউড ভিশন API-তে অ্যাক্সেস দেয় এবং Firebase ML ক্লাউড-ভিত্তিক মডেলগুলি অ্যাক্সেস করতে ব্যবহার করতে পারে।

কোনও আপোস করা কী-এর পরিণতি কমাতে, আপনার ক্লাউড ভিশন API-এর ডিফল্ট সেটিং থেকে প্রতি ব্যবহারকারীর কোটা কমানো উচিত। এটি করার জন্য:

  1. Google Cloud কনসোলের ক্লাউড ভিশন এপিআই কোটাস পৃষ্ঠাটি খুলুন। অনুরোধ করা হলে, আপনার প্রকল্পটি নির্বাচন করুন।

  2. " Requests " বিভাগে, "Requests per minute per user" কোটা আপনার অ্যাপের জন্য যুক্তিসঙ্গত কিছুতে সেট করুন। উদাহরণস্বরূপ, যদি আপনার অ্যাপে কোনও ডকুমেন্টের ছবি আপলোড করে তার টেক্সট ফিরে পাওয়া যায়, তাহলে ব্যবহারকারীর প্রতি কয়েক সেকেন্ডে একবারের বেশি এটি করার সম্ভাবনা কম, তাই 30-40 কোটা সম্ভবত নিরাপদ হবে।

    মনে রাখবেন যে এই প্রসঙ্গে "প্রতি ব্যবহারকারীর অনুরোধ" বলতে একটি একক আইপি ঠিকানা থেকে অনুরোধ বোঝায়। যদি আপনি আশা করেন যে একাধিক ব্যবহারকারী একই সময়ে একটি NAT এর পিছনে থেকে আপনার অ্যাপটি ব্যবহার করবেন, তাহলে আপনার এটি বিবেচনা করার প্রয়োজন হতে পারে।

৪. আপনার Firebase ML API কী ব্যবহার করে ক্লাউড API গুলিতে কল করুন

অবশেষে, আপনার অ্যাপে, আপনার নতুন API কী ব্যবহার করার জন্য Firebase ML কনফিগার করুন।

যেহেতু Firebase ML API কী ক্লাউড ভিশন API-তে অননুমোদিত অ্যাক্সেসের অনুমতি দেয়, তাই আপনার বিলিং অ্যাকাউন্টে অননুমোদিত ব্যবহার এবং চার্জ রোধ করার জন্য কীটি গোপন রাখা গুরুত্বপূর্ণ। এটি করার জন্য, আপনার অ্যাপ বাইনারিতে আপনার API কী অন্তর্ভুক্ত করা থেকে বিরত থাকা উচিত। পরিবর্তে, অ্যাপ রানটাইমে, যাচাই করুন যে একজন পরিচিত ভাল ব্যবহারকারী সাইন ইন করেছেন, এবং শুধুমাত্র তখনই, সার্ভার থেকে API কীটি পুনরুদ্ধার করুন।

এমনকি যখন এই অনুশীলনগুলি পরিলক্ষিত হয়, তখনও একটি API কী-এর ক্ষতি হতে পারে। ক্ষতিগ্রস্থ কী-এর পরিণতি কমাতে আপনার পদক্ষেপ নেওয়া উচিত, যেমন উপরে বর্ণিত API-এর প্রতি-ব্যবহারকারী কোটা হ্রাস করা, কী ঘূর্ণন নীতি বাস্তবায়ন করা এবং ব্যবহারকারীদের বিভিন্ন গোষ্ঠীকে বিভিন্ন কী প্রদান করা।

আপনার অ্যাপটি নিরাপদে API কী অর্জন করার পরে, যখন আপনি একটি Firebase ML Cloud API কল করতে চান, তখন কীটি নির্দিষ্ট করুন:

সুইফট

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)
}

অবজেক্টিভ-সি

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];
}

এছাড়াও, আপনার API কী সুরক্ষিত করার সাধারণ পরামর্শ অনুসরণ করা উচিত।

পরবর্তী পদক্ষেপ

অন্যান্য Firebase বৈশিষ্ট্য ব্যবহার করার সময় আপনার অ্যাপটি লঞ্চের জন্য প্রস্তুত করার তথ্যের জন্য লঞ্চ চেকলিস্টটি দেখুন।