আপনার API key সুরক্ষিত করতে অ্যাপ চেক ব্যবহার করুন

Firebase App Check আপনার অ্যাপ থেকে Google Maps Platform-এ করা কলকে সুরক্ষিত রাখে। এটি বৈধ অ্যাপ ছাড়া অন্য সোর্স থেকে আসা ট্রাফিককে ব্লক করে। এটি reCAPTCHA Enterprise-এর মতো অ্যাটেস্টেশন প্রদানকারীর থেকে টোকেন চেক করার মাধ্যমে এটি করে। App Check-এর সাথে আপনার অ্যাপ ইন্টিগ্রেট করলে তা ক্ষতিকর অনুরোধের বিরুদ্ধে সুরক্ষা দিতে সাহায্য করে, তাই অননুমোদিত API কলের জন্য আপনাকে চার্জ করা হয় না।

App Check কি আমার জন্য সঠিক?

বেশিরভাগ ক্ষেত্রে App Check ব্যবহার করার সাজেশন দেওয়া হয়, তবে নিম্নলিখিত ক্ষেত্রে App Check-এর প্রয়োজন হয় না বা এটি কাজ করে না:

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

প্রয়োগ করার বিভিন্ন ধাপের ওভারভিউ

এক নজরে, App Check-এর সাথে আপনার অ্যাপ ইন্টিগ্রেট করার জন্য আপনাকে এইসব ধাপ অনুসরণ করতে হবে:

  1. আপনার অ্যাপে Firebase যোগ করুন।
  2. App Check লাইব্রেরি যোগ ও ইনিশিয়ালাইজ করুন।
  3. আপনার অ্যাপে টোকেন প্রদানকারী যোগ করুন।
  4. Places এবং App Check API শুরু করুন।
  5. ডিবাগিং চালু করুন।
  6. আপনার অ্যাপের অনুরোধ মনিটর করুন এবং এনফোর্সমেন্ট সম্পর্কে সিদ্ধান্ত নিন।

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

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

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

আপনার ইন্টিগ্রেশন প্ল্যান করার সময় কিছু বিষয় বিবেচনা করতে হবে:

  • আমরা যেসব অ্যাটেস্টেশন পরিষেবা প্রদানকারীর সাজেশন দিই, তার মধ্যে একটি হল reCAPTCHA Enterprise, যা প্রতি মাসে ১০,০০০-এর বেশি অ্যাসেসমেন্টের জন্য চার্জ করে।

    আমরা যে অন্য অ্যাটেস্টেশন প্রদানকারীর সাজেশন দিই, reCAPTCHA v3-এর একটি কোটা আছে, যার পরে ট্রাফিক মূল্যায়ন করা হবে না।

    আপনি কাস্টম অ্যাটেস্টেশন প্রদানকারী ব্যবহার করার বিকল্প বেছে নিতে পারেন, যদিও এটি একটি উন্নত ব্যবহারের কেস। আরও তথ্যের জন্য App Check ডকুমেন্টেশন দেখুন।

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

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

App Check-এর সাথে আপনার অ্যাপ ইন্টিগ্রেট করা

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

  • Maps JS API-এর লেটেস্ট সাপ্তাহিক বা ত্রৈমাসিক ভার্সন, Core এবং Places লাইব্রেরি লোড করা আছে এমন অ্যাপ।
  • Maps JS এবং Places API (নতুন) API চালু করা আছে এমন একটি ক্লাউড প্রোজেক্ট।
  • আপনাকে Cloud Console-এ অ্যাপের মালিক হতে হবে।
  • Cloud Console থেকে আপনার অ্যাপের প্রোজেক্ট আইডি প্রয়োজন হবে

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

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

ধাপ ২: App Check লাইব্রেরি যোগ করা এবং App Check শুরু করা

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

ধাপ ৩: Maps JS API লাইব্রেরি লোড করুন

  1. নিম্নলিখিত স্নিপেটে যেমন দেখানো হয়েছে সেইভাবে কোর, Maps ও Places লাইব্রেরি লোড করুন। আরও তথ্য ও নির্দেশাবলীর জন্য, Maps JavaScript API Place Class ডকুমেন্টেশন দেখুন।

    async function init() {
      const {Settings} = await google.maps.importLibrary('core');
      const {Map} = await google.maps.importLibrary('maps');
      const {Place} = await google.maps.importLibrary('places');
    }  

ধাপ ৪: Places এবং App Check API শুরু করুন

  1. Firebase কনসোলের মাধ্যমে প্রদান করা কনফিগারেশন ব্যবহার করে App Check শুরু করুন।
  2. Maps JS API-তে করা অনুরোধের সাথে App Check টোকেন আছে কিনা তা নিশ্চিত করুন:
      async function init() {
        const {Settings} = await google.maps.importLibrary('core');
        const {Map} = await google.maps.importLibrary('maps');
        const {Place} = await google.maps.importLibrary('places');
      
        const app = initializeApp({
          // Your firebase configuration object
        });
      
        // Pass your reCAPTCHA Enterprise site key to initializeAppCheck().
        const appCheck = initializeAppCheck(app, {
          provider: new ReCaptchaEnterpriseProvider(
            'abcdefghijklmnopqrstuvwxy-1234567890abcd',
          ),
      
          // Optional argument. If true, the SDK automatically refreshes App Check
          // tokens as needed.
          isTokenAutoRefreshEnabled: true,
        });
      
        Settings.getInstance().fetchAppCheckToken = () =>
            getToken(appCheck, /* forceRefresh = */ false);
      
        // Make a Places JS request
        const place = new Place({id: 'ChIJN5Nz71W3j4ARhx5bwpTQEGg'});
        await place.fetchFields({fields: ['*']});
      
        // Load a map
        map = new Map(document.getElementById("map"), {
          center: { lat: 37.4161493, lng: -122.0812166 },
          zoom: 8,
        });
      }  
      

ধাপ ৫: ডিবাগিং চালু করা (ঐচ্ছিক)

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

আপনার অ্যাপ লোকালি টেস্ট করতে:

  • ডেভেলপমেন্টের উদ্দেশ্যে ডিবাগ প্রোভাইডার অ্যাক্টিভেট করুন।
  • আপনি SDK-এর ডিবাগ লগ থেকে অটোমেটিক জেনারেট হওয়া র‍্যান্ডম UUID4 (অ্যাপ চেক সংক্রান্ত ডকুমেন্টেশনে এটিকে _ডিবাগ টোকেন_ বলা হয়) পাবেন। Firebase কনসোলে এই টোকেন যোগ করুন।
  • আরও তথ্য ও নির্দেশাবলীর জন্য, App Check ডকুমেন্টেশন দেখুন।

CI এনভায়রনমেন্টে আপনার অ্যাপ রান করতে:

  • Firebase কনসোল থেকে একটি র‍্যান্ডম UUID4 জেনারেট করুন।
  • ডিবাগ টোকেন হিসেবে UUID4 যোগ করুন এবং তারপরে এটি একটি সিক্রেট স্টোরে কপি করুন যা CI টেস্ট প্রতিটি টেস্ট রান অনুযায়ী অ্যাক্সেস করবে।
  • আরও তথ্য ও নির্দেশাবলীর জন্য, App Check ডকুমেন্টেশন দেখুন।

ধাপ ৬: আপনার অ্যাপের অনুরোধ মনিটর করা এবং এনফোর্সমেন্ট সংক্রান্ত সিদ্ধান্ত নেওয়া

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

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