অননুমোদিত ক্লায়েন্টদের থেকে APIগুলিকে রক্ষা করতে Firebase অ্যাপ চেক প্রয়োগ করুন

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

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

  • উভয় 'জেমিনি এপিআই' প্রদানকারীকে সুরক্ষা দেয়: জেমিনি ডেভেলপার এপিআই এবং ভার্টেক্স এআই জেমিনি এপিআই

  • জেমিনিইমাজেন মডেল সহ সকল সমর্থিত মডেলকে সুরক্ষা দেয়।

App Check কীভাবে কাজ করে তার একটি উচ্চ-স্তরের সারসংক্ষেপ

App Check মাধ্যমে, আপনার অ্যাপ চালিত ডিভাইসগুলো একটি অ্যাপ বা ডিভাইস অ্যাটেস্টেশন প্রোভাইডার ব্যবহার করে, যা নিম্নলিখিত এক বা উভয় বিষয় যাচাই করে:

  • অনুরোধগুলি আপনার আসল অ্যাপ থেকে আসে
  • অনুরোধগুলি একটি খাঁটি, অপরিবর্তিত ডিভাইস থেকে আসে।

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

আমরা পরামর্শ দিচ্ছি যে, App Check সেট আপ করার সময় আসন্ন উন্নত সুরক্ষার (যা রিপ্লে প্রোটেকশন নামে পরিচিত) জন্য প্রস্তুত থাকবেন।

আপনি App Check সম্পর্কে বিস্তারিত তথ্য , এর কোটা এবং সীমা সহ, এর ডকুমেন্টেশনে খুঁজে পেতে পারেন।

উপলব্ধ পরিষেবা প্রদানকারী এবং বাস্তবায়ন নির্দেশাবলী

App Check ডকুমেন্টেশনে অ্যাটেস্টেশন প্রোভাইডারদের বিবরণ এবং বাস্তবায়নের নির্দেশাবলী দেওয়া আছে।

  1. একটি ডিফল্ট প্রোভাইডার বেছে নিন, এবং নিচের লিঙ্কগুলোতে দেওয়া বাস্তবায়ন নির্দেশাবলী অনুসরণ করুন:

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

  2. (সুপারিশকৃত) অ্যাপ চেক (যা রিপ্লে প্রোটেকশন নামে পরিচিত) App Check আসন্ন উন্নত সুরক্ষার জন্য প্রস্তুত হন

  3. (আবশ্যক) প্রকৃত ব্যবহারকারীদের জন্য আপনার অ্যাপটি প্রকাশ করার আগে, App Check প্রয়োগ সক্রিয় করুন

ফ্লাটারের জন্য বিশেষ ইনস্ট্যানসিয়েশন প্রয়োজন।

এই পৃষ্ঠায় প্রদানকারী-নির্দিষ্ট বিষয়বস্তু এবং কোড দেখতে আপনার জেমিনি এপিআই প্রদানকারীর উপর ক্লিক করুন।

ফ্লাটার অ্যাপে ফায়ারবেস এআই লজিকের সাথে App Check ব্যবহার করার সময়, ইনস্ট্যানসিয়েশনের সময় আপনাকে স্পষ্টভাবে App Check পাস করতে হবে, যেমন:

// ...

final ai = await FirebaseAI.googleAI(
  appCheck: FirebaseAppCheck.instance, // for Flutter, pass in App Check explicitly
);

// ...

আসন্ন বর্ধিত সুরক্ষার জন্য প্রস্তুত হন।

সীমিত-ব্যবহারের টোকেন ব্যবহারের সুবিধাটি অ্যাপল প্ল্যাটফর্ম (v12.2.0+), অ্যান্ড্রয়েড (v17.2.0+, BoM v34.2.0+), ওয়েব (v12.3.0+), এবং ফ্লাটার (v3.2.0+, BoM v4.2.0+)-এর জন্য সমর্থিত। ইউনিটির জন্য সমর্থন শীঘ্রই আসছে।

ডিফল্টরূপে, App Check সেশন টোকেন ব্যবহার করে, যেগুলোর ৩০ মিনিট থেকে ৭ দিনের মধ্যে একটি কনফিগারযোগ্য টাইম টু লিভ (TTL) থাকে। এই সেশন টোকেনগুলো App Check SDK দ্বারা ক্যাশ করা হয় এবং আপনার অ্যাপ থেকে আসা অনুরোধের সাথে পাঠানো হয়।

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

  • App Check শুধুমাত্র সেই অনুরোধগুলোই অনুমোদন করবে, যেগুলোর সাথে সীমিত-ব্যবহারের টোকেন নামক এক বিশেষ ধরনের টোকেন সংযুক্ত থাকবে।

  • সীমিত-ব্যবহারের টোকেনটি যাচাই করার পর, টোকেনটি এমনভাবে ব্যবহৃত হয়ে যায় যাতে এটি কেবল একবারই ব্যবহার করা যায় এবং রিপ্লে অ্যাটাক প্রতিরোধ করা যায়।

রিপ্লে প্রোটেকশনের জন্য প্রস্তুতি নিতে, আমরা সুপারিশ করছি যে আপনি App Check সেটআপ করার অংশ হিসেবে সীমিত-ব্যবহারের টোকেন ব্যবহার সক্ষম করুন । এর ফলে, যখন রিপ্লে প্রোটেকশন উপলব্ধ হবে, তখন আপনি এটি আরও দ্রুত চালু করতে পারবেন, কারণ আপনার আরও বেশি ব্যবহারকারী আপনার অ্যাপের এমন সংস্করণ ব্যবহার করবেন যা সীমিত-ব্যবহারের টোকেন পাঠায়।

