একটি কাস্টম অ্যাপ চেক প্রদানকারী প্রয়োগ করুন

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

  • আপনি অন্তর্নির্মিত প্রোভাইডারগুলো ছাড়া অন্য কোনো প্রোভাইডার ব্যবহার করতে চান।

  • আপনি বিল্ট-ইন প্রোভাইডারগুলোকে অসমর্থিত উপায়ে ব্যবহার করতে চান।

  • আপনি অ্যাপল, অ্যান্ড্রয়েড এবং ওয়েব ছাড়া অন্য প্ল্যাটফর্ম ব্যবহার করে ডিভাইস যাচাই করতে চান। উদাহরণস্বরূপ, আপনি ডেস্কটপ ওএস বা ইন্টারনেট-অফ-থিংস ডিভাইসের জন্য App Check প্রোভাইডার তৈরি করতে পারেন।

  • আপনি যেকোনো প্ল্যাটফর্মে আপনার নিজস্ব যাচাইকরণ কৌশল প্রয়োগ করতে চান।

সংক্ষিপ্ত বিবরণ

একটি কাস্টম App Check প্রোভাইডার বাস্তবায়ন করতে, আপনার একটি সুরক্ষিত ব্যাকএন্ড পরিবেশ প্রয়োজন যা Node.js Firebase Admin SDK চালাতে পারে। এটি Cloud Functions , Cloud Run- এর মতো কোনো কন্টেইনার প্ল্যাটফর্ম, অথবা আপনার নিজস্ব সার্ভার হতে পারে।

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

সাধারণত, আপনি এই সার্ভিসটিকে একটি REST বা gRPC এন্ডপয়েন্ট হিসেবে প্রকাশ করেন, কিন্তু এই বিস্তারিত বিষয়টি আপনার ইচ্ছার উপর নির্ভর করে।

টোকেন অধিগ্রহণ এন্ডপয়েন্ট তৈরি করুন

  1. Admin SDK ইনস্টল এবং চালু করুন

  2. একটি নেটওয়ার্ক-অ্যাক্সেসযোগ্য এন্ডপয়েন্ট তৈরি করুন যা আপনার ক্লায়েন্টদের কাছ থেকে প্রমাণীকরণ ডেটা গ্রহণ করতে পারে। উদাহরণস্বরূপ, Cloud Functions ব্যবহার করে:

    // Create endpoint at https://example-app.cloudfunctions.net/fetchAppCheckToken
    exports.fetchAppCheckToken = functions.https.onRequest((request, response) => {
      // ...
    });
    
  3. ডেটার সত্যতা যাচাইকারী এন্ডপয়েন্ট লজিকটিতে এটি যোগ করুন। এটি আপনার কাস্টম App Check প্রোভাইডারের মূল লজিক, যা আপনাকে নিজেই লিখতে হবে।

  4. যদি আপনি ক্লায়েন্টটিকে খাঁটি বলে নির্ধারণ করেন, তাহলে Admin SDK ব্যবহার করে একটি App Check টোকেন তৈরি করুন এবং সেটি ও তার মেয়াদ শেষ হওয়ার সময় ক্লায়েন্টকে ফেরত দিন:

    const admin = require('firebase-admin');
    admin.initializeApp();
    
    // ...
    
    admin.appCheck().createToken(appId)
        .then(function (appCheckToken) {
          // Token expires in an hour.
          const expiresAt = Math.floor(Date.now() / 1000) + 60 * 60;
    
          // Return appCheckToken and expiresAt to the client.
        })
       .catch(function (err) {
         console.error('Unable to create App Check token.');
         console.error(err);
       });
    

    যদি আপনি ক্লায়েন্টের সত্যতা যাচাই করতে না পারেন, তাহলে একটি ত্রুটি ফেরত দিন (উদাহরণস্বরূপ, একটি HTTP 403 ত্রুটি ফেরত দিন)।

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

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

    বেশিরভাগ অ্যাপের জন্য ১ ঘণ্টার ডিফল্ট TTL যুক্তিসঙ্গত।

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

এখন যেহেতু আপনি আপনার কাস্টম প্রোভাইডারের সার্ভার-সাইড লজিক প্রয়োগ করেছেন, এবার আপনার Apple , Android , এবং ওয়েব ক্লায়েন্ট থেকে এটি কীভাবে ব্যবহার করবেন তা শিখে নিন।