Firebase App Check-এর মাধ্যমে Gemini API-এর অপব্যবহার প্রতিরোধ করা

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

সেট-আপ সংক্রান্ত নির্দেশাবলীতে যান

Firebase AI Logic একটি প্রক্সি গেটওয়ে প্রদান করে যা আপনাকে Firebase App Check-এর সাথে ইন্টিগ্রেট করতে এবং Gemini API-কে সুরক্ষিত রাখতে সাহায্য করে, যখন আপনার মোবাইল ও ওয়েব অ্যাপ সরাসরি এটি কল করে। App Check এনফোর্স করা হলে Firebase AI Logic, এটি Gemini Developer API ও Agent Platform Gemini API (formerly Vertex AI), দুটিকেই সুরক্ষিত রাখতে সাহায্য করে।

App Check-এর জন্য Firebase AI Logic-এও রিপ্লে সুরক্ষা কাজ করে, যার অর্থ হল App Check টোকেন শুধুমাত্র একবারই ব্যবহার করা যাবে।


App Check কীভাবে কাজ করে তার হাই-লেভেল সারসংক্ষেপ

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

  • আপনার আসল অ্যাপ থেকে অনুরোধ করা হয়েছে
  • অনুরোধটি কোনও আসল, অপরিবর্তিত ডিভাইস থেকে করা হয়েছে

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

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

আপনি এর ডকুমেন্টেশনে App Check সম্পর্কে বিস্তারিত তথ্য দেখতে পাবেন, যার মধ্যে অ্যাটেস্টেশন প্রদানকারীর বিবরণ এবং কোনও প্রযোজ্য কোটা ও সীমা অন্তর্ভুক্ত।

App Check সেট আপ করুন

Firebase App Check Firebase AI Logic-এর জন্য এনফোর্সমেন্ট সেট-আপ করার জন্য নিম্নলিখিত নির্দেশাবলী অপ্টিমাইজ করা হয়েছে।

ধাপ ১: এনফোর্স করুন App Check

২০২৬ সালের জুলাই মাসের শুরু থেকে, Firebase কনসোলে গাইড করা সেট-আপ ওয়ার্কফ্লো চলাকালীন, Firebase অটোমেটিক Firebase App Check Firebase AI Logic-এর জন্য Gemini API-কে সুরক্ষিত রাখতে প্রয়োগ করে।

তবে, আপনি যদি ২৬ সালের জুলাই মাসের শুরুর দিকে আগে Firebase প্রোজেক্টে Firebase AI Logic সেট-আপ করে থাকেন (অথবা অন্য কোনও কারণে App Check প্রয়োগ করা না হয়ে থাকে), তাহলে আপনি নিম্নলিখিত নির্দেশাবলী ব্যবহার করে নিজেই App Check প্রয়োগ করতে পারবেন।

  1. Firebase AI Logic-এর জন্য App Check আগেই প্রয়োগ করা হয়েছে কিনা তা চেক করুন।

    1. Firebase কনসোলে, নিরাপত্তা > অ্যাপ চেক > API ট্যাব বিকল্পে যান।

    2. Firebase AI Logic-এর জন্য সারি খুঁজুন। সেখানে Unenforced লেখা থাকলে, বাকি নির্দেশাবলী অনুসরণ করুন।

  2. Firebase AI Logic-এর জন্য সারিতে ক্লিক করুন এবং আপনি মেট্রিক গ্রাফ দেখতে পাবেন। ওইসব গ্রাফের নিচে, সেট-আপ করুন বিকল্পে ক্লিক করুন।

  3. ডায়লগের প্রথম স্ক্রিনে (বেসিক সুরক্ষা), এনফোর্স করা হয়েছে বিকল্প বেছে নিন এবং তারপরে চালিয়ে যান বিকল্পে ক্লিক করুন।

  4. পরের স্ক্রিনে (আবার চালানো থেকে সুরক্ষা), বন্ধ করা আছে বিকল্প বেছে নিন এবং তারপরে চালিয়ে যান বিকল্পে ক্লিক করুন।

  5. চূড়ান্ত স্ক্রিনে, App Check এনফোর্স করার জন্য বিবেচ্য বিষয়গুলি পর্যালোচনা করুন যাতে আপনি App Check এনফোর্স করার জন্য প্রস্তুত কিনা তা নিশ্চিত করতে পারেন। আপনি রেডি হয়ে থাকলে, চালিয়ে যান বিকল্পে ক্লিক করুন।

    আপনি যদি শুধুমাত্র App Check প্রয়োগ করতে চান এবং প্রি-প্রোডাকশন অ্যাপে Firebase AI Logic-এর সাথে শুধুমাত্র ডিবাগ প্রোভাইডার ব্যবহার করতে চান, তাহলে আপনাকে অ্যাপ রেজিস্টার করতে হবে না। তবে, আপনি যখন এন্ড-ইউজারদের জন্য অ্যাপ রিলিজ করার জন্য রেডি হবেন, তখন আপনাকে প্রোডাকশন অ্যাটেস্টেশন প্রোভাইডার (যেমন, App Attest, Play Integrity বা reCAPTCHA Enterprise) সেট-আপ করার অংশ হিসেবে অ্যাপ রেজিস্টার করতে হবে।

