অ্যান্ড্রয়েডের জন্য নেভিগেশন এসডিকে সুরক্ষিত করতে অ্যাপ চেক ব্যবহার করুন।

ফায়ারবেস অ্যাপ চেক আপনার বৈধ অ্যাপগুলো ছাড়া অন্য উৎস থেকে আসা ট্র্যাফিক ব্লক করার মাধ্যমে আপনার অ্যাপ থেকে গুগল ম্যাপস প্ল্যাটফর্মে করা কলগুলোকে সুরক্ষা প্রদান করে। এটি প্লে ইন্টিগ্রিটির মতো কোনো অ্যাটেস্টেশন প্রোভাইডারের কাছ থেকে অ্যাপ বা ডিভাইসের সত্যতা যাচাইয়ের অনুরোধ করে এই কাজটি করে থাকে। যখন আপনি আপনার অ্যাপকে অ্যাপ চেকের সাথে ইন্টিগ্রেট করেন, তখন আপনি ক্ষতিকর এবং অননুমোদিত অনুরোধের বিরুদ্ধে সুরক্ষা যোগ করেন, যা ফলস্বরূপ আপনার বিলিংকে অননুমোদিত চার্জ থেকে রক্ষা করে। অ্যাপ চেক আপনার ফ্লিট অ্যাপ ইকোসিস্টেমে রিয়েল-টাইম বিঘ্ন রিপোর্টিংকেও উল্লেখযোগ্যভাবে উন্নত করে, যার ফলে আপনার অ্যাপ ব্যবহারকারী সকল ড্রাইভার উপকৃত হন। আরও তথ্যের জন্য, বিঘ্ন রিপোর্টিং দেখুন।

অ্যাপ চেক কেন ব্যবহার করবেন?

অ্যাপ চেক অ্যান্ড্রয়েডের জন্য নেভিগেশন এসডিকে-এর দুটি স্বতন্ত্র ক্ষেত্রকে সুরক্ষিত করে: মূল নেভিগেশন কার্যকারিতা এবং বিঘ্ন প্রতিবেদন।

অ্যাপ চেক ক্ষতিকর বা অননুমোদিত উৎস থেকে আসা অ্যান্ড্রয়েডের জন্য প্রধান নেভিগেশন এসডিকে (SDK) অনুরোধগুলিকে ব্লক করতে সাহায্য করে। এটি আপনার প্রকল্পকে বিলিং জালিয়াতি এবং কোটা শেষ হয়ে যাওয়া থেকে রক্ষা করে আপনাকে সরাসরি উপকৃত করে।

বিঘ্ন প্রতিবেদন

আপনার অ্যাপে যদি রিয়েল-টাইম বিঘ্ন রিপোর্ট করার এবং ভোট দেওয়ার সুবিধা থাকে, তবে অ্যাপ চেক ব্যবহার করার জন্য জোরালোভাবে সুপারিশ করা হচ্ছে। অ্যাপ চেক চালু করলে, সমস্ত রিয়েল-টাইম ফিডব্যাক বিবেচনা করে আপনার ড্রাইভারদের সবচেয়ে সঠিক রুট সরবরাহ করা নিশ্চিত হয়।

