অ্যান্ড্রয়েডের জন্য নেভিগেশন এসডিকে সুরক্ষিত করতে অ্যাপ চেক ব্যবহার করুন।
Firebase App Check provides protection for calls from your app to Google Maps Platform by blocking traffic that comes from sources other than your legitimate apps. It does this by requesting an evaluation of the app or device's authenticity from an attestation provider like Play Integrity . When you integrate your app with App Check, you add protection against malicious and unauthorized requests, which in turn protects your billing from unauthorized charges. App Check also significantly improves real-time disruption reporting in your fleet app ecosystem, thereby benefiting all the drivers who use your app. For more information, see Disruption reporting .
অ্যাপ চেক কেন ব্যবহার করবেন?
অ্যাপ চেক অ্যান্ড্রয়েডের জন্য নেভিগেশন এসডিকে-এর দুটি স্বতন্ত্র ক্ষেত্রকে সুরক্ষিত করে: মূল নেভিগেশন কার্যকারিতা এবং বিঘ্ন প্রতিবেদন।
নেভিগেশন
অ্যাপ চেক ক্ষতিকর বা অননুমোদিত উৎস থেকে আসা অ্যান্ড্রয়েডের জন্য প্রধান নেভিগেশন এসডিকে (SDK) অনুরোধগুলিকে ব্লক করতে সাহায্য করে। এটি আপনার প্রকল্পকে বিলিং জালিয়াতি এবং কোটা শেষ হয়ে যাওয়া থেকে রক্ষা করে আপনাকে সরাসরি উপকৃত করে।
বিঘ্ন প্রতিবেদন
আপনার অ্যাপে যদি রিয়েল-টাইম বিঘ্ন রিপোর্ট করার এবং ভোট দেওয়ার সুবিধা থাকে, তবে অ্যাপ চেক ব্যবহার করার জন্য জোরালোভাবে সুপারিশ করা হচ্ছে। অ্যাপ চেক চালু করলে, সমস্ত রিয়েল-টাইম ফিডব্যাক বিবেচনা করে আপনার ড্রাইভারদের সবচেয়ে সঠিক রুট সরবরাহ করা নিশ্চিত হয়।
রিপোর্টিংয়ের জন্য অ্যাপ চেক কেন গুরুত্বপূর্ণ:
- রাস্তা বন্ধের ক্ষেত্রে উচ্চ বিশ্বাসযোগ্যতার মানদণ্ড: রাস্তা বন্ধের মতো রুট-প্রভাবিত ঘটনাগুলো সকল চালকের রুট নির্ধারণের আচরণকে উল্লেখযোগ্যভাবে পরিবর্তন করতে পারে। সম্ভাব্য ভাঙচুর, স্প্যাম বা ভুল রিপোর্টিং থেকে ম্যাপকে সুরক্ষিত রাখতে, রাস্তা বন্ধের কারণে সৃষ্ট বিঘ্নের জন্য গুগলের মডারেশন পরিকাঠামো শক্তিশালী ডিভাইস এবং অ্যাপের নির্ভরযোগ্যতার সংকেতের উপর নির্ভর করে।
- অ্যাপ চেক যেভাবে রিপোর্ট যাচাই করে: অ্যান্ড্রয়েডের জন্য নেভিগেশন এসডিকে থেকে পাঠানো ব্যবহারকারীর রিপোর্ট এবং ভোটে অ্যাপ চেক টোকেন অন্তর্ভুক্ত থাকে, যা গুগলের ব্যাকএন্ড ফিডব্যাকের বৈধতা যাচাই করতে ব্যবহার করে। এটি রিপোর্টের বিশ্বাসযোগ্যতার স্তর বাড়ায় এবং লাইভ ম্যাপে এর প্রভাব মূল্যায়নের সুযোগ করে দেয়।
- অ্যাপ চেক বাদ দেওয়ার প্রভাব: বৈধ অ্যাপ চেক টোকেন ছাড়া জমা দেওয়া রিপোর্টগুলো কম নির্ভরযোগ্য মডেলে মূল্যায়ন করা হয় এবং শুধুমাত্র নীরব সংকেত হিসেবে বিবেচিত হতে পারে। এর মানে হলো, যদিও আপনার ব্যবহারকারীরা রিপোর্ট করতে এবং ভোট দিতে পারবেন, তাদের রিপোর্টগুলো ম্যাপে দৃশ্যমান হওয়ার বা অন্য চালকদের রুটকে প্রভাবিত করার সম্ভাবনা কম থাকবে এবং এর জন্য অতিরিক্ত যাচাইকরণের প্রয়োজন হবে।
অ্যাপ চেক কি আমার জন্য উপযুক্ত?
বেশিরভাগ ক্ষেত্রে অ্যাপ চেক করার পরামর্শ দেওয়া হয়; তবে, নিম্নলিখিত পরিস্থিতিগুলিতে অ্যাপ চেকের প্রয়োজন নেই বা এটি সমর্থিত নয়:
- ব্যক্তিগত বা পরীক্ষামূলক অ্যাপ: আপনার অ্যাপটি যদি সর্বজনীনভাবে অ্যাক্সেসযোগ্য না হয়, তাহলে অ্যাপ চেকের প্রয়োজন নেই।
- ঝুঁকিপূর্ণ ডিভাইস: প্রস্তাবিত অ্যাটেস্টেশন প্রোভাইডারগুলো রুটেড বা জেলব্রেক করা ফোনের মতো অবিশ্বস্ত ডিভাইসে অ্যান্ড্রয়েডের জন্য নেভিগেশন এসডিকে (Navigation SDK for Android) চলতে বাধা দেয়। এই ডিভাইসগুলোকে সমর্থন করার জন্য, একটি কাস্টম অ্যাটেস্টেশন প্রোভাইডার স্থাপন করুন।
- নন-জিএমএস অ্যান্ড্রয়েড ডিভাইস: প্লে ইন্টিগ্রিটির জন্য অ্যান্ড্রয়েড ডিভাইসগুলিতে অবশ্যই গুগল মোবাইল সার্ভিসেস (জিএমএস) চালু থাকতে হবে। আপনি যদি নন-জিএমএস অ্যান্ড্রয়েড ডিভাইস সমর্থন করার পরিকল্পনা করেন, তবে একটি কাস্টম অ্যাটেস্টেশন প্রোভাইডার স্থাপন করুন।
বাস্তবায়নের ধাপগুলোর সংক্ষিপ্ত বিবরণ
মোটামুটিভাবে, অ্যাপ চেক-এর সাথে আপনার অ্যাপকে সংযুক্ত করতে আপনি এই ধাপগুলো অনুসরণ করবেন:
- আপনার অ্যাপে Firebase যোগ করুন।
- অ্যাপ চেক লাইব্রেরিটি যোগ করুন এবং অ্যাপ চেক চালু করুন।
- একটি টোকেন প্রোভাইডার যোগ করুন। এই ধাপটি ডিভাইস বা অ্যাপের অখণ্ডতা যাচাই করার জন্য আপনার পছন্দের অ্যাটেস্টেশন প্রোভাইডারকে সক্রিয় করে।
- নেভিগেশন এবং অ্যাপ চেক এপিআইগুলো ইনিশিয়ালাইজ করুন।
- ডিবাগিং সক্ষম করুন। এটি ডেভেলপমেন্টের সময় অথবা কন্টিনিউয়াস ইন্টিগ্রেশন (CI) পরিবেশে উপযোগী।
- প্রয়োগ ব্যবস্থা চালু করার আগে আপনার অ্যাপ অনুরোধগুলো নিরীক্ষণ করুন। এর মাধ্যমে, আপনি আপনার ব্যবহারকারীদের কোনো অসুবিধা না করেই নির্বিঘ্নে অ্যাপ চেক প্রয়োগ করতে পারবেন।
অ্যাপ চেক ইন্টিগ্রেশন পরিকল্পনা করার সময় বিবেচ্য বিষয়সমূহ
- অ্যাটেস্টেশন প্রোভাইডার কোটা: আমরা যে অ্যাটেস্টেশন প্রোভাইডার, প্লে ইন্টিগ্রিটি, সুপারিশ করি, তার স্ট্যান্ডার্ড এপিআই ব্যবহারের স্তরের জন্য একটি দৈনিক কল সীমা রয়েছে। কল সীমা সম্পর্কে আরও তথ্যের জন্য, গুগল প্লে ইন্টিগ্রিটি ডেভেলপার ডকুমেন্টেশনের সেটআপ পৃষ্ঠাটি দেখুন।
- Startup Latency: In most situations, your users won't experience latency during regular use, because App Check tokens are cached on the device. The system automatically refreshes App Check tokens in the background before expiration to maintain seamless performance. However, if a valid App Check token isn't present, your app users will experience some latency on startup. For example, this latency occurs during cold starts when a cached token is expired or missing.
- Token TTL: Time to live (TTL) determines the amount of time for which the App Check token is valid before it needs to be refreshed. You can configure this duration from 30 minutes to 7 days in the Firebase console. A duration of 1 hour is recommended as a secure baseline, but the SDK automatically attempts background refreshes at approximately half the TTL duration. For step-by-step console instructions, see the Firebase App Check documentation .
আপনার অ্যাপকে অ্যাপ চেকের সাথে একীভূত করুন
পূর্বশর্ত এবং প্রয়োজনীয়তা
- অ্যাপটিতে অ্যান্ড্রয়েডের জন্য নেভিগেশন এসডিকে সংস্করণ ৭.৯ বা তার পরবর্তী সংস্করণ ইনস্টল করা থাকতে হবে।
- আপনার অ্যাপের SHA-256 সার্টিফিকেট ফিঙ্গারপ্রিন্ট।
- আপনার অ্যাপের প্যাকেজ নাম।
- আপনাকে অবশ্যই গুগল ক্লাউড কনসোলে অ্যাপটির মালিক হতে হবে।
- গুগল ক্লাউড কনসোল থেকে আপনার অ্যাপের প্রজেক্ট আইডি।
ধাপ ১: আপনার অ্যাপে Firebase যোগ করুন
আপনার অ্যাপে Firebase যোগ করতে Firebase ডেভেলপার ডকুমেন্টেশনের নির্দেশাবলী অনুসরণ করুন। আপনার google-services.json ফাইলটি আপনার প্রোজেক্টের অ্যাপ লেভেল ডিরেক্টরিতে যুক্ত করুন।
ধাপ ২: অ্যাপ চেক লাইব্রেরি যোগ করুন এবং অ্যাপ চেক চালু করুন।
আপনার অ্যাপের build.gradle ফাইলে App Check ডিপেন্ডেন্সিটি যোগ করুন:
গ্রুভি (build.gradle)
dependencies { // Import the Firebase BoM implementation platform('com.google.firebase:firebase-bom:34.17.0') // Add the dependency for the App Check library with Play Integrity implementation 'com.google.firebase:firebase-appcheck-playintegrity' }
আপনার অ্যাপ্লিকেশন ক্লাস বা মেইন অ্যাক্টিভিটিতে অ্যাপ চালু করার চেকটি করুন:
জাভা
import com.google.firebase.FirebaseApp; import com.google.firebase.appcheck.FirebaseAppCheck; import com.google.firebase.appcheck.playintegrity.PlayIntegrityAppCheckProviderFactory; // Initialize Firebase App FirebaseApp.initializeApp(/* context= */ this); // Initialize App Check FirebaseAppCheck firebaseAppCheck = FirebaseAppCheck.getInstance(); firebaseAppCheck.installAppCheckProviderFactory( PlayIntegrityAppCheckProviderFactory.getInstance());
কোটলিন
import com.google.firebase.Firebase import com.google.firebase.appcheck.appCheck import com.google.firebase.appcheck.playintegrity.PlayIntegrityAppCheckProviderFactory import com.google.firebase.initialize // Initialize Firebase App Firebase.initialize(context = this) // Initialize App Check Firebase.appCheck.installAppCheckProviderFactory( PlayIntegrityAppCheckProviderFactory.getInstance(), )
ধাপ ৩: টোকেন প্রদানকারী যোগ করুন
MapsAppCheckTokenProvider ইন্টারফেসটির একটি ইমপ্লিমেন্টেশন তৈরি করুন। এই প্রোভাইডারটি অ্যাসিঙ্ক্রোনাসভাবে Firebase App Check থেকে App Check টোকেনগুলি সংগ্রহ করে এবং MapsAppCheckTokenCallback ব্যবহার করে সেগুলিকে Navigation SDK for Android নেটওয়ার্ক স্ট্যাকে প্রেরণ করে।
জাভা
import com.google.android.gms.maps.MapsAppCheckTokenCallback; import com.google.android.gms.maps.MapsAppCheckTokenProvider; import com.google.firebase.appcheck.FirebaseAppCheck; public class NavigationTokenProvider implements MapsAppCheckTokenProvider { @Override public void fetchToken(MapsAppCheckTokenCallback callback) { FirebaseAppCheck.getInstance() .getAppCheckToken(false) // forcingRefresh = false .addOnSuccessListener( tokenResult -> { String token = tokenResult.getToken(); callback.onSuccess(token); }) .addOnFailureListener( e -> { callback.onFailure(); }); } }
কোটলিন
import com.google.android.gms.maps.MapsAppCheckTokenCallback import com.google.android.gms.maps.MapsAppCheckTokenProvider import com.google.firebase.appcheck.FirebaseAppCheck class NavigationTokenProvider : MapsAppCheckTokenProvider { override fun fetchToken(callback: MapsAppCheckTokenCallback) { FirebaseAppCheck.getInstance() .getAppCheckToken(false) .addOnSuccessListener { tokenResult -> callback.onSuccess(tokenResult.token) } .addOnFailureListener { callback.onFailure() } } }
ধাপ ৪: নেভিগেশন এবং অ্যাপ চেক এপিআইগুলো ইনিশিয়ালাইজ করুন
MapsApiSettings.setAppCheckTokenProvider() ব্যবহার করে Android-এর জন্য Navigation SDK চালু করুন এবং আপনার ইউনিফাইড টোকেন প্রোভাইডার ইনস্ট্যান্সটি রেজিস্টার করুন:
জাভা
import com.google.android.gms.maps.MapsApiSettings; // Register your App Check token provider before initializing Navigation SDK for Android MapsApiSettings.setAppCheckTokenProvider(context, new NavigationTokenProvider());
কোটলিন
import com.google.android.gms.maps.MapsApiSettings // Register your App Check token provider before initializing Navigation SDK for Android MapsApiSettings.setAppCheckTokenProvider(context, NavigationTokenProvider())
ধাপ ৫: ডিবাগিং সক্ষম করুন (ঐচ্ছিক)
After App Check is enforced for Navigation SDK for Android, your app's features that depend on Navigation SDK for Android won't run in a simulator or from a continuous integration (CI) environment because these environments don't qualify as valid devices. To run your app in these environments during development and testing, you need to create a debug build of your app that uses the App Check debug provider instead of a production attestation provider.
- আপনার অ্যাপের
build.gradleফাইলে ডিবাগ প্রোভাইডার ডিপেন্ডেন্সিটি যোগ করুন:গ্রুভি (build.gradle)
dependencies { implementation 'com.google.firebase:firebase-appcheck-debug' }
- আপনার ডিবাগ বিল্ডগুলিতে ডিবাগ প্রোভাইডার ফ্যাক্টরি ব্যবহার করার জন্য অ্যাপ চেক কনফিগার করুন:
জাভা
import com.google.firebase.appcheck.debug.DebugAppCheckProviderFactory; import com.google.firebase.appcheck.playintegrity.PlayIntegrityAppCheckProviderFactory; if (BuildConfig.DEBUG) { firebaseAppCheck.installAppCheckProviderFactory( DebugAppCheckProviderFactory.getInstance() ); } else { firebaseAppCheck.installAppCheckProviderFactory( PlayIntegrityAppCheckProviderFactory.getInstance() ); }
কোটলিন
import com.google.firebase.Firebase import com.google.firebase.appcheck.appCheck import com.google.firebase.appcheck.debug.DebugAppCheckProviderFactory import com.google.firebase.appcheck.playintegrity.PlayIntegrityAppCheckProviderFactory if (BuildConfig.DEBUG) { Firebase.appCheck.installAppCheckProviderFactory( DebugAppCheckProviderFactory.getInstance(), ) } else { Firebase.appCheck.installAppCheckProviderFactory( PlayIntegrityAppCheckProviderFactory.getInstance(), ) }
- আপনার অ্যাপটি একটি এমুলেটর বা ডিবাগ ডিভাইসে চালু করুন। অ্যাপ চেক আপনার লগক্যাট আউটপুটে একটি স্থানীয় ডিবাগ টোকেন প্রিন্ট করবে।
- এই ডিবাগ টোকেনটি কপি করে ফায়ারবেস কনসোলে রেজিস্টার করুন। আরও বিস্তারিত জানতে, ফায়ারবেস অ্যাপ চেক ডিবাগ প্রোভাইডার ডকুমেন্টেশন দেখুন।
ধাপ ৬: আপনার অ্যাপের অনুরোধগুলো পর্যবেক্ষণ করুন এবং তা কার্যকর করার বিষয়ে সিদ্ধান্ত নিন।
প্রয়োগ ব্যবস্থা চালু করার আগে, আপনার অ্যাপের অনুরোধগুলো পর্যবেক্ষণ করুন যাতে আপনি বৈধ ব্যবহারকারীদের কাজে কোনো ব্যাঘাত না ঘটান।
- যাচাইকৃত এবং যাচাইবিহীন ট্র্যাফিকের শতাংশ দেখতে Firebase কনসোলের অ্যাপ চেক মেট্রিক্স স্ক্রিনটি দেখুন।
- একবার আপনি নিশ্চিত হয়ে গেলে যে আপনার বেশিরভাগ ট্র্যাফিক যাচাইকৃত এবং বৈধ ব্যবহারকারীরা আপনার অ্যাপের এমন একটি সংস্করণে আপডেট করেছেন যাতে আপনার অ্যাপ চেক বাস্তবায়ন অন্তর্ভুক্ত রয়েছে, তখন এনফোর্সমেন্ট সক্ষম করুন।
- একবার এনফোর্সমেন্ট চালু হলে, অ্যাপ চেক বৈধ অ্যাপ চেক টোকেন ছাড়া সমস্ত ট্র্যাফিক প্রত্যাখ্যান করবে।