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

একটি কাস্টম অ্যাপ চেক সরবরাহকারী কার্যকর করুন

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

  • আপনি Apple-এ DeviceCheck বা App Attest, Android-এ SafetyNet বা ওয়েব অ্যাপে reCAPTCHA ছাড়া অন্য কোনও প্রদানকারী ব্যবহার করতে চান।

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

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

ওভারভিউ

একটি কাস্টম অ্যাপ্লিকেশন চেক প্রদানকারী বাস্তবায়ন করার জন্য, আপনাকে একটি নিরাপদ ব্যাকএন্ড পরিবেশের Node.js চালাতে পারেন প্রয়োজন Firebase এডমিন SDK এর । এই মেঘ কার্যাবলী যেমন একটি ধারক প্ল্যাটফর্ম হতে পারে ক্লাউড চালান , অথবা আপনার নিজের সার্ভার।

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

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

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

  1. ইনস্টল করুন এবং এডমিন SDK এর আরম্ভ

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

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

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

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

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

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

এখন যেহেতু আপনি আপনার কাস্টম প্রদানকারীর সার্ভার সাইড যুক্তিবিজ্ঞান বাস্তবায়িত করেছি, কীভাবে আপনার থেকে এটি ব্যবহার করতে অ্যাপল , অ্যান্ড্রয়েড , এবং ওয়েব ক্লায়েন্ট।