Android-এ Play Integrity-এর সাথে অ্যাপ চেক ব্যবহার শুরু করুন

এই পৃষ্ঠাটি আপনাকে দেখাবে কিভাবে বিল্ট-ইন প্লে ইন্টিগ্রিটি প্রোভাইডার ব্যবহার করে একটি অ্যান্ড্রয়েড অ্যাপে App Check সক্রিয় করতে হয়। যখন আপনি App Check সক্রিয় করেন, তখন আপনি এটি নিশ্চিত করতে সাহায্য করেন যে শুধুমাত্র আপনার অ্যাপই আপনার প্রোজেক্টের ব্যাকএন্ড রিসোর্স অ্যাক্সেস করতে পারবে। এই ফিচারটির একটি ওভারভিউ দেখুন।

প্লে ইন্টিগ্রিটি প্রোভাইডার গুগল প্লে-তে, গুগল প্লে-র বাইরে, বা উভয় স্থানে প্রকাশিত অ্যান্ড্রয়েড অ্যাপগুলোকে সাপোর্ট করে। যদি আপনার ব্যবহারের ক্ষেত্রে এমন প্লে ইন্টিগ্রিটি ফিচারের প্রয়োজন হয় যা App Check দ্বারা ইমপ্লিমেন্ট করা হয়নি, অথবা যদি আপনি আপনার নিজস্ব কাস্টম প্রোভাইডারের সাথে App Check ব্যবহার করতে চান, তাহলে “একটি কাস্টম App Check প্রোভাইডার ইমপ্লিমেন্ট করুন” দেখুন।

১. আপনার ফায়ারবেস প্রজেক্ট সেট আপ করুন।

  1. আপনার অ্যান্ড্রয়েড প্রজেক্টে ফায়ারবেস যোগ করুন, যদি আগে থেকে তা না করে থাকেন।

  2. প্লে ইন্টিগ্রিটি এপিআই সক্রিয় করুন:

    1. গুগল প্লে কনসোলে আপনার অ্যাপটি নির্বাচন করুন, অথবা আগে থেকে যোগ করা না থাকলে যোগ করুন।

    2. রিলিজ সেকশনে, অ্যাপ ইন্টিগ্রিটি- তে ক্লিক করুন।

    3. পেজের প্লে ইন্টিগ্রিটি এপিআই (Play Integrity API) সেকশনে যান, ‘লিঙ্ক ক্লাউড প্রজেক্ট’ (Link Cloud project)- এ ক্লিক করুন, তারপর গুগল ক্লাউড প্রজেক্টের তালিকা থেকে আপনার ফায়ারবেস প্রজেক্টটি বেছে নিন। এখানে আপনি যে প্রজেক্টটি বেছে নেবেন, সেটি অবশ্যই সেই ফায়ারবেস প্রজেক্টের মতোই হতে হবে যেখানে আপনি আপনার অ্যাপটি রেজিস্টার করেছেন (পরবর্তী ধাপ দেখুন)।

  3. Firebase কনসোলের App Check বিভাগে Play Integrity প্রোভাইডারের সাথে App Check ব্যবহার করার জন্য আপনার অ্যাপগুলো রেজিস্টার করুন। এর জন্য আপনাকে আপনার অ্যাপের সাইনিং সার্টিফিকেটের SHA-256 ফিঙ্গারপ্রিন্ট প্রদান করতে হবে।

    সাধারণত আপনার প্রোজেক্টের সমস্ত অ্যাপ রেজিস্টার করতে হয়, কারণ একবার আপনি কোনো ফায়ারবেস প্রোডাক্টের জন্য এনফোর্সমেন্ট চালু করলে, শুধুমাত্র রেজিস্টার করা অ্যাপগুলোই সেই প্রোডাক্টের ব্যাকএন্ড রিসোর্স অ্যাক্সেস করতে পারবে।

  4. ঐচ্ছিক : অ্যাপ রেজিস্ট্রেশন সেটিংসে, প্রোভাইডার কর্তৃক ইস্যুকৃত App Check টোকেনগুলোর জন্য একটি কাস্টম টাইম-টু-লিভ (TTL) সেট করুন। আপনি TTL-এর মান ৩০ মিনিট থেকে ৭ দিনের মধ্যে যেকোনো একটিতে সেট করতে পারেন। এই মান পরিবর্তন করার সময়, নিম্নলিখিত সীমাবদ্ধতাগুলো সম্পর্কে সচেতন থাকুন:

    • নিরাপত্তা: কম TTL (টাইম টু লাইফ) আরও শক্তিশালী নিরাপত্তা প্রদান করে, কারণ এটি সেই সুযোগ কমিয়ে দেয় যার মধ্যে কোনো ফাঁস হওয়া বা হস্তগত টোকেন আক্রমণকারী দ্বারা অপব্যবহার করা যেতে পারে।
    • পারফরম্যান্স: কম TTL-এর অর্থ হলো আপনার অ্যাপকে আরও ঘন ঘন অ্যাটেস্টেশন করতে হবে। যেহেতু অ্যাপ অ্যাটেস্টেশন প্রক্রিয়াটি প্রতিবার সম্পন্ন হওয়ার সময় নেটওয়ার্ক অনুরোধে লেটেন্সি যোগ করে, তাই একটি কম TTL আপনার অ্যাপের পারফরম্যান্সকে প্রভাবিত করতে পারে।
    • কোটা ও খরচ: স্বল্প মেয়াদের টিটিএল (TTL) এবং ঘন ঘন পুনঃ-প্রত্যয়ন আপনার কোটা দ্রুত শেষ করে দেয়, এবং অর্থপ্রদত্ত পরিষেবার ক্ষেত্রে খরচ সম্ভাব্যভাবে বেশি হতে পারে। কোটা ও সীমা দেখুন।

    বেশিরভাগ অ্যাপের জন্য ১ ঘণ্টার ডিফল্ট TTL যুক্তিসঙ্গত। উল্লেখ্য যে, App Check লাইব্রেরিটি TTL মেয়াদের প্রায় অর্ধেক সময়ে টোকেন রিফ্রেশ করে।

