برای محافظت از APIها در برابر مشتریان غیرمجاز، Firebase App Check را اجرا کنید

وقتی مستقیماً از یک برنامه تلفن همراه یا وب (مثلاً APIهایی که امکان دسترسی به مدل‌های هوش مصنوعی مولد را فراهم می‌کنند) یک API را فراخوانی می‌کنید، آن API در برابر سوءاستفاده توسط کلاینت‌های غیرمجاز آسیب‌پذیر است. برای کمک به محافظت از این APIها، می‌توانید از Firebase App Check استفاده کنید تا تأیید کنید که تمام فراخوانی‌های API ورودی از برنامه واقعی شما هستند.

Firebase AI Logic یک دروازه پروکسی ارائه می‌دهد که به شما امکان می‌دهد با Firebase App Check ادغام شوید و از APIهای مدل هوش مصنوعی مولد که توسط برنامه‌های تلفن همراه و وب شما فراخوانی می‌شوند، محافظت کنید. استفاده از App Check با SDK های Firebase AI Logic از تمام پیکربندی‌های ما پشتیبانی می‌کند:

  • از هر دو ارائه‌دهنده‌ی «Gemini API» محافظت می‌کند: Gemini Developer API و Vertex AI Gemini API .

  • از تمام مدل‌های پشتیبانی‌شده، هم مدل‌های Gemini و هم مدل‌های Imagen ، محافظت می‌کند.

خلاصه‌ای سطح بالا از نحوه‌ی عملکرد App Check

با App Check ، دستگاه‌هایی که برنامه شما را اجرا می‌کنند از یک ارائه‌دهنده گواهی برنامه یا دستگاه استفاده می‌کنند که یک یا هر دو مورد زیر را تأیید می‌کند:

  • درخواست‌ها از برنامه‌ی اصلی شما سرچشمه می‌گیرند
  • درخواست‌ها از یک دستگاه معتبر و بدون دستکاری سرچشمه می‌گیرند

این گواهی به هر درخواستی که برنامه شما با استفاده از Firebase AI Logic SDK ارسال می‌کند، پیوست می‌شود. هنگامی که شما App Check enforcement را فعال می‌کنید، درخواست‌های کلاینت‌هایی که گواهی معتبر نداشته باشند، رد می‌شوند، همانطور که هر درخواستی که از برنامه یا پلتفرمی که شما آن را مجاز نکرده‌اید، ارسال شود، رد خواهد شد.

توصیه می‌کنیم هنگام تنظیم App Check ، حتماً برای محافظت پیشرفته‌ی بعدی (که به عنوان محافظت در برابر بازپخش شناخته می‌شود) آماده باشید.

می‌توانید اطلاعات دقیقی در مورد App Check ، از جمله سهمیه‌ها و محدودیت‌های آن، را در مستندات آن بیابید.

ارائه دهندگان موجود و دستورالعمل های اجرایی

مستندات App Check توضیحاتی در مورد ارائه‌دهندگان گواهی و همچنین دستورالعمل‌های پیاده‌سازی ارائه می‌دهد.

  1. یک ارائه‌دهنده پیش‌فرض انتخاب کنید و دستورالعمل‌های پیاده‌سازی را در لینک‌های زیر دنبال کنید:

    توجه داشته باشید که اگر هیچ یک از ارائه‌دهندگان پیش‌فرض برای نیازهای شما کافی نیستند، می‌توانید یک ارائه‌دهنده سفارشی پیاده‌سازی کنید که از یک ارائه‌دهنده گواهی شخص ثالث یا تکنیک‌های گواهی‌دهی خودتان استفاده می‌کند.

  2. (توصیه می‌شود) برای محافظت پیشرفته‌ی آتی از App Check (که به عنوان محافظت در برابر بازپخش شناخته می‌شود) آماده شوید.

  3. (الزامی) قبل از انتشار برنامه خود برای کاربران واقعی، اجرای App Check را فعال کنید .

نمونه‌سازی ویژه برای فلاتر مورد نیاز است

برای مشاهده محتوا و کد مخصوص ارائه‌دهنده در این صفحه، روی ارائه‌دهنده API Gemini خود کلیک کنید.

هنگام استفاده از App Check با Firebase AI Logic در برنامه‌های Flutter، باید App Check را به طور صریح در طول نمونه‌سازی ارسال کنید، مانند زیر:

// ...

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

// ...

برای محافظت پیشرفته آینده آماده شوید

فعال‌سازی استفاده از توکن‌های با کاربرد محدود برای پلتفرم‌های اپل (نسخه ۱۲.۲.۰+)، اندروید (نسخه ۱۷.۲.۰+، BoM نسخه ۳۴.۲.۰+)، وب (نسخه ۱۲.۳.۰+) و فلاتر (نسخه ۳.۲.۰+، BoM نسخه ۴.۲.۰+) پشتیبانی می‌شود. پشتیبانی از یونیتی نیز به زودی ارائه خواهد شد.