ধাপ ২: লোকাল ডেভেলপমেন্টের জন্য ডিবাগ প্রোভাইডার সেট-আপ করা

লোকাল ডেভেলপমেন্টের জন্য, আপনি App Check ডিবাগ প্রোভাইডার সেট-আপ করতে পারবেন এবং Firebase AI Logic-এর জন্য App Check এনফোর্স করা অবস্থাতেই রাখতে পারবেন।

Swift

সিমুলেটরে আপনার অ্যাপ ইন্ট্যার‍্যাক্টিভ (যেমন, লোকাল ডেভেলপমেন্টের সময়) চালানোর সময় কীভাবে ডিবাগ প্রোভাইডার ব্যবহার করবেন তা এখানে দেওয়া হল:

  1. আপনার Xcode প্রোজেক্টে, FirebaseAppCheck ইমপোর্ট করুন এবং আগে Firebase কনফিগার করার আগে App Check ডিবাগ প্রোভাইডার ফ্যাক্টরি দিয়ে ইনিশিয়ালাইজ করুন।

    import SwiftUI
    import FirebaseCore
    import FirebaseAppCheck
    
    @main
    struct YourApp: App {
      init() {
        let providerFactory = AppCheckDebugProviderFactory()
        AppCheck.setAppCheckProviderFactory(providerFactory)
        FirebaseApp.configure()
      }
    
      var body: some Scene {
        WindowGroup {
          NavigationView {
            ContentView()
          }
        }
      }
    }
    
  2. আপনার ডিবাগ টোকেন পান:

    1. সিমুলেটরে বা আপনার টেস্ট ডিভাইসে অ্যাপ লঞ্চ করুন।

    2. Xcode কনসোল খুলুন এবং App Check ডিবাগ টোকেন খুঁজুন। যেমন:

      <Warning> [AppCheckCore][I-GAC004001] App Check debug token: '123a4567-b89c-12d3-e456-789012345678'.
      
    3. টোকেনটি কপি করুন (যেমন, 123a4567-b89c-12d3-e456-789012345678)।

  3. App Check-এর সাথে আপনার ডিবাগ টোকেন রেজিস্টার করুন:

    1. Firebase কনসোলে, নিরাপত্তা > অ্যাপ চেক > অ্যাপ ট্যাব বিকল্পে যান।

    2. আপনার অ্যাপ খুঁজে নিন, ওভারফ্লো মেনুতে ক্লিক করুন () এবং তারপরে ডিবাগ টোকেন ম্যানেজ করুন বিকল্প বেছে নিন।

    3. আপনার ডিবাগ টোকেন রেজিস্টার করতে অন-স্ক্রিন নির্দেশাবলী অনুসরণ করুন।

ডিবাগ প্রোভাইডার সম্পর্কে বিস্তারিত জানতে (নতুন ডিবাগ টোকেন কীভাবে পাবেন সহ), অফিসিয়াল App Check ডকুমেন্ট দেখুন।

Kotlin

