Catch up on everthing we announced at this year's Firebase Summit. Learn more

অ্যান্ড্রয়েডে সুরক্ষা নেট দিয়ে অ্যাপ চেক সক্ষম করুন

এই পৃষ্ঠাটি আপনাকে দেখায় কিভাবে একটি Android অ্যাপে অ্যাপ চেক সক্ষম করতে হয়, বিল্ট-ইন SafetyNet প্রদানকারী ব্যবহার করে। আপনি যখন অ্যাপ চেক সক্ষম করেন, তখন আপনি নিশ্চিত করতে সাহায্য করেন যে শুধুমাত্র আপনার অ্যাপ আপনার প্রকল্পের ফায়ারবেস সংস্থান অ্যাক্সেস করতে পারে। একটি দেখুন সংক্ষিপ্ত বিবরণ এই বৈশিষ্ট্যটির।

আপনি আপনার নিজস্ব প্রদানকারীর সাথে ব্যবহার করার অনুমতি দেয় চেক চান, দেখতে একটি কাস্টম অ্যাপ্লিকেশন চেক প্রদানকারী বাস্তবায়ন

1. আপনার Firebase প্রকল্প সেট আপ করুন

  1. আপনার অ্যান্ড্রয়েড প্রকল্পের Firebase যোগ করুন যদি আপনি ইতিমধ্যে এটি না করে।

  2. আপনার অ্যাপ্লিকেশান নিবন্ধন মধ্যে SafetyNet প্রদানকারীর সাথে ব্যবহার করার অনুমতি দেয় চেক প্রকল্প সেটিংস> অ্যাপ চেক Firebase কনসোলের অধ্যায়। আপনি করতে হবে রয়েছে SHA-256 আঙুলের ছাপ প্রদান আপনার অ্যাপ্লিকেশনের স্বাক্ষরের সার্টিফিকেটের।

    আপনাকে সাধারণত আপনার প্রকল্পের সমস্ত অ্যাপ নিবন্ধন করতে হবে, কারণ একবার আপনি একটি Firebase পণ্যের জন্য এনফোর্সমেন্ট সক্ষম করলে, শুধুমাত্র নিবন্ধিত অ্যাপগুলি পণ্যের ব্যাকএন্ড সংস্থানগুলি অ্যাক্সেস করতে সক্ষম হবে৷

  3. ঐচ্ছিক: অ্যাপ্লিকেশন নিবন্ধন সেটিংস একটি কাস্টম সময়-টু-লাইভ (TTL এর) সেট জন্য অ্যাপ চেক প্রদানকারীর দ্বারা জারি টোকেন। আপনি TTL 30 মিনিট থেকে 7 দিনের মধ্যে যেকোনো মান সেট করতে পারেন। এই মান পরিবর্তন করার সময়, নিম্নলিখিত ট্রেডঅফ সম্পর্কে সচেতন হন:

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

    1 ঘন্টা ডিফল্ট TTL এর সবচেয়ে অ্যাপসের জন্য যুক্তিসঙ্গত। মনে রাখবেন যে অ্যাপ চেক লাইব্রেরি টিটিএল সময়কালের প্রায় অর্ধেক সময়ে টোকেন রিফ্রেশ করে।

2. আপনার অ্যাপে অ্যাপ চেক লাইব্রেরি যোগ করুন

আপনার মডিউল (অ্যাপ্লিকেশান-স্তর) Gradle ফাইল (সাধারণত app/build.gradle ), নির্ভরতা ঘোষণা অ্যাপ Android এর জন্য গ্রন্থাগার চেক করুন:

জাভা

dependencies {
    implementation 'com.google.firebase:firebase-appcheck-safetynet:16.0.0-beta03'
}

কোটলিন+কেটিএক্স

dependencies {
    implementation 'com.google.firebase:firebase-appcheck-safetynet:16.0.0-beta03'
}

3. অ্যাপ চেক শুরু করুন

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

জাভা

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

কোটলিন+কেটিএক্স

FirebaseApp.initializeApp(/*context=*/this)
val firebaseAppCheck = FirebaseAppCheck.getInstance()
firebaseAppCheck.installAppCheckProviderFactory(
    SafetyNetAppCheckProviderFactory.getInstance()
)

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

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

4. অনুরোধের মেট্রিক্স মনিটর করুন

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

রিয়েলটাইম ডেটাবেস, ক্লাউড ফায়ারস্টোর এবং ক্লাউড স্টোরেজ

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

একটি পণ্য জন্য অ্যাপ চেক অনুরোধ বৈশিষ্ট্যের মান দেখার জন্য, খুলতে প্রকল্প সেটিংস> অ্যাপ চেক Firebase কনসোলের অধ্যায়। উদাহরণ স্বরূপ:

অ্যাপ চেক মেট্রিক্স পৃষ্ঠার স্ক্রিনশট