به طور پیش‌فرض، App Check از توکن‌های جلسه استفاده می‌کند که زمان ماندگاری (TTL) قابل تنظیمی بین 30 دقیقه تا 7 روز دارند. این توکن‌های جلسه توسط App Check SDK ذخیره شده و همراه با درخواست‌های برنامه شما ارسال می‌شوند.

در آینده، App Check گزینه‌ای برای فعال کردن محافظت در برابر بازپخش برای Firebase AI Logic اضافه خواهد کرد (مشابه پشتیبانی که App Check در حال حاضر برای برخی منابع دیگر ارائه می‌دهد). وقتی محافظت در برابر بازپخش فعال می‌شود، محافظت را به روش‌های زیر افزایش می‌دهد:

  • App Check فقط در صورتی درخواست‌ها را مجاز می‌داند که با نوع خاصی از توکن به نام توکن با کاربرد محدود همراه باشند.

  • پس از تأیید توکن با کاربرد محدود، توکن مصرف می‌شود تا فقط یک بار قابل استفاده باشد و از حملات بازپخش جلوگیری شود.

برای آماده شدن برای محافظت در برابر بازپخش، توصیه می‌کنیم استفاده از توکن‌های با کاربرد محدود را به عنوان بخشی از راه‌اندازی App Check فعال کنید. به این ترتیب، وقتی محافظت در برابر بازپخش در دسترس قرار گیرد، می‌توانید آن را زودتر فعال کنید زیرا تعداد بیشتری از کاربران شما از نسخه‌هایی از برنامه شما استفاده می‌کنند که توکن‌های با کاربرد محدود ارسال می‌کنند.

اگر اکنون استفاده از توکن‌های با کاربرد محدود را در برنامه خود فعال می‌کنید (در حالی که محافظت در برابر بازپخش در دسترس نیست)، به موارد زیر توجه کنید:

  • App Check استفاده از توکن‌های معتبر جلسه را مسدود نمی‌کند .

  • درست مانند توکن‌های جلسه، توکن‌های با کاربرد محدود توسط App Check SDK ذخیره شده و همراه با درخواست‌ها ارسال می‌شوند. این توکن‌های با کاربرد محدود، مقدار کمی محافظت اضافی نسبت به توکن‌های جلسه پیش‌فرض ارائه می‌دهند، زیرا توکن‌های با کاربرد محدود در مقایسه با توکن‌های جلسه، TTL کوتاه‌تری (فقط ۵ دقیقه و غیرقابل تنظیم) دارند.

  • اگرچه توکن‌های با کاربرد محدود به مدت ۵ دقیقه اعتبار دارند، SDK همچنان برای هر درخواست یک توکن جدید تولید می‌کند. این فرآیند می‌تواند مقداری تأخیر به درخواست شما اضافه کند.

با این حال، هنگامی که محافظت در برابر تکرار در آینده برای Firebase AI Logic در دسترس باشد (و شما آن را فعال کنید)، استفاده از توکن‌های جلسه و استفاده مجدد از توکن‌های با کاربرد محدود امکان‌پذیر نخواهد بود. توجه داشته باشید که تأخیر اضافی برای تولید یک توکن جدید برای هر درخواست همچنان اتفاق خواهد افتاد.

فعال کردن استفاده از توکن‌های با کاربرد محدود

برای مشاهده محتوا و کد مخصوص ارائه‌دهنده در این صفحه، روی ارائه‌دهنده API Gemini خود کلیک کنید.

در اینجا نحوه فعال کردن استفاده از توکن‌های با کاربرد محدود آمده است:

  1. App Check پیاده‌سازی کنید و مطمئن شوید که App Check enforcement را برای برنامه خود فعال کرده‌اید .

  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,
    );
    
    // ...
    
    

    وحدت

    استفاده از توکن‌های با کاربرد محدود با بازی‌های Unity در نسخه‌های آینده پشتیبانی خواهد شد. به زودی دوباره بررسی کنید!

درک کنید که چگونه Firebase AI Logic با App Check ادغام می‌شود.

برای استفاده از SDK های Firebase AI Logic ، API مربوط به Firebase AI Logic ( firebasevertexai.googleapis.com ) باید در پروژه Firebase شما فعال باشد. دلیل این امر این است که درخواست‌های ارسالی توسط SDK های Firebase AI Logic ابتدا به سرور Firebase AI Logic ارسال می‌شوند، که به عنوان یک دروازه پروکسی عمل می‌کند و در آنجا تأیید Firebase App Check قبل از اینکه درخواست به backend ارائه دهنده " Gemini API " انتخابی شما و API ها برای دسترسی به مدل‌های Gemini و Imagen ارسال شود، انجام می‌شود.