ইমুলেটরে আপনার অ্যাপ ইন্ট্যার‍্যাক্টিভ (যেমন, লোকাল ডেভেলপমেন্টের সময়) চালানোর সময় কীভাবে ডিবাগ প্রোভাইডার ব্যবহার করবেন তা এখানে দেওয়া হল:

  1. আপনার ডিবাগ বিল্ডে, ডিবাগ প্রোভাইডার ফ্যাক্টরি ব্যবহার করার জন্য App Check কনফিগার করুন:

    Firebase.initialize(context = this)
    Firebase.appCheck.installAppCheckProviderFactory(
        DebugAppCheckProviderFactory.getInstance(),
    )
  2. আপনার ডিবাগ টোকেন পান:

    1. এমুলেটরে বা আপনার টেস্ট ডিভাইসে অ্যাপ রান করান।

    2. আপনার লগে App Check ডিবাগ টোকেন খুঁজুন। যেমন:

      D DebugAppCheckProvider: Enter this debug secret into the allow list
      in the Firebase Console for your project: 123a4567-b89c-12d3-e456-789012345678
      
    3. টোকেনটি কপি করুন (যেমন, 123a4567-b89c-12d3-e456-789012345678)।

  3. App Check-এর সাথে আপনার ডিবাগ টোকেন রেজিস্টার করুন:

    1. Firebase কনসোলে, নিরাপত্তা > অ্যাপ চেক > অ্যাপ ট্যাব বিকল্পে যান।

    2. আপনার অ্যাপ খুঁজে নিন, ওভারফ্লো মেনুতে ক্লিক করুন () এবং তারপরে ডিবাগ টোকেন ম্যানেজ করুন বিকল্প বেছে নিন।

    3. আপনার ডিবাগ টোকেন রেজিস্টার করতে অন-স্ক্রিন নির্দেশাবলী অনুসরণ করুন।

ডিবাগ প্রোভাইডার সম্পর্কে বিস্তারিত জানতে (নতুন ডিবাগ টোকেন কীভাবে পাবেন সহ), অফিসিয়াল App Check ডকুমেন্ট দেখুন।

Java

ইমুলেটরে আপনার অ্যাপ ইন্ট্যার‍্যাক্টিভ (যেমন, লোকাল ডেভেলপমেন্টের সময়) চালানোর সময় কীভাবে ডিবাগ প্রোভাইডার ব্যবহার করবেন তা এখানে দেওয়া হল:

  1. আপনার ডিবাগ বিল্ডে, ডিবাগ প্রোভাইডার ফ্যাক্টরি ব্যবহার করার জন্য App Check কনফিগার করুন:

    FirebaseApp.initializeApp(/*context=*/ this);
    FirebaseAppCheck firebaseAppCheck = FirebaseAppCheck.getInstance();
    firebaseAppCheck.installAppCheckProviderFactory(
            DebugAppCheckProviderFactory.getInstance());
  2. আপনার ডিবাগ টোকেন পান:

    1. এমুলেটরে বা আপনার টেস্ট ডিভাইসে অ্যাপ রান করান।

    2. আপনার লগে App Check ডিবাগ টোকেন খুঁজুন। যেমন:

      D DebugAppCheckProvider: Enter this debug secret into the allow list
      in the Firebase Console for your project: 123a4567-b89c-12d3-e456-789012345678
      
    3. টোকেনটি কপি করুন (যেমন, 123a4567-b89c-12d3-e456-789012345678)।

  3. App Check-এর সাথে আপনার ডিবাগ টোকেন রেজিস্টার করুন:

    1. Firebase কনসোলে, নিরাপত্তা > অ্যাপ চেক > অ্যাপ ট্যাব বিকল্পে যান।

    2. আপনার অ্যাপ খুঁজে নিন, ওভারফ্লো মেনুতে ক্লিক করুন () এবং তারপরে ডিবাগ টোকেন ম্যানেজ করুন বিকল্প বেছে নিন।

    3. আপনার ডিবাগ টোকেন রেজিস্টার করতে অন-স্ক্রিন নির্দেশাবলী অনুসরণ করুন।

ডিবাগ প্রোভাইডার সম্পর্কে বিস্তারিত জানতে (নতুন ডিবাগ টোকেন কীভাবে পাবেন সহ), অফিসিয়াল App Check ডকুমেন্ট দেখুন।

Web

