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

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

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

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

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

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

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

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

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

توصیه می کنیم هنگام تنظیم 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 نسخه ۳۴.۲.۰+)، و وب (نسخه ۱۲.۳.۰+) در دسترس است.
پشتیبانی از سایر پلتفرم ها طی چند هفته آینده منتشر خواهد شد.

به‌طور پیش‌فرض، 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 کوتاه‌تری دارند (فقط ۵ دقیقه و قابل تنظیم نیست).

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

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

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

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

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

  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

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

    وحدت

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

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

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