প্রতিটি পণ্যের জন্য অনুরোধের মেট্রিক্স চারটি বিভাগে বিভক্ত:

  • যাচাইকৃত অনুরোধ ঐ আছে একটি বৈধ অ্যাপ টোকেন চেক হয়। আপনি অ্যাপ চেক এনফোর্সমেন্ট সক্ষম করার পরে, শুধুমাত্র এই বিভাগের অনুরোধগুলি সফল হবে৷

  • সেকেলে ক্লায়েন্ট রিকোয়েস্ট ঐ যে একটি অ্যাপ চেক টোকেন অনুপস্থিত হয়। অ্যাপ চেক অ্যাপে অন্তর্ভুক্ত করার আগে এই অনুরোধগুলি Firebase SDK-এর পুরানো সংস্করণ থেকে হতে পারে।

  • অজানা উৎপত্তি অনুরোধ ঐ যে একটি অ্যাপ টোকেন চেক করুন অনুপস্থিত, এবং তাকান না তারা Firebase SDK এর থেকে আসা। এগুলি চুরি হওয়া API কীগুলির সাহায্যে করা অনুরোধ থেকে হতে পারে বা Firebase SDK ছাড়াই করা জাল অনুরোধ থেকে হতে পারে৷

  • অবৈধ অনুরোধ ঐ আছে একটি অবৈধ অ্যাপ টোকেন চেক করুন, যা একটি inauthentic ক্লায়েন্ট আপনার অ্যাপ, বা emulated পরিবেশের থেকে ছদ্মবেশ ধারণ করার চেষ্টা থেকে হতে পারেন।

আপনি যখন এনফোর্সমেন্ট সক্ষম করার সিদ্ধান্ত নেন তখন আপনার অ্যাপের জন্য এই বিভাগগুলির ডিস্ট্রিবিউশনকে জানানো উচিত। এখানে কিছু নির্দেশিকা আছে:

  • যদি সাম্প্রতিক অনুরোধগুলির প্রায় সবগুলিই যাচাইকৃত ক্লায়েন্টদের কাছ থেকে হয়, তাহলে আপনার ব্যাকএন্ড সংস্থানগুলিকে সুরক্ষিত করার জন্য এনফোর্সমেন্ট সক্ষম করার কথা বিবেচনা করুন৷

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

  • যদি আপনার অ্যাপটি এখনও চালু না হয়ে থাকে, তাহলে আপনাকে অবিলম্বে অ্যাপ চেক এনফোর্সমেন্ট সক্ষম করতে হবে, যেহেতু কোনও পুরানো ক্লায়েন্ট ব্যবহারে নেই৷

ক্লাউড ফাংশন

ক্লাউড ফাংশনগুলির জন্য, আপনি আপনার ফাংশনগুলির লগগুলি পরীক্ষা করে অ্যাপ চেক মেট্রিক্স পেতে পারেন৷ একটি কলযোগ্য ফাংশনের প্রতিটি আহ্বান নিম্নলিখিত উদাহরণের মতো একটি কাঠামোবদ্ধ লগ এন্ট্রি নির্গত করে:

{
  "severity": "INFO",    // INFO, WARNING, or ERROR
  "logging.googleapis.com/labels": {"firebase-log-type": "callable-request-verification"},
  "jsonPayload": {
    "message": "Callable header verifications passed.",
    "verifications": {
      // ...
      "app": "MISSING",  // VALID, INVALID, or MISSING
    }
  }
}

আপনি এটির Google ক্লাউড কনসোলে এই বৈশিষ্ট্যের মান বিশ্লেষণ করতে পারে ভিত্তিক লগ কাউন্টার মেট্রিক একটি তৈরি নিম্নলিখিত বৈশিষ্ট্যের মান ফিল্টার:

resource.type="cloud_function"
resource.labels.function_name="YOUR_CLOUD_FUNCTION"
resource.labels.region="us-central1"
labels.firebase-log-type="callable-request-verification"

মেট্রিক লেবেল ক্ষেত্র ব্যবহার jsonPayload.verifications.appCheck

5. এনফোর্সমেন্ট সক্ষম করুন

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

রিয়েলটাইম ডেটাবেস, ক্লাউড ফায়ারস্টোর এবং ক্লাউড স্টোরেজ

রিয়েলটাইম ডেটাবেস, ক্লাউড ফায়ারস্টোর (আইওএস এবং অ্যান্ড্রয়েড), এবং ক্লাউড স্টোরেজের জন্য এনফোর্সমেন্ট সক্ষম করতে:

  1. খুলুন প্রকল্প সেটিংস> অ্যাপ চেক Firebase কনসোলের অধ্যায়।

  2. আপনি যে পণ্যটির জন্য প্রয়োগ সক্ষম করতে চান তার মেট্রিক্স ভিউ প্রসারিত করুন।

  3. প্রয়োগ করি এবং আপনার পছন্দ Confirm ক্লিক করুন।

মনে রাখবেন যে এটি কার্যকর হওয়ার জন্য আপনি এনফোর্সমেন্ট সক্ষম করার পরে এটি 10 ​​মিনিট পর্যন্ত সময় নিতে পারে৷

ক্লাউড ফাংশন

দেখুন অ্যাপ মেঘ কার্যাবলী বলবৎকরণের চেক সক্ষম করুন

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

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

দেখুন অ্যাপ্লিকেশন ব্যবহার Android এর উপর ডিবাগ প্রদানকারীর সাথে চেক করুন