আপনার API key সুরক্ষিত করতে অ্যাপ চেক ব্যবহার করুন
Firebase App Check আপনার অ্যাপ থেকে Google Maps Platform-এ করা কলের জন্য সুরক্ষা প্রদান করে। এটি বৈধ অ্যাপ ছাড়া অন্য সোর্স থেকে আসা ট্রাফিক ব্লক করে। Play Integrity-এর মতো অ্যাটেস্টেশন প্রদানকারীর থেকে পাওয়া টোকেন চেক করে এটি করা হয়। আপনার অ্যাপকে App Check-এর সাথে ইন্টিগ্রেট করলে তা ক্ষতিকর অনুরোধের বিরুদ্ধে সুরক্ষা দিতে সাহায্য করে, ফলে অননুমোদিত API কলের জন্য আপনাকে চার্জ করা হয় না।
App Check কি আমার জন্য সঠিক?
বেশিরভাগ ক্ষেত্রে অ্যাপ চেক করার জন্য সাজেস্ট করা হয়, তবে নিম্নলিখিত ক্ষেত্রে অ্যাপ চেক করার প্রয়োজন নেই বা এটি কাজ করে না:
- আপনি আসল Places SDK ব্যবহার করছেন। App Check শুধুমাত্র Places SDK (নতুন)-এর জন্য কাজ করে।
- ব্যক্তিগত বা এক্সপেরিমেন্টাল অ্যাপ। আপনার অ্যাপ সর্বজনীনভাবে অ্যাক্সেসযোগ্য না হলে, App Check-এর প্রয়োজন নেই।
- আপনার অ্যাপ শুধুমাত্র সার্ভার-টু-সার্ভার ব্যবহার করা হলে, অ্যাপ চেক করার প্রয়োজন নেই। তবে, GMP-এর সাথে যোগাযোগকারী সার্ভার যদি সর্বজনীন ক্লায়েন্ট (যেমন মোবাইল অ্যাপ) ব্যবহার করে, তাহলে GMP-এর পরিবর্তে সেই সার্ভারকে সুরক্ষিত রাখতে অ্যাপ চেক ব্যবহার করার কথা বিবেচনা করুন।
- আপনার অ্যাটেস্টেশন প্রোভাইডার যেসব ডিভাইসকে আপোস করা বা অবিশ্বাস্য বলে মনে করে, সেগুলিতে App Check-এর সাজেস্ট করা অ্যাটেস্টেশন প্রোভাইডার কাজ করবে না। এই ধরনের ডিভাইসের জন্য সহায়তা প্রয়োজন হলে, আপনি কাস্টম অ্যাটেস্টেশন পরিষেবা ডেপ্লয় করতে পারেন। আরও তথ্যের জন্য, নির্দেশাবলী দেখুন।
প্রয়োগ করার ধাপের ওভারভিউ
এক নজরে, App Check-এর সাথে আপনার অ্যাপ ইন্টিগ্রেট করার জন্য আপনাকে এইসব ধাপ অনুসরণ করতে হবে:
- আপনার অ্যাপে Firebase যোগ করুন।
- App Check লাইব্রেরি যোগ করে ইনিশিয়ালাইজ করুন।
- টোকেন প্রদানকারীকে যোগ করুন।
- ডিবাগিং চালু করুন।
- আপনার অ্যাপের অনুরোধ মনিটর করুন এবং এনফোর্সমেন্ট সম্পর্কে সিদ্ধান্ত নিন।
App Check-এর সাথে ইন্টিগ্রেট করার পরে, আপনি Firebase কনসোলে ব্যাকএন্ড ট্রাফিক মেট্রিক দেখতে পাবেন। এইসব মেট্রিক, অনুরোধের সাথে সঠিক অ্যাপ চেক টোকেন আছে কিনা তার ভিত্তিতে অনুরোধের ব্রেকডাউন প্রদান করে। আরও তথ্যের জন্য Firebase App Check ডকুমেন্টেশন দেখুন।
আপনি যখন নিশ্চিত হবেন যে বেশিরভাগ অনুরোধই বৈধ সোর্স থেকে এসেছে এবং ব্যবহারকারীরা আপনার অ্যাপের লেটেস্ট ভার্সনে আপডেট করেছেন, যার মধ্যে অ্যাপ চেক প্রয়োগ করা আছে, তখন আপনি এনফোর্সমেন্ট চালু করতে পারবেন। এনফোর্সমেন্ট চালু হয়ে গেলে, App Check বৈধ টোকেন না থাকলে সব ট্রাফিক বাতিল করে দেবে।
App Check ইন্টিগ্রেশন প্ল্যান করার সময় বিবেচ্য বিষয়
আপনার ইন্টিগ্রেশন প্ল্যান করার সময় কিছু বিষয় বিবেচনা করতে হবে:
আমরা যে অ্যাটেস্টেশন প্রদানকারী সাজেস্ট করি, Play Integrity, সেটির স্ট্যান্ডার্ড API ব্যবহার টিয়ারের জন্য দৈনিক কল সীমা আছে। কলের সীমা সম্পর্কে আরও তথ্য পেতে, Google Play Integrity ডেভেলপার ডকুমেন্টেশনে সেট-আপ পৃষ্ঠা দেখুন।
এছাড়াও, আপনি কাস্টম অ্যাটেস্টেশন প্রোভাইডার ব্যবহার করার বিকল্প বেছে নিতে পারেন, যদিও এটি একটি উন্নত ব্যবহারের কেস। আরও তথ্যের জন্য, কাস্টম অ্যাপ চেক প্রোভাইডার প্রয়োগ করুন দেখুন।
-
আপনার অ্যাপের ব্যবহারকারীরা স্টার্ট-আপে কিছু লেটেন্সি অনুভব করবেন। তবে, এর পরে, যেকোনও পর্যায়ক্রমিক রি-অ্যাটেস্টেশন ব্যাকগ্রাউন্ডে ঘটবে এবং ব্যবহারকারীদের আর কোনও লেটেন্সি অনুভব করতে হবে না। স্টার্ট-আপে লেটেন্সির সঠিক পরিমাণ আপনার বেছে নেওয়া অ্যাটেস্টেশন প্রদানকারীর উপর নির্ভর করে।
App Check টোকেন যত সময়ের জন্য বৈধ থাকে (টাইম টু লিভ বা TTL) তার উপর নির্ভর করে কত ঘন ঘন আবার অ্যাটেস্ট করতে হবে। এই সময়সীমা Firebase কনসোল থেকে কনফিগার করা যাবে। TTL-এর প্রায় অর্ধেক সময় অতিবাহিত হয়ে গেলে আবার অ্যাটেস্টেশন করা হয়। আরও তথ্যের জন্য, আপনার অ্যাটেস্টেশন প্রদানকারীর জন্য Firebase ডকুমেন্ট দেখুন।
App Check-এর সাথে আপনার অ্যাপ ইন্টিগ্রেট করা
পূর্বশর্ত ও প্রয়োজনীয়তা
- Places SDK-এর 4.1 বা তার পরবর্তী ভার্সন ইন্টিগ্রেট করা আছে এমন অ্যাপ।
- আপনার অ্যাপের জন্য SHA-256 ফিঙ্গারপ্রিন্ট।
- আপনার অ্যাপের প্যাকেজের নাম।
- Cloud Console-এ আপনাকে অবশ্যই অ্যাপের মালিক হতে হবে।
- Cloud Console থেকে আপনার অ্যাপের প্রোজেক্ট আইডি প্রয়োজন হবে
ধাপ ১: আপনার অ্যাপে Firebase যোগ করুন
আপনার অ্যাপে Firebase যোগ করতে, Firebase ডেভেলপার ডকুমেন্টে দেওয়া নির্দেশাবলী অনুসরণ করুন।
ধাপ ২: App Check লাইব্রেরি যোগ করা এবং App Check শুরু করা
ডিফল্ট অ্যাটেস্টেশন প্রদানকারী Play Integrity ব্যবহার করা সম্পর্কিত তথ্যের জন্য, Android-এ Play Integrity-এর সাথে App Check ব্যবহার করা শুরু করুন দেখুন।
- আপনি আগে থেকে করে না থাকলে, আপনার অ্যাপে Places SDK ইন্টিগ্রেট করুন।
এরপরে, অ্যাপ চেক ও প্লেসেস ক্লায়েন্ট ইনিশিয়ালাইজ করুন।
// Initialize App Check FirebaseApp.initializeApp(/* context= */ this); FirebaseAppCheck firebaseAppCheck = FirebaseAppCheck.getInstance(); firebaseAppCheck.installAppCheckProviderFactory( PlayIntegrityAppCheckProviderFactory.getInstance()); // Initialize Places SDK Places.initializeWithNewPlacesApiEnabled(context, API_KEY); PlacesClient client = Places.createClient(context);.
ধাপ ৩: টোকেন প্রদানকারীকে যোগ করুন
Places API ইনিশিয়ালাইজ করার পরে, PlacesAppCheckTokenProvider সেট করতে setPlacesAppCheckTokenProvider() কল করুন।
Places.initializeWithNewPlacesApiEnabled(context, API_KEY); Places.setPlacesAppCheckTokenProvider(new TokenProvider()); PlacesClient client = Places.createClient(context);.
টোকেন ফেচার ইন্টারফেসের স্যাম্পেল প্রয়োগ এখানে দেওয়া হল:
/** Sample client implementation of App Check token fetcher interface. */ static class TokenProvider implements PlacesAppCheckTokenProvider { @Override public ListenableFuture<String> fetchAppCheckToken() { SettableFuture<String> future = SettableFuture.create(); FirebaseAppCheck.getInstance() .getAppCheckToken(false) .addOnSuccessListener( appCheckToken -> { future.set(appCheckToken.getToken()); }) .addOnFailureListener( ex -> { future.setException(ex); }); return future; } }
ধাপ ৪: ডিবাগিং চালু করুন (ঐচ্ছিক)
আপনি যদি নিজের অ্যাপ লোকালি ডেভেলপ ও টেস্ট করতে চান অথবা কন্টিনিউয়াস ইন্টিগ্রেশন (CI) এনভায়রনমেন্টে রান করাতে চান, তাহলে আপনার অ্যাপের একটি ডিবাগ বিল্ড তৈরি করতে পারবেন যা সঠিক অ্যাপ চেক টোকেন পাওয়ার জন্য একটি ডিবাগ সিক্রেট ব্যবহার করে। এটি আপনাকে ডিবাগ বিল্ডে আসল অ্যাটেস্টেশন প্রদানকারী ব্যবহার করা এড়াতে দেয়।
এমুলেটর বা টেস্ট ডিভাইসে আপনার অ্যাপ রান করাতে:
- আপনার
build.gradleফাইলে App Check লাইব্রেরি যোগ করুন। - আপনার ডিবাগ বিল্ডে ডিবাগ প্রোভাইডার ফ্যাক্টরি ব্যবহার করতে App Check কনফিগার করুন।
- অ্যাপটি চালু করুন, যা একটি লোকাল ডিবাগ টোকেন তৈরি করবে। Firebase কনসোলে এই টোকেন যোগ করুন।
- আরও তথ্য ও নির্দেশাবলীর জন্য, অ্যাপ চেক ডকুমেন্টেশন দেখুন।
CI এনভায়রনমেন্টে আপনার অ্যাপ রান করতে:
- Firebase কনসোলে একটি ডিবাগ টোকেন তৈরি করুন এবং আপনার CI সিস্টেমের সুরক্ষিত কী স্টোরে এটি যোগ করুন।
- আপনার
build.gradleফাইলে App Check লাইব্রেরি যোগ করুন। - ডিবাগ টোকেন ব্যবহার করার জন্য আপনার CI বিল্ড ভ্যারিয়েন্ট কনফিগার করুন।
- আপনার টেস্ট ক্লাসে কোড র্যাপ করুন যার জন্য
DebugAppCheckTestHelperসহ অ্যাপ চেক টোকেন প্রয়োজন। - আরও তথ্য ও নির্দেশাবলীর জন্য, অ্যাপ চেক ডকুমেন্টেশন দেখুন।
ধাপ ৫: আপনার অ্যাপের অনুরোধ মনিটর করুন এবং এনফোর্সমেন্ট সম্পর্কে সিদ্ধান্ত নিন
এনফোর্সমেন্ট শুরু করার আগে, আপনার অ্যাপের বৈধ ব্যবহারকারীদের যেন কোনও অসুবিধা না হয় তা নিশ্চিত করতে হবে। এটি করতে, আপনার অ্যাপের কত শতাংশ ট্রাফিক যাচাই করা, পুরনো বা অবৈধ তা দেখতে অ্যাপ চেক মেট্রিক্স স্ক্রিনে যান। আপনার বেশিরভাগ ট্রাফিক যাচাই করা হয়েছে বলে দেখতে পেলে, আপনি এনফোর্সমেন্ট চালু করতে পারবেন।
আরও তথ্য ও নির্দেশাবলীর জন্য Firebase অ্যাপ চেক ডকুমেন্টেশন দেখুন।