localhost ইন্টার‍্যাক্টিভ (যেমন, লোকাল ডেভেলপমেন্টের সময়) মোডে আপনার অ্যাপ চালানোর সময় কীভাবে ডিবাগ প্রোভাইডার ব্যবহার করবেন তা এখানে দেওয়া হল:

  1. আপনার ডিবাগ বিল্ডে, App Check ইনিশিয়ালাইজ করার আগে self.FIREBASE_APPCHECK_DEBUG_TOKEN-কে true-এ সেট করে ডিবাগ মোড চালু করুন। যেমন:

    self.FIREBASE_APPCHECK_DEBUG_TOKEN = true;
    initializeAppCheck(app, { /* App Check options */ });
    
  2. আপনার ওয়েব অ্যাপ লোকালি ভিজিট করুন এবং ব্রাউজারের ডেভেলপার টুল খুলুন। ডিবাগ কনসোলে, আপনি একটি ডিবাগ টোকেন দেখতে পাবেন:

    AppCheck debug token: "123a4567-b89c-12d3-e456-789012345678".
    You will need to safelist it in the Firebase console for it to work.
    
  3. App Check-এর সাথে আপনার ডিবাগ টোকেন রেজিস্টার করুন:

    1. Firebase কনসোলে, নিরাপত্তা > অ্যাপ চেক > অ্যাপ ট্যাব বিকল্পে যান।

    2. আপনার অ্যাপ খুঁজে নিন, ওভারফ্লো মেনুতে ক্লিক করুন () এবং তারপরে ডিবাগ টোকেন ম্যানেজ করুন বিকল্প বেছে নিন।

    3. আপনার ডিবাগ টোকেন রেজিস্টার করতে অন-স্ক্রিন নির্দেশাবলী অনুসরণ করুন।

ডিবাগ প্রোভাইডার সম্পর্কে বিস্তারিত জানতে (নতুন ডিবাগ টোকেন কীভাবে পাবেন সহ), অফিসিয়াল App Check ডকুমেন্ট দেখুন।

Dart

iOS+

সিমুলেটরে আপনার অ্যাপ ইন্ট্যার‍্যাক্টিভ (যেমন, লোকাল ডেভেলপমেন্টের সময়) চালানোর সময় কীভাবে ডিবাগ প্রোভাইডার ব্যবহার করবেন তা এখানে দেওয়া হল:

  1. আপনার Firebase অ্যাপ ইনিশিয়ালাইজ করার ঠিক পরেই ডিবাগ প্রোভাইডারের সাথে App Check অ্যাক্টিভেট করুন:

    import 'package:flutter/material.dart';
    import 'package:firebase_core/firebase_core.dart';
    
    // Import the firebase_app_check plugin
    import 'package:firebase_app_check/firebase_app_check.dart';
    
    Future<void> main() async {
      WidgetsFlutterBinding.ensureInitialized();
      await Firebase.initializeApp();
      await FirebaseAppCheck.instance.activate(
        // Set appleProvider to `AppleProvider.debug`
        appleProvider: AppleProvider.debug,
      );
      runApp(App());
    }
    
  2. আপনার Xcode প্রোজেক্টে ডিবাগ লগিং চালু করুন:

    1. প্রোডাক্ট > স্কিম > স্কিম এডিট করুন বিকল্প খুলুন।
    2. বাঁদিকের মেনু থেকে রান করুন বিকল্প বেছে নিন, তারপর আর্গুমেন্ট ট্যাব বেছে নিন।
    3. লঞ্চের সময় আর্গুমেন্ট পাস করা হয়েছে বিভাগে, -FIRDebugEnabled যোগ করুন।
  3. আপনার ডিবাগ টোকেন পান:

    1. Xcode-এর মাধ্যমে ios/Runner.xcworkspace খুলুন এবং আপনার অ্যাপটি সিমুলেটরে বা আপনার টেস্ট ডিভাইসে চালান।

    2. Xcode কনসোল খুলুন এবং App Check ডিবাগ টোকেন খুঁজুন। যেমন:

      <Warning> [AppCheckCore][I-GAC004001] App Check debug token: '123a4567-b89c-12d3-e456-789012345678'.
      
    3. টোকেনটি কপি করুন (যেমন, 123a4567-b89c-12d3-e456-789012345678)।

  4. App Check-এর সাথে আপনার ডিবাগ টোকেন রেজিস্টার করুন:

    1. Firebase কনসোলে, নিরাপত্তা > অ্যাপ চেক > অ্যাপ ট্যাব বিকল্পে যান।

    2. আপনার অ্যাপ খুঁজে নিন, ওভারফ্লো মেনুতে ক্লিক করুন () এবং তারপরে ডিবাগ টোকেন ম্যানেজ করুন বিকল্প বেছে নিন।

    3. আপনার ডিবাগ টোকেন রেজিস্টার করতে অন-স্ক্রিন নির্দেশাবলী অনুসরণ করুন।