যদি আপনি এখন আপনার অ্যাপে সীমিত-ব্যবহারের টোকেন ব্যবহার সক্ষম করেন (যতক্ষণ পর্যন্ত রিপ্লে সুরক্ষা অনুপলব্ধ থাকে), তাহলে নিম্নলিখিত বিষয়গুলি লক্ষ্য করুন:

  • App Check বৈধ সেশন টোকেনের ব্যবহার ব্লক করে না

  • সেশন টোকেনের মতোই, সীমিত-ব্যবহারের টোকেনগুলোও App Check SDK দ্বারা ক্যাশ করা হয় এবং অনুরোধের সাথে পাঠানো হয়। এই সীমিত-ব্যবহারের টোকেনগুলো ডিফল্ট সেশন টোকেনের চেয়ে সামান্য অতিরিক্ত সুরক্ষা প্রদান করে, কারণ সেশন টোকেনের তুলনায় এগুলোর TTL (টাইম টু লিভ) কম (মাত্র ৫ মিনিট এবং এটি পরিবর্তনযোগ্য নয়)।

  • যদিও সীমিত-ব্যবহারের টোকেনগুলো ৫ মিনিটের জন্য বৈধ থাকে, তবুও SDK প্রতিটি অনুরোধের জন্য একটি নতুন টোকেন তৈরি করবে। এই প্রক্রিয়ার কারণে আপনার অনুরোধে কিছুটা বিলম্ব হতে পারে।

তবে, ভবিষ্যতে যখন Firebase AI Logic-এর জন্য রিপ্লে প্রোটেকশন উপলব্ধ হবে (এবং আপনি তা চালু করবেন), তখন সেশন টোকেন ব্যবহার করা এবং সীমিত-ব্যবহারের টোকেন পুনরায় ব্যবহার করা সম্ভব হবে না। উল্লেখ্য যে, প্রতিটি অনুরোধের জন্য একটি নতুন টোকেন তৈরি করার অতিরিক্ত ল্যাটেন্সি তখনও ঘটবে।

সীমিত-ব্যবহারের টোকেন ব্যবহার সক্ষম করুন

এই পৃষ্ঠায় প্রদানকারী-নির্দিষ্ট বিষয়বস্তু এবং কোড দেখতে আপনার জেমিনি এপিআই প্রদানকারীর উপর ক্লিক করুন।

সীমিত-ব্যবহারের টোকেন ব্যবহার চালু করার উপায় নিচে দেওয়া হলো:

  1. App Check প্রয়োগ করুন , এবং নিশ্চিত করুন যে আপনি আপনার অ্যাপের জন্য App Check এনফোর্সমেন্ট সক্রিয় করেছেন।

  2. আপনার অ্যাপে ইনস্ট্যানসিয়েশনের সময়, useLimitedUseAppCheckTokens প্যারামিটারটিকে true তে সেট করে সীমিত-ব্যবহারের টোকেনের ব্যবহার সক্ষম করুন:

    সুইফট

    
    // ...
    
    // During instantiation, enable usage of limited-use tokens
    let ai = FirebaseAI.firebaseAI(
      backend: .googleAI(),
      useLimitedUseAppCheckTokens: true
    )
    
    // ...
    
    

    Kotlin

    
    // ...
    
    // During instantiation, enable usage of limited-use tokens
    val ai = Firebase.ai(
      backend = GenerativeBackend.googleAI(),
      useLimitedUseAppCheckTokens = true
    )
    
    // ...
    
    

    Java

    
    // ...
    
    // During instantiation, enable usage of limited-use tokens
    FirebaseAI ai = FirebaseAI.getInstance(
      /* backend: */ GenerativeBackend.googleAI(),
      /* useLimitedUseAppCheckTokens: */ true
    );
    
    // ...
    
    

    Web

    
    // ...
    
    // During instantiation, enable usage of limited-use tokens
    const ai = getAI(firebaseApp, {
      backend: new GoogleAIBackend(),
      useLimitedUseAppCheckTokens: true
    });
    
    // ...
    
    

    Dart

    
    // ...
    
    // During instantiation, enable usage of limited-use tokens
    final ai = await FirebaseAI.googleAI(
      appCheck: FirebaseAppCheck.instance, // for Flutter, pass in App Check explicitly
      useLimitedUseAppCheckTokens: true,
    );
    
    // ...
    
    

    ঐক্য

    ইউনিটি গেমের সাথে সীমিত-ব্যবহারের টোকেন ব্যবহারের সুবিধাটি ভবিষ্যতের একটি রিলিজে সমর্থন করা হবে। শীঘ্রই আবার দেখুন!

Firebase AI Logic কীভাবে App Check সাথে সমন্বিত হয় তা বুঝুন।

Firebase AI Logic SDK ব্যবহার করার জন্য, আপনার Firebase প্রজেক্টে Firebase AI Logic API ( firebasevertexai.googleapis.com ) অবশ্যই সক্রিয় থাকতে হবে। এর কারণ হলো, Firebase AI Logic SDK দ্বারা করা অনুরোধগুলো প্রথমে Firebase AI Logic সার্ভারে পাঠানো হয়, যা একটি প্রক্সি গেটওয়ে হিসেবে কাজ করে। এই সার্ভারেই Firebase App Check যাচাইকরণ সম্পন্ন হয় এবং এরপরই অনুরোধটি আপনার নির্বাচিত " Gemini API " প্রদানকারীর ব্যাকএন্ড এবং GeminiImagen মডেলগুলো অ্যাক্সেস করার জন্য API-গুলোতে যাওয়ার অনুমতি পায়।