রিপোর্টিংয়ের জন্য অ্যাপ চেক কেন গুরুত্বপূর্ণ:

  • রাস্তা বন্ধের ক্ষেত্রে উচ্চ বিশ্বাসযোগ্যতার মানদণ্ড: রাস্তা বন্ধের মতো রুট-প্রভাবিত ঘটনাগুলো সকল চালকের রুট নির্ধারণের আচরণকে উল্লেখযোগ্যভাবে পরিবর্তন করতে পারে। সম্ভাব্য ভাঙচুর, স্প্যাম বা ভুল রিপোর্টিং থেকে ম্যাপকে সুরক্ষিত রাখতে, রাস্তা বন্ধের কারণে সৃষ্ট বিঘ্নের জন্য গুগলের মডারেশন পরিকাঠামো শক্তিশালী ডিভাইস এবং অ্যাপের নির্ভরযোগ্যতার সংকেতের উপর নির্ভর করে।
  • অ্যাপ চেক যেভাবে রিপোর্ট যাচাই করে: অ্যান্ড্রয়েডের জন্য নেভিগেশন এসডিকে থেকে পাঠানো ব্যবহারকারীর রিপোর্ট এবং ভোটে অ্যাপ চেক টোকেন অন্তর্ভুক্ত থাকে, যা গুগলের ব্যাকএন্ড ফিডব্যাকের বৈধতা যাচাই করতে ব্যবহার করে। এটি রিপোর্টের বিশ্বাসযোগ্যতার স্তর বাড়ায় এবং লাইভ ম্যাপে এর প্রভাব মূল্যায়নের সুযোগ করে দেয়।
  • অ্যাপ চেক বাদ দেওয়ার প্রভাব: বৈধ অ্যাপ চেক টোকেন ছাড়া জমা দেওয়া রিপোর্টগুলো কম নির্ভরযোগ্য মডেলের অধীনে মূল্যায়ন করা হয় এবং শুধুমাত্র নীরব সংকেত হিসেবে বিবেচিত হতে পারে। এর মানে হলো, যদিও আপনার ব্যবহারকারীরা রিপোর্ট করতে এবং ভোট দিতে পারবেন, তাদের রিপোর্টগুলো ম্যাপে দৃশ্যমান হওয়ার বা অন্য চালকদের রুটকে প্রভাবিত করার সম্ভাবনা কম থাকবে এবং এর জন্য অতিরিক্ত যাচাইকরণের প্রয়োজন হবে।

অ্যাপ চেক কি আমার জন্য উপযুক্ত?

বেশিরভাগ ক্ষেত্রে অ্যাপ চেক করার পরামর্শ দেওয়া হয়; তবে, নিম্নলিখিত পরিস্থিতিগুলিতে অ্যাপ চেকের প্রয়োজন নেই বা এটি সমর্থিত নয়:

  • ব্যক্তিগত বা পরীক্ষামূলক অ্যাপ: আপনার অ্যাপটি যদি সর্বজনীনভাবে অ্যাক্সেসযোগ্য না হয়, তাহলে অ্যাপ চেকের প্রয়োজন নেই।
  • ঝুঁকিপূর্ণ ডিভাইস: প্রস্তাবিত অ্যাটেস্টেশন প্রোভাইডারগুলো রুটেড বা জেলব্রেক করা ফোনের মতো অবিশ্বস্ত ডিভাইসে অ্যান্ড্রয়েডের জন্য নেভিগেশন এসডিকে (Navigation SDK for Android) চলতে বাধা দেয়। এই ডিভাইসগুলোকে সমর্থন করার জন্য, একটি কাস্টম অ্যাটেস্টেশন প্রোভাইডার স্থাপন করুন।
  • নন-জিএমএস অ্যান্ড্রয়েড ডিভাইস: প্লে ইন্টিগ্রিটির জন্য অ্যান্ড্রয়েড ডিভাইসগুলিতে অবশ্যই গুগল মোবাইল সার্ভিসেস (জিএমএস) চালু থাকতে হবে। আপনি যদি নন-জিএমএস অ্যান্ড্রয়েড ডিভাইস সমর্থন করার পরিকল্পনা করেন, তবে একটি কাস্টম অ্যাটেস্টেশন প্রোভাইডার স্থাপন করুন।

বাস্তবায়নের ধাপগুলোর সংক্ষিপ্ত বিবরণ