Android

ইমুলেটরে আপনার অ্যাপ ইন্ট্যার‍্যাক্টিভ (যেমন, লোকাল ডেভেলপমেন্টের সময়) চালানোর সময় কীভাবে ডিবাগ প্রোভাইডার ব্যবহার করবেন তা এখানে দেওয়া হল:

  1. আপনার Firebase অ্যাপ ইনিশিয়ালাইজ করার ঠিক পরেই ডিবাগ প্রোভাইডারের সাথে App Check অ্যাক্টিভেট করুন:

    import 'package:flutter/material.dart';
    import 'package:firebase_core/firebase_core.dart';
    
    // Import the firebase_app_check plugin
    import 'package:firebase_app_check/firebase_app_check.dart';
    
    Future<void> main() async {
      WidgetsFlutterBinding.ensureInitialized();
      await Firebase.initializeApp();
      await FirebaseAppCheck.instance.activate(
        // Set androidProvider to `AndroidProvider.debug`
        androidProvider: AndroidProvider.debug,
      );
      runApp(App());
    }
    
  2. আপনার ডিবাগ টোকেন পান:

    1. এমুলেটরে বা আপনার টেস্ট ডিভাইসে অ্যাপ রান করান।

    2. আপনার লগে App Check ডিবাগ টোকেন খুঁজুন। যেমন:

      D DebugAppCheckProvider: Enter this debug secret into the allow list
      in the Firebase Console for your project: 123a4567-b89c-12d3-e456-789012345678
      
    3. টোকেনটি কপি করুন (যেমন, 123a4567-b89c-12d3-e456-789012345678)।

  3. App Check-এর সাথে আপনার ডিবাগ টোকেন রেজিস্টার করুন:

    1. Firebase কনসোলে, নিরাপত্তা > অ্যাপ চেক > অ্যাপ ট্যাব বিকল্পে যান।

    2. আপনার অ্যাপ খুঁজে নিন, ওভারফ্লো মেনুতে ক্লিক করুন () এবং তারপরে ডিবাগ টোকেন ম্যানেজ করুন বিকল্প বেছে নিন।

    3. আপনার ডিবাগ টোকেন রেজিস্টার করতে অন-স্ক্রিন নির্দেশাবলী অনুসরণ করুন।

ওয়েব

ইন্ট্যার‍্যাক্টিভ (যেমন, লোকাল ডেভেলপমেন্টের সময়)localhost থেকে আপনার অ্যাপ চালানোর সময় কীভাবে ডিবাগ প্রোভাইডার ব্যবহার করবেন তা এখানে দেওয়া হল:

  1. ফাইলে web/index.html, ডিবাগ মোড চালু করতে self.FIREBASE_APPCHECK_DEBUG_TOKEN-এর মান true হিসেবে সেট করুন:

    <body>
      <script>
        self.FIREBASE_APPCHECK_DEBUG_TOKEN = true;
      </script>
    
      ...
    
    </body>
    
  2. আপনার ওয়েব অ্যাপ লোকালি রান করান এবং ব্রাউজারের ডেভেলপার টুল খুলুন। ডিবাগ কনসোলে আপনি একটি ডিবাগ টোকেন দেখতে পাবেন:

    AppCheck debug token: "123a4567-b89c-12d3-e456-789012345678".
    You will need to safelist it in the Firebase console for it to work.
    

    এই টোকেন আপনার ব্রাউজারে লোকালি সেভ করা হয় এবং আপনি একই মেশিনে একই ব্রাউজারে অ্যাপ ব্যবহার করলেই এটি ব্যবহার করা হবে। আপনি যদি অন্য কোনও ব্রাউজার বা অন্য কোনও মেশিনে টোকেন ব্যবহার করতে চান, তাহলে true-এর পরিবর্তে টোকেন স্ট্রিংয়ে self.FIREBASE_APPCHECK_DEBUG_TOKEN সেট করুন।

  3. App Check-এর সাথে আপনার ডিবাগ টোকেন রেজিস্টার করুন:

    1. Firebase কনসোলে, নিরাপত্তা > অ্যাপ চেক > অ্যাপ ট্যাব বিকল্পে যান।

    2. আপনার অ্যাপ খুঁজে নিন, ওভারফ্লো মেনুতে ক্লিক করুন () এবং তারপরে ডিবাগ টোকেন ম্যানেজ করুন বিকল্প বেছে নিন।

    3. আপনার ডিবাগ টোকেন রেজিস্টার করতে অন-স্ক্রিন নির্দেশাবলী অনুসরণ করুন।