উন্নত সেটিংস কনফিগার করুন (ঐচ্ছিক)

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

আপনার অ্যাপের বিতরণ চ্যানেল PLAY_RECOGNIZED লাইসেন্সপ্রাপ্ত ডিভাইসের ন্যূনতম গ্রহণযোগ্য অখণ্ডতা স্তর
শুধুমাত্র গুগল প্লে-তে প্রয়োজনীয় প্রয়োজনীয় ডিভাইসের অখণ্ডতা স্তর স্পষ্টভাবে পরীক্ষা করবেন না।
শুধুমাত্র গুগল প্লে-এর বাইরে প্রয়োজন নেই প্রয়োজন নেই ডিভাইসের অখণ্ডতা
গুগল প্লে-তে এবং গুগল প্লে-র বাইরে প্রয়োজনীয় প্রয়োজন নেই ডিভাইসের অখণ্ডতা স্তর স্পষ্টভাবে পরীক্ষা করবেন না।

বিস্তারিত

প্রতিটি উন্নত সেটিং একটি প্লে ইন্টিগ্রিটি ভারডিক্ট লেবেলের সাথে সম্পর্কিত। অতিরিক্ত বিবরণের জন্য প্লে ইন্টিগ্রিটি ডকুমেন্টেশন দেখুন।

  • ডিফল্টরূপে, App Check জন্য PLAY_RECOGNIZED অ্যাপ রিকগনিশন লেবেলটি প্রয়োজন। যেসব অ্যাপ গুগল প্লে-তে প্রকাশিত হয়নি, সেগুলো এই লেবেলটি পাওয়ার যোগ্য নয়।
  • ডিফল্টরূপে, App Check LICENSED অ্যাপ লাইসেন্সিং লেবেলটির প্রয়োজন হয় না। শুধুমাত্র সেইসব ব্যবহারকারীই এই লেবেলটি পাওয়ার যোগ্য, যারা সরাসরি গুগল প্লে থেকে আপনার অ্যাপটি ইনস্টল বা আপডেট করেছেন।
  • ডিফল্টরূপে, App Check ডিভাইসের অখণ্ডতার রায় স্পষ্টভাবে যাচাই করে না। App Check নিম্নলিখিত তিনটি ডিভাইসের অখণ্ডতার স্তর স্পষ্টভাবে যাচাই করা সমর্থন করে, যা ক্রমবর্ধমান অখণ্ডতার ক্রমানুসারে তালিকাভুক্ত করা হয়েছে।

    • বেসিক ইন্টিগ্রিটি । এর ফলে App Check জন্য MEETS_BASIC_INTEGRITY ডিভাইস রিকগনিশন লেবেলটির প্রয়োজন হয়। আপনার অ্যাপটি এই ঐচ্ছিক লেবেলটি পাওয়ার যোগ্য হতে হলে, আপনাকে প্রথমে গুগল প্লে কনসোল থেকে এটি বেছে নিতে হবে।

    • ডিভাইসের অখণ্ডতা । এর ফলে App Check জন্য MEETS_DEVICE_INTEGRITY ডিভাইস শনাক্তকরণ লেবেলটির প্রয়োজন হয়। সমস্ত অ্যাপ স্বয়ংক্রিয়ভাবে এই লেবেলটি পাওয়ার যোগ্য।

    • শক্তিশালী অখণ্ডতা । এর ফলে App Check জন্য MEETS_STRONG_INTEGRITY ডিভাইস শনাক্তকরণ লেবেলটির প্রয়োজন হয়। আপনার অ্যাপটি এই ঐচ্ছিক লেবেলটি পাওয়ার যোগ্য হতে হলে, আপনাকে প্রথমে গুগল প্লে কনসোল থেকে এটি বেছে নিতে হবে।

২. আপনার অ্যাপে App Check লাইব্রেরিটি যুক্ত করুন