মোটামুটিভাবে, অ্যাপ চেক-এর সাথে আপনার অ্যাপকে সংযুক্ত করতে আপনি এই ধাপগুলো অনুসরণ করবেন:

  1. আপনার অ্যাপে Firebase যোগ করুন।
  2. অ্যাপ চেক লাইব্রেরিটি যোগ করুন এবং অ্যাপ চেক চালু করুন।
  3. একটি টোকেন প্রোভাইডার যোগ করুন। এই ধাপটি ডিভাইস বা অ্যাপের অখণ্ডতা যাচাই করার জন্য আপনার পছন্দের অ্যাটেস্টেশন প্রোভাইডারকে সক্রিয় করে।
  4. নেভিগেশন এবং অ্যাপ চেক এপিআইগুলো ইনিশিয়ালাইজ করুন।
  5. ডিবাগিং সক্ষম করুন। এটি ডেভেলপমেন্টের সময় অথবা কন্টিনিউয়াস ইন্টিগ্রেশন (CI) পরিবেশে উপযোগী।
  6. প্রয়োগ ব্যবস্থা চালু করার আগে আপনার অ্যাপ অনুরোধগুলো নিরীক্ষণ করুন। এর মাধ্যমে, আপনি আপনার ব্যবহারকারীদের কোনো অসুবিধা না করেই নির্বিঘ্নে অ্যাপ চেক প্রয়োগ করতে পারবেন।

অ্যাপ চেক ইন্টিগ্রেশন পরিকল্পনা করার সময় বিবেচ্য বিষয়সমূহ

  • অ্যাটেস্টেশন প্রোভাইডার কোটা: আমরা যে অ্যাটেস্টেশন প্রোভাইডার, প্লে ইন্টিগ্রিটি, সুপারিশ করি, তার স্ট্যান্ডার্ড এপিআই ব্যবহারের স্তরের জন্য একটি দৈনিক কল সীমা রয়েছে। কল সীমা সম্পর্কে আরও তথ্যের জন্য, গুগল প্লে ইন্টিগ্রিটি ডেভেলপার ডকুমেন্টেশনের সেটআপ পৃষ্ঠাটি দেখুন।
  • স্টার্টআপ ল্যাটেন্সি: বেশিরভাগ ক্ষেত্রে, আপনার ব্যবহারকারীরা সাধারণ ব্যবহারের সময় কোনো ল্যাটেন্সি অনুভব করবেন না, কারণ অ্যাপ চেক টোকেনগুলো ডিভাইসে ক্যাশ করা থাকে। নিরবচ্ছিন্ন পারফরম্যান্স বজায় রাখার জন্য, মেয়াদ শেষ হওয়ার আগে সিস্টেমটি স্বয়ংক্রিয়ভাবে ব্যাকগ্রাউন্ডে অ্যাপ চেক টোকেনগুলো রিফ্রেশ করে। তবে, যদি একটি বৈধ অ্যাপ চেক টোকেন উপস্থিত না থাকে, তাহলে আপনার অ্যাপ ব্যবহারকারীরা অ্যাপ চালুর সময় কিছুটা ল্যাটেন্সি অনুভব করবেন। উদাহরণস্বরূপ, কোল্ড স্টার্টের সময় এই ল্যাটেন্সি দেখা দেয়, যখন কোনো ক্যাশ করা টোকেনের মেয়াদ শেষ হয়ে যায় বা সেটি অনুপস্থিত থাকে।
  • টোকেন টিটিএল: টাইম টু লিভ (TTL) নির্ধারণ করে যে অ্যাপ চেক টোকেনটি রিফ্রেশ করার আগে কতক্ষণ পর্যন্ত বৈধ থাকবে। আপনি ফায়ারবেস কনসোলে এই সময়কাল ৩০ মিনিট থেকে ৭ দিন পর্যন্ত কনফিগার করতে পারেন। একটি নিরাপদ বেসলাইন হিসাবে ১ ঘণ্টার সময়কাল সুপারিশ করা হয়, কিন্তু SDK স্বয়ংক্রিয়ভাবে TTL সময়কালের প্রায় অর্ধেক সময়ে ব্যাকগ্রাউন্ড রিফ্রেশ করার চেষ্টা করে। ধাপে ধাপে কনসোল নির্দেশাবলীর জন্য, ফায়ারবেস অ্যাপ চেক ডকুমেন্টেশন দেখুন।

আপনার অ্যাপকে অ্যাপ চেকের সাথে একীভূত করুন