ডিবাগ প্রোভাইডার সম্পর্কে বিস্তারিত জানতে (নতুন ডিবাগ টোকেন কীভাবে পাবেন সহ), অফিসিয়াল App Check ডকুমেন্ট দেখুন।

Unity

ইমুলেটরে আপনার অ্যাপ ইন্ট্যার‍্যাক্টিভ (যেমন, লোকাল ডেভেলপমেন্টের সময়) চালানোর সময় কীভাবে ডিবাগ প্রোভাইডার ব্যবহার করবেন তা এখানে দেওয়া হল:

  1. Firebase কনসোলে, একটি ডিবাগ টোকেন তৈরি করুন:

    1. Firebase কনসোলে, নিরাপত্তা > অ্যাপ চেক > অ্যাপ ট্যাব বিকল্পে যান।

    2. আপনার অ্যাপ খুঁজে নিন, ওভারফ্লো মেনুতে ক্লিক করুন () এবং তারপরে ডিবাগ টোকেন ম্যানেজ করুন বিকল্প বেছে নিন।

    3. নতুন ডিবাগ টোকেন তৈরি করতে অন-স্ক্রিন নির্দেশাবলী অনুসরণ করুন।

  2. আপনার অ্যাপের ইনিশিয়ালাইজেশন কোডে, নিম্নলিখিতগুলি যোগ করুন:

    using Firebase.AppCheck;
    
    void InitializeFirebase() {
      // Configure the Debug Provider factory with your debug token.
      DebugAppCheckProviderFactory.Instance.SetDebugToken("YOUR_DEBUG_TOKEN");
    
      // Set App Check to use the debug provider factory
      FirebaseAppCheck.SetAppCheckProviderFactory(
        DebugAppCheckProviderFactory.Instance);
    
      // Proceed to initialize Firebase as normal
    }
    

ডিবাগ প্রোভাইডার সম্পর্কে বিস্তারিত জানতে (নতুন ডিবাগ টোকেন কীভাবে পাবেন সহ), অফিসিয়াল App Check ডকুমেন্ট দেখুন।

ধাপ ৩: এন্ড-ইউজার ও প্রোডাকশনের জন্য App Check সেট-আপ করা

আপনি যখন ব্যবহারকারীদের জন্য অ্যাপ রিলিজ করার জন্য প্রস্তুত হবেন, তখন আপনাকে অ্যাপ রেজিস্টার করতে হবে এবং প্রোডাকশন অ্যাটেস্টেশন প্রদানকারী (যেমন, App Attest, Play Integrity বা reCAPTCHA Enterprise) সেট-আপ করতে হবে।

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

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

  2. (সাজেস্ট করা) রিপ্লে প্রোটেকশন যোগ করে সুরক্ষা আরও উন্নত করুন, এর অর্থ হল একটি App Check টোকেন শুধুমাত্র একবারই ব্যবহার করা যাবে।

রিপ্লে সুরক্ষা যোগ করে সুরক্ষা বাড়ানো

আমরা লেটেস্ট SDK ভার্সন ব্যবহার করার সাজেশন দিই, তবে রিপ্লে প্রোটেকশন ব্যবহার করার জন্য এগুলির মধ্যে অন্তত একটি ভার্সন ব্যবহার করছেন কিনা তা নিশ্চিত করুন:
Apple প্ল্যাটফর্ম v12.2.0+ | Android BoM v34.14.0+ (App Check v19.1.0+) | ওয়েব v12.14.0+ | Flutter v4.15.0+ (App Check v4.10.0+) | Unity v13.12.0+

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

তবে, আপনি রিপ্লে প্রোটেকশন প্রয়োগ করে এই বেসলাইন সুরক্ষার বাইরে আরও উন্নত সুরক্ষা পেতে পারেন, যা পরিবর্তে সীমিত-ব্যবহার টোকেন ব্যবহার করে। রিপ্লে প্রোটেকশন প্রয়োগ করা হলে, নিম্নলিখিত ঘটনাগুলি ঘটে:

  • App Check, Firebase AI Logic-এ পাঠানো সেইসব অনুরোধ ব্লক করবে যেগুলিতে সেশন টোকেন ব্যবহার করা হয়েছে। পরিবর্তে, App Check শুধুমাত্র অনুমতি দেবে যদি Firebase AI Logic কোনও নতুন তৈরি সীমিত-ব্যবহারের টোকেন ব্যবহার করে।

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

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