আপনার মডিউল (অ্যাপ-লেভেল) গ্রেডল ফাইলে (সাধারণত <project>/<app-module>/build.gradle.kts অথবা <project>/<app-module>/build.gradle ), অ্যান্ড্রয়েডের জন্য App Check লাইব্রেরির ডিপেন্ডেন্সি যোগ করুন। লাইব্রেরির ভার্সনিং নিয়ন্ত্রণের জন্য আমরা Firebase Android BoM ব্যবহার করার পরামর্শ দিই।

dependencies {
    // Import the BoM for the Firebase platform
    implementation(platform("com.google.firebase:firebase-bom:34.11.0"))

    // Add the dependencies for the App Check libraries
    // When using the BoM, you don't specify versions in Firebase library dependencies
    implementation("com.google.firebase:firebase-appcheck-playintegrity")
}

Firebase Android BoM ব্যবহার করলে, আপনার অ্যাপ সর্বদা Firebase Android লাইব্রেরিগুলোর সামঞ্জস্যপূর্ণ সংস্করণ ব্যবহার করবে।

(বিকল্প) BoM ব্যবহার না করে ফায়ারবেস লাইব্রেরি নির্ভরতা যোগ করুন

আপনি যদি Firebase BoM ব্যবহার না করার সিদ্ধান্ত নেন, তাহলে আপনাকে প্রতিটি Firebase লাইব্রেরির ভার্সন তার ডিপেন্ডেন্সি লাইনে উল্লেখ করতে হবে।

মনে রাখবেন, আপনি যদি আপনার অ্যাপে একাধিক Firebase লাইব্রেরি ব্যবহার করেন, তাহলে আমরা লাইব্রেরির ভার্সনগুলো পরিচালনা করার জন্য BoM অফ মেটেরিয়ালস) ব্যবহার করার জন্য দৃঢ়ভাবে সুপারিশ করি, যা সব ভার্সনের সামঞ্জস্যতা নিশ্চিত করে।

dependencies {
    // Add the dependencies for the App Check libraries
    // When NOT using the BoM, you must specify versions in Firebase library dependencies
    implementation("com.google.firebase:firebase-appcheck-playintegrity:19.0.2")
}

৩. App Check শুরু করুন

আপনার অ্যাপে নিম্নলিখিত ইনিশিয়ালাইজেশন কোডটি যোগ করুন, যাতে অন্য কোনো Firebase SDK ব্যবহার করার আগে এটি রান করে:

Kotlin

Firebase.initialize(context = this)
Firebase.appCheck.installAppCheckProviderFactory(
    PlayIntegrityAppCheckProviderFactory.getInstance(),
)

Java

FirebaseApp.initializeApp(/*context=*/ this);
FirebaseAppCheck firebaseAppCheck = FirebaseAppCheck.getInstance();
firebaseAppCheck.installAppCheckProviderFactory(
        PlayIntegrityAppCheckProviderFactory.getInstance());

পরবর্তী পদক্ষেপ

আপনার অ্যাপে App Check লাইব্রেরিটি ইনস্টল হয়ে গেলে, ব্যবহারকারীদের কাছে আপডেট করা অ্যাপটি বিতরণ করা শুরু করুন।

আপডেট করা ক্লায়েন্ট অ্যাপটি ফায়ারবেসে করা প্রতিটি অনুরোধের সাথে App Check টোকেন পাঠানো শুরু করবে, কিন্তু ফায়ারবেস কনসোলের App Check বিভাগে আপনি এনফোর্সমেন্ট সক্রিয় না করা পর্যন্ত ফায়ারবেস প্রোডাক্টগুলোর জন্য টোকেনগুলো বৈধ থাকার প্রয়োজন হবে না।

মেট্রিক নিরীক্ষণ করুন এবং প্রয়োগ সক্ষম করুন

তবে, এনফোর্সমেন্ট চালু করার আগে আপনার নিশ্চিত হয়ে নেওয়া উচিত যে, এর ফলে আপনার বিদ্যমান বৈধ ব্যবহারকারীদের কোনো অসুবিধা হবে না। অন্যদিকে, যদি আপনি আপনার অ্যাপের রিসোর্সের সন্দেহজনক ব্যবহার দেখতে পান, তাহলে আপনি আরও দ্রুত এনফোর্সমেন্ট চালু করতে চাইতে পারেন।

এই সিদ্ধান্ত নিতে সাহায্য করার জন্য, আপনি আপনার ব্যবহৃত পরিষেবাগুলোর App Check মেট্রিক্স দেখতে পারেন:

App Check প্রয়োগ সক্ষম করুন

যখন আপনি বুঝতে পারবেন App Check আপনার ব্যবহারকারীদের কীভাবে প্রভাবিত করবে এবং আপনি এগিয়ে যেতে প্রস্তুত হবেন, তখন আপনি App Check এনফোর্সমেন্ট সক্রিয় করতে পারেন:

ডিবাগ পরিবেশে App Check ব্যবহার করুন

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

অ্যান্ড্রয়েডে ডিবাগ প্রোভাইডারের সাথে App Check ব্যবহার দেখুন।