পূর্বশর্ত এবং প্রয়োজনীয়তা

  • অ্যাপটিতে অ্যান্ড্রয়েডের জন্য নেভিগেশন এসডিকে সংস্করণ ৭.৯ বা তার পরবর্তী সংস্করণ ইনস্টল করা থাকতে হবে।
  • আপনার অ্যাপের 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())

ধাপ ৫: ডিবাগিং সক্ষম করুন (ঐচ্ছিক)

Navigation SDK for Android-এর জন্য App Check চালু করার পর, আপনার অ্যাপের যে ফিচারগুলো Navigation SDK for Android-এর উপর নির্ভরশীল, সেগুলো সিমুলেটরে বা কন্টিনিউয়াস ইন্টিগ্রেশন (CI) এনভায়রনমেন্ট থেকে চলবে না, কারণ এই এনভায়রনমেন্টগুলো বৈধ ডিভাইস হিসেবে বিবেচিত হয় না। ডেভেলপমেন্ট এবং টেস্টিংয়ের সময় এই এনভায়রনমেন্টগুলোতে আপনার অ্যাপ চালানোর জন্য, আপনাকে প্রোডাকশন অ্যাটেস্টেশন প্রোভাইডারের পরিবর্তে App Check ডিবাগ প্রোভাইডার ব্যবহার করে আপনার অ্যাপের একটি ডিবাগ বিল্ড তৈরি করতে হবে।

  1. আপনার অ্যাপের build.gradle ফাইলে ডিবাগ প্রোভাইডার ডিপেন্ডেন্সিটি যোগ করুন:

    গ্রুভি (build.gradle)

    dependencies {
        implementation 'com.google.firebase:firebase-appcheck-debug'
    }
  2. আপনার ডিবাগ বিল্ডগুলিতে ডিবাগ প্রোভাইডার ফ্যাক্টরি ব্যবহার করার জন্য অ্যাপ চেক কনফিগার করুন:

    জাভা

    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(),
        )
    }
  3. আপনার অ্যাপটি একটি এমুলেটর বা ডিবাগ ডিভাইসে চালু করুন। অ্যাপ চেক আপনার লগক্যাট আউটপুটে একটি স্থানীয় ডিবাগ টোকেন প্রিন্ট করবে।
  4. এই ডিবাগ টোকেনটি কপি করে ফায়ারবেস কনসোলে রেজিস্টার করুন। আরও বিস্তারিত জানতে, ফায়ারবেস অ্যাপ চেক ডিবাগ প্রোভাইডার ডকুমেন্টেশন দেখুন।

ধাপ ৬: আপনার অ্যাপের অনুরোধগুলো পর্যবেক্ষণ করুন এবং তা কার্যকর করার বিষয়ে সিদ্ধান্ত নিন।

প্রয়োগ ব্যবস্থা চালু করার আগে, আপনার অ্যাপের অনুরোধগুলো পর্যবেক্ষণ করুন যাতে আপনি বৈধ ব্যবহারকারীদের কাজে কোনো ব্যাঘাত না ঘটান।

  1. যাচাইকৃত এবং যাচাইবিহীন ট্র্যাফিকের শতাংশ দেখতে Firebase কনসোলের অ্যাপ চেক মেট্রিক্স স্ক্রিনটি দেখুন।
  2. একবার আপনি নিশ্চিত হয়ে গেলে যে আপনার বেশিরভাগ ট্র্যাফিক যাচাইকৃত এবং বৈধ ব্যবহারকারীরা আপনার অ্যাপের এমন একটি সংস্করণে আপডেট করেছেন যাতে আপনার অ্যাপ চেক বাস্তবায়ন অন্তর্ভুক্ত রয়েছে, তখন এনফোর্সমেন্ট সক্ষম করুন।
  3. একবার এনফোর্সমেন্ট চালু হলে, অ্যাপ চেক বৈধ অ্যাপ চেক টোকেন ছাড়া সমস্ত ট্র্যাফিক প্রত্যাখ্যান করবে।