আপনার API key সুরক্ষিত করতে App Check ব্যবহার করুন
বৈধ অ্যাপ ছাড়া অন্য সোর্স থেকে আসা ট্রাফিক ব্লক করার মাধ্যমে Firebase App Check আপনার অ্যাপ থেকে Google Maps Platform-এ করা কলের জন্য সুরক্ষা প্রদান করে। এটি reCAPTCHA Enterprise-এর মতো অ্যাটেস্টেশন প্রদানকারীর থেকে টোকেন চেক করার মাধ্যমে এটি করে। App Check-এর সাথে আপনার অ্যাপ ইন্টিগ্রেট করলে তা ক্ষতিকর অনুরোধের বিরুদ্ধে সুরক্ষা প্রদান করতে সাহায্য করে, তাই অননুমোদিত API কলের জন্য আপনাকে চার্জ করা হয় না।
App Check কি আমার জন্য সঠিক?
বেশিরভাগ ক্ষেত্রে App Check ব্যবহার করার সাজেশন দেওয়া হয়, তবে নিম্নলিখিত ক্ষেত্রে App Check-এর প্রয়োজন হয় না বা এটি কাজ করে না:
- ব্যক্তিগত বা এক্সপেরিমেন্টাল অ্যাপ। আপনার অ্যাপ সর্বজনীনভাবে অ্যাক্সেসযোগ্য না হলে, App Check-এর প্রয়োজন নেই।
- আপনার অ্যাপ শুধুমাত্র সার্ভার-টু-সার্ভার ব্যবহার করা হলে, App Check-এর প্রয়োজন নেই। তবে, GMP-এর সাথে যোগাযোগকারী সার্ভার যদি পাবলিক ক্লায়েন্ট (যেমন, মোবাইল অ্যাপ) ব্যবহার করে, তাহলে GMP-এর পরিবর্তে সেই সার্ভার সুরক্ষিত রাখতে App Check ব্যবহার করার কথা বিবেচনা করুন।
প্রয়োগ করার বিভিন্ন ধাপের ওভারভিউ
App Check-এর সাথে আপনার অ্যাপ ইন্টিগ্রেট করার জন্য আপনাকে এইসব ধাপ অনুসরণ করতে হবে:
- আপনার অ্যাপে Firebase যোগ করুন।
- App Check লাইব্রেরি যোগ ও ইনিশিয়ালাইজ করুন।
- আপনার অ্যাপে টোকেন প্রদানকারী যোগ করুন।
- Maps JS এবং App Check API শুরু করুন।
- ডিবাগিং চালু করুন।
- আপনার অ্যাপের অনুরোধ মনিটর করুন এবং এনফোর্সমেন্ট সম্পর্কে সিদ্ধান্ত নিন।
App Check-এর সাথে ইন্টিগ্রেট করার পরে, আপনি Firebase কনসোলে ব্যাকএন্ড ট্রাফিক মেট্রিক দেখতে পাবেন। এইসব মেট্রিক, অনুরোধের সাথে সঠিক App Check টোকেন আছে কিনা তার ভিত্তিতে অনুরোধের ব্রেকডাউন প্রদান করে। আরও তথ্যের জন্য Firebase App Check ডকুমেন্টেশন দেখুন।
আপনি যখন নিশ্চিত হবেন যে বেশিরভাগ অনুরোধ বৈধ সোর্স থেকে এসেছে এবং ব্যবহারকারীরা আপনার অ্যাপের লেটেস্ট ভার্সনে আপডেট করেছেন, যার মধ্যে App Check-এর প্রয়োগ অন্তর্ভুক্ত রয়েছে, তখন আপনি এনফোর্সমেন্ট চালু করতে পারবেন। এনফোর্সমেন্ট চালু হয়ে গেলে, সঠিক App Check টোকেন ছাড়া সব ট্রাফিক App Check বাতিল করে দেবে।
App Check ইন্টিগ্রেশন প্ল্যান করার সময় যেসব বিষয় বিবেচনা করতে হবে
আপনার ইন্টিগ্রেশন প্ল্যান করার সময় কিছু বিষয় বিবেচনা করতে হবে:
- আমাদের সাজেস্ট করা অ্যাটেস্টেশন প্রদানকারীদের মধ্যে একটি হল reCAPTCHA Enterprise, যা প্রতি মাসে ১০,০০০-এর বেশি অ্যাসেসমেন্টের জন্য চার্জ করে।
আমরা যে অন্য অ্যাটেস্টেশন প্রদানকারীর সাজেশন দিই, reCAPTCHA v3-এর একটি কোটা আছে, যার পরে ট্রাফিক মূল্যায়ন করা হবে না।
আপনি কাস্টম অ্যাটেস্টেশন প্রদানকারী ব্যবহার করার বিকল্প বেছে নিতে পারেন, যদিও এটি একটি উন্নত ব্যবহারের কেস। আরও তথ্যের জন্য App Check ডকুমেন্টেশন দেখুন।
-
আপনার অ্যাপের ব্যবহারকারীরা স্টার্টআপে কিছু লেটেন্সি অনুভব করবেন। তবে, এর পরে, যেকোনও পর্যায়ক্রমিক রি-অ্যাটেস্টেশন ব্যাকগ্রাউন্ডে ঘটবে এবং ব্যবহারকারীদের আর কোনও লেটেন্সি অনুভব করতে হবে না। স্টার্টআপে লেটেন্সির সঠিক পরিমাণ আপনার বেছে নেওয়া অ্যাটেস্টেশন প্রদানকারীর উপর নির্ভর করে।
App Check টোকেন যত সময়ের জন্য বৈধ থাকে (টাইম টু লাইভ বা TTL) তার উপর ভিত্তি করে কত ঘন ঘন আবার অ্যাটেস্ট করতে হবে তা নির্ধারণ করা হয়। এই সময়সীমা Firebase কনসোল থেকে কনফিগার করা যাবে। TTL-এর প্রায় অর্ধেক সময় অতিবাহিত হয়ে গেলে আবার অ্যাটেস্টেশন করা হয়। আরও তথ্যের জন্য, আপনার অ্যাটেস্টেশন প্রদানকারীর জন্য Firebase ডকুমেন্ট দেখুন।
App Check-এর সাথে আপনার অ্যাপ ইন্টিগ্রেট করা
পূর্বশর্ত ও প্রয়োজনীয়তা
- Maps JS API-এর লেটেস্ট সাপ্তাহিক বা ত্রৈমাসিক ভার্সন এবং কোর লাইব্রেরি লোড করা আছে এমন একটি অ্যাপ।
- Maps JS API চালু করা আছে এমন একটি ক্লাউড প্রোজেক্ট।
- আপনাকে Cloud Console-এ অ্যাপের মালিক হতে হবে।
- Cloud Console থেকে আপনার অ্যাপের প্রোজেক্ট আইডি প্রয়োজন হবে
ধাপ ১: আপনার অ্যাপে Firebase যোগ করুন
আপনার অ্যাপে Firebase যোগ করতে Firebase ডেভেলপার ডকুমেন্টেশনে দেওয়া নির্দেশাবলী অনুসরণ করুন।
ধাপ ২: App Check লাইব্রেরি যোগ করুন এবং App Check শুরু করুন
Firebase প্রতিটি ডিফল্ট অ্যাটেস্টেশন প্রদানকারীর জন্য নির্দেশাবলী প্রদান করে। এই নির্দেশাবলী থেকে আপনি জানতে পারবেন যে কীভাবে Firebase প্রোজেক্ট সেট-আপ করতে হয় এবং আপনার অ্যাপে App Check লাইব্রেরি যোগ করতে হয়। App Check শুরু করার জন্য প্রদত্ত কোড স্যাম্পেল অনুসরণ করুন।
ধাপ ৩: Maps JS API লাইব্রেরি লোড করা
নিম্নলিখিত স্নিপেটে যেভাবে দেখানো হয়েছে সেই হিসাবে কোর এবং Maps লাইব্রেরি লোড করুন। আরও তথ্য ও নির্দেশাবলীর জন্য, Maps JavaScript API ডকুমেন্টেশন দেখুন।
async function init() { const {Settings} = await google.maps.importLibrary('core'); const {Map} = await google.maps.importLibrary('maps'); }
ধাপ ৪: Maps ও App Check API শুরু করা
- Firebase কনসোলের মাধ্যমে প্রদান করা কনফিগারেশন ব্যবহার করে App Check শুরু করুন।
- Maps JS API-তে করা অনুরোধের সাথে App Check টোকেন আছে কিনা তা নিশ্চিত করুন:
import {initializeApp} from 'firebase/app'; import { getToken, initializeAppCheck, ReCaptchaEnterpriseProvider, } from 'firebase/app-check'; async function init() { const {Settings} = await google.maps.importLibrary('core'); const {Map} = await google.maps.importLibrary('maps'); const app = initializeApp({ // Your firebase configuration object }); // Pass your reCAPTCHA Enterprise site key to initializeAppCheck(). const appCheck = initializeAppCheck(app, { provider: new ReCaptchaEnterpriseProvider( 'abcdefghijklmnopqrstuvwxy-1234567890abcd', ), // Optional argument. If true, the SDK automatically refreshes App Check // tokens as needed. isTokenAutoRefreshEnabled: true, }); Settings>.getInstance().fetchAppCheckToken = () = getToken(appCheck, /* forceRefresh = */ false); // Load a map map = new Map(document.getElementById("map"), { center: { lat: 37.4161493, lng: -122.0812166 }, zoom: 8, }); }
ধাপ ৫: ডিবাগিং চালু করা (ঐচ্ছিক)
আপনি যদি স্থানীয়ভাবে আপনার অ্যাপ ডেভেলপ ও পরীক্ষা করতে চান অথবা কন্টিনিউয়াস ইন্টিগ্রেশন (CI) এনভায়রনমেন্টে চালাতে চান, তাহলে আপনার অ্যাপের একটি ডিবাগ বিল্ড তৈরি করতে পারেন যা সঠিক App Check টোকেন পাওয়ার জন্য ডিবাগ সিক্রেট ব্যবহার করে। এটি আপনাকে ডিবাগ বিল্ডে আসল অ্যাটেস্টেশন প্রদানকারী ব্যবহার করা এড়াতে দেয়।
আপনার অ্যাপ লোকালি টেস্ট করতে:
- ডেভেলপমেন্টের উদ্দেশ্যে ডিবাগ প্রোভাইডার অ্যাক্টিভেট করুন।
- আপনি SDK-এর ডিবাগ লগ থেকে অটোমেটিক জেনারেট করা র্যান্ডম UUID4 (App Check ডকুমেন্টেশনে এটিকে _ডিবাগ টোকেন_ বলা হয়) পাবেন। Firebase কনসোলে এই টোকেন যোগ করুন।
- আরও তথ্য ও নির্দেশাবলীর জন্য, App Check ডকুমেন্টেশন দেখুন।
CI এনভায়রনমেন্টে আপনার অ্যাপ রান করতে:
- Firebase কনসোল থেকে একটি র্যান্ডম UUID4 জেনারেট করুন।
- ডিবাগ টোকেন হিসেবে UUID4 যোগ করুন এবং তারপরে এটি একটি সিক্রেট স্টোরে কপি করুন যা CI টেস্ট প্রতিটি টেস্ট রান অনুযায়ী অ্যাক্সেস করবে।
- আরও তথ্য ও নির্দেশাবলীর জন্য, App Check ডকুমেন্টেশন দেখুন।
ধাপ ৬: আপনার অ্যাপের অনুরোধ মনিটর করা এবং এনফোর্সমেন্ট সংক্রান্ত সিদ্ধান্ত নেওয়া
এনফোর্সমেন্ট শুরু করার আগে, আপনি নিশ্চিত করতে চাইবেন যে আপনার অ্যাপের বৈধ ব্যবহারকারীদের কোনও সমস্যা হবে না। এটি করতে, আপনার অ্যাপের ট্রাফিকের কত শতাংশ যাচাই করা, পুরনো বা অবৈধ তা দেখতে App Check মেট্রিক্স স্ক্রিনে যান। আপনার বেশিরভাগ ট্রাফিক যাচাই করা হয়েছে বলে দেখতে পেলে, আপনি এনফোর্সমেন্ট চালু করতে পারবেন।
আরও তথ্য ও নির্দেশাবলীর জন্য Firebase App Check ডকুমেন্টেশন দেখুন।