যদি আপনার Apple অ্যাপ Firebase ML এর ক্লাউড এপিআইগুলির একটি ব্যবহার করে, আপনি আপনার অ্যাপটি প্রোডাকশনে চালু করার আগে, অননুমোদিত API অ্যাক্সেস রোধ করতে আপনাকে কিছু অতিরিক্ত পদক্ষেপ নিতে হবে।
1. বিদ্যমান API কীগুলির সুযোগ হ্রাস করুন৷
প্রথমে, ক্লাউড ভিশন API-এ অ্যাক্সেসের অনুমতি না দেওয়ার জন্য আপনার বিদ্যমান API কীগুলি কনফিগার করুন:
Google Cloud কনসোলের শংসাপত্র পৃষ্ঠা খুলুন। অনুরোধ করা হলে, আপনার প্রকল্প নির্বাচন করুন.
তালিকায় বিদ্যমান প্রতিটি API কী-এর জন্য, সম্পাদনা দৃশ্য খুলুন।
এপিআই সীমাবদ্ধতা বিভাগে, সীমাবদ্ধ কী নির্বাচন করুন, তারপরে আপনি API কী-এর অ্যাক্সেস পেতে চান এমন সমস্ত API তালিকায় যোগ করুন। ক্লাউড ভিশন API অন্তর্ভুক্ত না করা নিশ্চিত করুন।
আপনি যখন একটি API কী এর API সীমাবদ্ধতা কনফিগার করেন, তখন আপনি স্পষ্টভাবে সেই APIগুলি ঘোষণা করেন যেখানে কীটির অ্যাক্সেস রয়েছে৷ ডিফল্টরূপে, যখন API বিধিনিষেধ বিভাগে Don't restrict key নির্বাচন করা থাকে, তখন একটি API কী ব্যবহার করা যেতে পারে প্রজেক্টের জন্য সক্ষম করা যেকোনো API অ্যাক্সেস করতে।
এখন, আপনার বিদ্যমান API কীগুলি ক্লাউড এমএল পরিষেবাগুলিতে অ্যাক্সেস মঞ্জুর করবে না, তবে প্রতিটি কী আপনি এর API সীমাবদ্ধতা তালিকায় যুক্ত যে কোনও APIগুলির জন্য কাজ করতে থাকবে৷
মনে রাখবেন যে আপনি যদি ভবিষ্যতে কোনো অতিরিক্ত API সক্রিয় করেন, তাহলে আপনাকে অবশ্যই প্রযোজ্য API কী-এর জন্য API সীমাবদ্ধতা তালিকায় যোগ করতে হবে।
2. Firebase ML সাথে ব্যবহারের জন্য একটি নতুন API কী তৈরি করুন৷
এরপর, Firebase ML এর জন্য একটি নতুন API কী তৈরি করুন যা শুধুমাত্র Cloud Vision API-তে কল করার অনুমতি দেয়:
শংসাপত্র পৃষ্ঠায় ফিরে যান। আপনার Firebase প্রকল্প এখনও নির্বাচিত হয়েছে তা নিশ্চিত করুন৷
শংসাপত্র তৈরি করুন > API কী ক্লিক করুন। নতুন API কী নোট নিন, তারপর Restrict key-এ ক্লিক করুন।
API সীমাবদ্ধতা বিভাগে, Restrict key নির্বাচন করুন, তারপর শুধুমাত্র ক্লাউড ভিশন API তালিকায় যোগ করুন।
এই এপিআই কী শুধুমাত্র ক্লাউড ভিশন এপিআইতে অ্যাক্সেস দেয় এবং ক্লাউড-ভিত্তিক মডেলগুলি অ্যাক্সেস করতে Firebase ML দ্বারা ব্যবহার করা যেতে পারে।
3. প্রস্তাবিত: ক্লাউড ভিশন API-এর কোটা কমিয়ে দিন
একটি আপস করা কী এর পরিণতিগুলি প্রশমিত করতে, আপনার ডিফল্ট সেটিং থেকে ক্লাউড ভিশন API-এর প্রতি-ব্যবহারকারীর কোটা হ্রাস করা উচিত৷ এটি করতে:
Google Cloud কনসোলের ক্লাউড ভিশন API কোটা পৃষ্ঠাটি খুলুন। অনুরোধ করা হলে, আপনার প্রকল্প নির্বাচন করুন.
অনুরোধ বিভাগে, আপনার অ্যাপের জন্য যুক্তিসঙ্গত কিছুতে প্রতি মিনিট প্রতি ব্যবহারকারীর কোটাতে অনুরোধ সেট করুন। উদাহরণ স্বরূপ, যদি আপনার অ্যাপে একটি ডকুমেন্টের ছবি আপলোড করা হয় যাতে তার পাঠ্য ফিরে পাওয়া যায়, তাহলে এটি অসম্ভাব্য যে একজন ব্যবহারকারী প্রতি কয়েক সেকেন্ডে একাধিকবার এটি করবেন, তাই 30-40 কোটা সম্ভবত নিরাপদ হবে।
মনে রাখবেন যে এই প্রসঙ্গে "ব্যবহারকারী প্রতি অনুরোধ" একটি একক আইপি ঠিকানা থেকে অনুরোধ বোঝায়। আপনি যদি NAT এর পিছনে থেকে একই সময়ে একাধিক ব্যবহারকারী আপনার অ্যাপ ব্যবহার করার আশা করেন তবে আপনাকে এটি বিবেচনা করতে হবে।
4. আপনার 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)
}
উদ্দেশ্য-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];
}
উপরন্তু, একটি API কী সুরক্ষিত করার ক্ষেত্রে আপনার সাধারণ পরামর্শ অনুসরণ করা উচিত।
পরবর্তী পদক্ষেপ
অন্যান্য ফায়ারবেস বৈশিষ্ট্যগুলি ব্যবহার করার সময় আপনার অ্যাপটি লঞ্চ করার জন্য প্রস্তুত করার তথ্যের জন্য লঞ্চ চেকলিস্টটি দেখুন৷