প্ল্যাটফর্ম নির্বাচন করুন: অ্যান্ড্রয়েড আইওএস জাভাস্ক্রিপ্ট

আপনার এপিআই কী সুরক্ষিত করতে অ্যাপ চেক ব্যবহার করুন।

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

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

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

  • আপনি মূল Places SDK ব্যবহার করছেন। অ্যাপ চেক শুধুমাত্র Places SDK (New)-এর জন্য সমর্থিত
  • ব্যক্তিগত বা পরীক্ষামূলক অ্যাপ। আপনার অ্যাপটি যদি সর্বজনীনভাবে অ্যাক্সেসযোগ্য না হয়, তাহলে অ্যাপ চেকের প্রয়োজন নেই।
  • আপনার অ্যাপটি যদি শুধু সার্ভার-টু-সার্ভার ব্যবহৃত হয়, তাহলে অ্যাপ চেকের প্রয়োজন নেই। তবে, জিএমপি-র সাথে যোগাযোগকারী সার্ভারটি যদি পাবলিক ক্লায়েন্ট (যেমন মোবাইল অ্যাপ) ব্যবহার করে, তাহলে জিএমপি-র পরিবর্তে সেই সার্ভারটিকে সুরক্ষিত করতে অ্যাপ চেক ব্যবহার করার কথা বিবেচনা করতে পারেন।
  • আপনার অ্যাটেস্টেশন প্রোভাইডারের দ্বারা আপোসকৃত বা অবিশ্বস্ত বলে বিবেচিত ডিভাইসগুলিতে অ্যাপ চেকের প্রস্তাবিত অ্যাটেস্টেশন প্রোভাইডাররা কাজ করবে না। যদি আপনার এই ধরনের ডিভাইসগুলিকে সমর্থন করার প্রয়োজন হয়, তবে আপনি একটি কাস্টম অ্যাটেস্টেশন পরিষেবা স্থাপন করতে পারেন। আরও তথ্যের জন্য, নির্দেশাবলী দেখুন।

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

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

  1. আপনার অ্যাপে Firebase যোগ করুন।
  2. অ্যাপ চেক লাইব্রেরিটি যোগ ও প্রারম্ভিকীকরণ করুন।
  3. টোকেন প্রদানকারীকে যুক্ত করুন।
  4. ডিবাগিং সক্ষম করুন।
  5. আপনার অ্যাপের অনুরোধগুলো পর্যবেক্ষণ করুন এবং প্রয়োগের বিষয়ে সিদ্ধান্ত নিন।

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

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

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

আপনার ইন্টিগ্রেশনের পরিকল্পনা করার সময় এখানে কিছু বিষয় বিবেচনা করার জন্য দেওয়া হলো:

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

    আপনি একটি কাস্টম অ্যাটেস্টেশন প্রোভাইডার ব্যবহার করার বিকল্পও বেছে নিতে পারেন, যদিও এটি একটি উন্নত ব্যবহারের ক্ষেত্র। আরও তথ্যের জন্য, "একটি কাস্টম অ্যাপ চেক প্রোভাইডার বাস্তবায়ন করুন" দেখুন।

  • আপনার অ্যাপের ব্যবহারকারীরা অ্যাপ চালু হওয়ার সময় কিছুটা ল্যাটেন্সি অনুভব করবেন। তবে, এরপরে, যেকোনো পর্যায়ক্রমিক পুনঃ-অ্যাটেস্টেশন ব্যাকগ্রাউন্ডে সম্পন্ন হবে এবং ব্যবহারকারীরা আর কোনো ল্যাটেন্সি অনুভব করবেন না। অ্যাপ চালু হওয়ার সময় ল্যাটেন্সির সঠিক পরিমাণ নির্ভর করে আপনার নির্বাচিত অ্যাটেস্টেশন প্রোভাইডারের উপর।

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

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

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

  • যে অ্যাপে প্লেসেস এসডিকে (Places SDK) সংস্করণ ৪.১ বা তার পরবর্তী সংস্করণ সমন্বিত আছে।
  • আপনার অ্যাপের SHA-256 ফিঙ্গারপ্রিন্ট।
  • আপনার অ্যাপের প্যাকেজ নাম।
  • আপনাকে অবশ্যই ক্লাউড কনসোলে অ্যাপটির মালিক হতে হবে।
  • ক্লাউড কনসোল থেকে আপনার অ্যাপটির প্রজেক্ট আইডি প্রয়োজন হবে।

ধাপ ১: আপনার অ্যাপে Firebase যোগ করুন

আপনার অ্যাপে Firebase যোগ করতে Firebase ডেভেলপার ডকুমেন্টেশনে দেওয়া নির্দেশাবলী অনুসরণ করুন।

ধাপ ২: অ্যাপ চেক লাইব্রেরি যোগ করুন এবং অ্যাপ চেক চালু করুন।

ডিফল্ট অ্যাটেস্টেশন প্রোভাইডার প্লে ইন্টিগ্রিটি ব্যবহারের তথ্যের জন্য, অ্যান্ড্রয়েডে প্লে ইন্টিগ্রিটি দিয়ে অ্যাপ চেক ব্যবহার শুরু করুন দেখুন।

  1. যদি এখনও না করে থাকেন, তাহলে আপনার অ্যাপে Places SDK যুক্ত করুন
  2. এরপর, অ্যাপ চেক এবং প্লেসেস ক্লায়েন্ট চালু করুন।

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

আপনার অ্যাপটি CI পরিবেশে চালানোর জন্য:

  • Firebase কনসোলে একটি ডিবাগ টোকেন তৈরি করুন এবং সেটি আপনার CI সিস্টেমের সুরক্ষিত কী স্টোরে যুক্ত করুন।
  • আপনার build.gradle ফাইলে App Check লাইব্রেরিটি যোগ করুন।
  • ডিবাগ টোকেন ব্যবহার করার জন্য আপনার CI বিল্ড ভ্যারিয়েন্টটি কনফিগার করুন।
  • আপনার টেস্ট ক্লাসের যে কোডগুলিতে অ্যাপ চেক টোকেন প্রয়োজন, সেগুলিকে DebugAppCheckTestHelper দিয়ে মুড়ে দিন।
  • আরও তথ্য ও নির্দেশাবলীর জন্য, অ্যাপ চেক ডকুমেন্টেশন দেখুন।

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

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

আরও তথ্য ও নির্দেশাবলীর জন্য Firebase App Check ডকুমেন্টেশন দেখুন।