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

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

  • আপনি অন্তর্নির্মিত বেশী ছাড়া অন্য একটি প্রদানকারী ব্যবহার করতে চান.

  • আপনি অসমর্থিত উপায়ে অন্তর্নির্মিত প্রদানকারী ব্যবহার করতে চান।

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

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

ওভারভিউ

একটি কাস্টম App Check প্রদানকারী বাস্তবায়ন করতে, আপনার একটি নিরাপদ ব্যাকএন্ড পরিবেশ প্রয়োজন যা Node.js Firebase Admin SDK চালাতে পারে। এটি Cloud Functions , ক্লাউড রানের মতো একটি ধারক প্ল্যাটফর্ম বা আপনার নিজস্ব সার্ভার হতে পারে৷

এই পরিবেশ থেকে, আপনি একটি নেটওয়ার্ক-অ্যাক্সেসযোগ্য পরিষেবা প্রদান করবেন যা আপনার অ্যাপ ক্লায়েন্টদের কাছ থেকে সত্যতার প্রমাণ পায়, এবং-যদি সত্যতার প্রমাণ আপনার সত্যতা মূল্যায়নে উত্তীর্ণ হয়-একটি 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. আপনি যদি ক্লায়েন্টটিকে প্রামাণিক বলে নির্ধারণ করেন, তাহলে একটি App Check টোকেন মিন্ট করতে Admin SDK ব্যবহার করুন এবং এটি এবং এর মেয়াদ শেষ হওয়ার সময় ক্লায়েন্টকে ফেরত দিন:

    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. ঐচ্ছিক : createToken() এ একটি AppCheckTokenOptions অবজেক্ট পাস করে আপনার কাস্টম প্রদানকারী দ্বারা জারি করা App Check টোকেনের জন্য টাইম-টু-লাইভ (TTL) সেট করুন। আপনি TTL 30 মিনিট থেকে 7 দিনের মধ্যে যেকোনো মান সেট করতে পারেন। এই মান সেট করার সময়, নিম্নলিখিত ট্রেডঅফ সম্পর্কে সচেতন হন:

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

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

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

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