রিপ্লে প্রোটেকশন সেট-আপ ও প্রয়োগ করা

এই পৃষ্ঠায় প্রদানকারী-নির্দিষ্ট কন্টেন্ট ও কোড দেখতে আপনার Gemini API প্রদানকারীর আইকনে ক্লিক করুন।

রিপ্লে সুরক্ষা কীভাবে সেট-আপ ও প্রয়োগ করবেন তা এখানে দেওয়া হল:

  1. আপনি আগে থেকে না করে থাকলে, এই পৃষ্ঠায় আগে দেওয়া নির্দেশাবলী অনুসরণ করে সেট-আপ করুন App Check।

  2. সীমিত-ব্যবহারের টোকেন ব্যবহার করার সুবিধা চালু করুন।

    ইনস্ট্যানসিয়েশন চলাকালীন আপনার অ্যাপে, useLimitedUseAppCheckTokens প্যারামিটারকে true হিসেবে সেট করুন:

    Swift

    
    // ...
    
    // 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(
      useLimitedUseAppCheckTokens: true,
    );
    
    // ...
    
    

    Unity

    // ...
    
    // During instantiation, enable usage of limited-use tokens
    var ai = FirebaseAI.GetInstance(
      useLimitedUseAppCheckTokens: true
    );
    
    // ...
    
  3. রিপ্লে সুরক্ষা প্রয়োগ করুন।

    1. আপনার অ্যাপের কোডবেসে, সীমিত-ব্যবহার টোকেন (আগের ধাপ দেখুন) ব্যবহার করার সুবিধা চালু করেছেন কিনা তা নিশ্চিত করুন।

    2. Firebase কনসোলে, নিরাপত্তা > অ্যাপ চেক বিকল্পে যান।

    3. Firebase AI Logic-এর জন্য মেট্রিক ভিউ বড় করুন।

    4. বেসিক সুরক্ষা এনফোর্স করা আছে কিনা দেখুন, তারপর চালিয়ে যান বিকল্পে ক্লিক করুন।

    5. রিপ্লে সুরক্ষা পেতে, এনফোর্স করা হয়নি (শুধুমাত্র মনিটর করা হচ্ছে) অথবা এনফোর্স করা হয়েছে বিকল্প বেছে নিন।

      রিপ্লে প্রোটেকশন কখন প্রয়োগ করতে হবে তা সিদ্ধান্ত নেওয়ার জন্য নিম্নলিখিত বিষয়গুলি বিবেচনা করুন:

      • আপনার ব্যবহারকারীদের মধ্যে উল্লেখযোগ্য সংখ্যক ব্যবহারকারী যদি সীমিত-ব্যবহার টোকেন চালু না করেই আপনার অ্যাপের আগের ভার্সন ব্যবহার করেন, তাহলে আপনার অনুরোধ মনিটর করার জন্য সাজেস্ট করা হয়। আপনি অবিলম্বে রিপ্লে প্রোটেকশন প্রয়োগ করলে, সেইসব ব্যবহারকারীর থেকে আসা অনুরোধ ব্লক করা হবে।

      • আপনি নির্দিষ্টভাবে যাচাই করা হয়নি: আবার ব্যবহার করা টোকেন মেট্রিক মনিটর করতে পারেন, এটি হল সেইসব অনুরোধের সংখ্যা যেগুলিতে এমন টোকেন আছে যা আগেকার অনুরোধে আগেই ব্যবহার করা হয়েছে। Firebase কনসোলে এই মেট্রিক মনিটর করুন (নিরাপত্তা > অ্যাপ চেক > API ট্যাব বিকল্পে যান)।

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

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-এ প্রসেস করার অনুমতি দেওয়া হয় এবং Gemini মডেল অ্যাক্সেস করা হয়।

প্রায়শই জিজ্ঞাসিত প্রশ্ন ও সমস্যার সমাধান করা

Firebase AI Logic সম্পর্কিত অতিরিক্ত প্রায়শই জিজ্ঞাসিত প্রশ্ন ও সমস্যার সমাধান অথবা সমস্যার কোড দেখুন।