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-কে সুরক্ষিত করতে দেয়। Firebase AI Logic-এর জন্য App Check এনফোর্স করা হলে, এটি Gemini Developer API ও Agent Platform Gemini API (formerly Vertex AI), উভয়কেই সুরক্ষিত রাখতে সাহায্য করে।

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


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

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

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

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

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

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

App Check সেট আপ করুন

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

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

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

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

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

    1. Firebase কনসোলে, নিরাপত্তা > App Check > 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 কনসোলে, সুরক্ষা > App Check > অ্যাপ ট্যাব বিকল্পে যান।

    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 কনসোলে, সুরক্ষা > App Check > অ্যাপ ট্যাব বিকল্পে যান।

    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 কনসোলে, সুরক্ষা > App Check > অ্যাপ ট্যাব বিকল্পে যান।

    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 কনসোলে, সুরক্ষা > App Check > অ্যাপ ট্যাব বিকল্পে যান।

    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 কনসোলে, সুরক্ষা > App Check > অ্যাপ ট্যাব বিকল্পে যান।

    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 কনসোলে, সুরক্ষা > App Check > অ্যাপ ট্যাব বিকল্পে যান।

    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 কনসোলে, সুরক্ষা > App Check > অ্যাপ ট্যাব বিকল্পে যান।

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

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

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

Unity

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

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

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

    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 কনসোলে, নিরাপত্তা > App Check বিকল্পে যান।

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

    4. বেসলাইন সুরক্ষা এনফোর্স করা হয়েছে কিনা তা নিশ্চিত করুন এবং তারপরে চালিয়ে যান বিকল্পে ক্লিক করুন।

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

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

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

      • আপনি নির্দিষ্টভাবে যাচাই করা হয়নি: টোকেন আবার ব্যবহার করা হয়েছে মেট্রিক মনিটর করতে পারবেন, যা হল এমন অনুরোধের সংখ্যা যেগুলিতে এমন টোকেন আছে যা আগের অনুরোধে আগেই ব্যবহার করা হয়েছে। Firebase কনসোলে এই মেট্রিক মনিটর করুন (নিরাপত্তা > App Check > 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 সম্পর্কিত অতিরিক্ত প্রায়শই জিজ্ঞাসিত প্রশ্ন ও সমস্যার সমাধান অথবা সমস্যার কোড খুঁজুন।