وقتی یک API را مستقیماً از یک برنامه تلفن همراه یا وب فراخوانی میکنید، API در برابر سوءاستفاده توسط کلاینتهای غیرمجاز آسیبپذیر است. اگر میخواهید API Gemini را مستقیماً از برنامه تلفن همراه یا وب خود فراخوانی کنید، باید با استفاده از منطق هوش مصنوعی Firebase و اجرای Firebase App Check ، از آن در برابر سوءاستفاده محافظت کنید . وقتی App Check اجرا میکنید، فقط به درخواستهای ورودی که تأیید شده است از برنامه واقعی شما و/یا یک دستگاه دستکاری نشده هستند، اجازه ورود میدهد.
Firebase AI Logic یک دروازه پروکسی ارائه میدهد که به شما امکان میدهد با Firebase App Check ادغام شوید و از API Gemini هنگام فراخوانی مستقیم توسط برنامههای تلفن همراه و وب خود محافظت کنید. هنگامی که App Check برای Firebase AI Logic اعمال میشود، به محافظت از API توسعهدهنده Gemini و API پلتفرم عامل Gemini (که قبلاً 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 اعمال میکند تا به محافظت از API Gemini کمک کند.
با این حال، اگر قبل از اوایل ژوئیه ۲۰۲۶، Firebase AI Logic را در پروژه Firebase خود راهاندازی کردهاید (یا App Check به دلایل دیگری اجرا نمیشود)، میتوانید خودتان با استفاده از دستورالعملهای زیر، App Check اجرا کنید.
بررسی کنید که آیا App Check از قبل برای Firebase AI Logic اعمال شده است یا خیر.
در کنسول Firebase ، به تب Security > App Check > APIs بروید.
ردیف مربوط به Firebase AI Logic را پیدا کنید. اگر عبارت
Unenforcedدر آن بود، بقیه این دستورالعملها را ادامه دهید.
روی ردیف مربوط به Firebase AI Logic کلیک کنید تا نمودارهای معیارها را مشاهده کنید. در زیر این نمودارها، روی Set up کلیک کنید.
در صفحه اول پنجره ( حفاظت پایه )، گزینه Enforced (اجرا شده ) را انتخاب کنید و سپس روی Continue (ادامه) کلیک کنید.
در صفحه بعدی ( محافظت در برابر پخش مجدد )، گزینه غیرفعال (Disabled ) را انتخاب کنید و سپس روی ادامه (Continue ) کلیک کنید.
در صفحه آخر، ملاحظات مربوط به اجرای App Check بررسی کنید تا مطمئن شوید که برای اجرای App Check آماده هستید. اگر آماده هستید، روی ادامه کلیک کنید.
اگر فقط میخواهید App Check اجرا کنید و فقط از ارائهدهنده اشکالزدایی با Firebase AI Logic در یک برنامه پیشتولید استفاده کنید، نیازی به ثبت برنامههای خود ندارید . با این حال، وقتی آماده انتشار برنامه خود برای کاربران نهایی هستید، باید برنامههای خود را به عنوان بخشی از راهاندازی یک ارائهدهنده گواهی تولید (مانند App Attest، Play Integrity یا reCAPTCHA Enterprise ) ثبت کنید.
مرحله ۲ : راهاندازی ارائهدهنده اشکالزدایی برای توسعه محلی
برای توسعه محلی ، میتوانید ارائهدهنده اشکالزدایی App Check راهاندازی کنید و همچنان App Check برای Firebase AI Logic فعال نگه دارید.
سویفت
در اینجا نحوه استفاده از ارائه دهنده اشکال زدایی هنگام اجرای برنامه خود در یک شبیه ساز به صورت تعاملی (به عنوان مثال، در طول توسعه محلی) آورده شده است:
در پروژه Xcode خود،
FirebaseAppCheckرا وارد کنید و قبل از پیکربندیFirebaseApp Check با debug provider factory مقداردهی اولیه کنید.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() } } } }توکن اشکالزدایی خود را دریافت کنید:
برنامه خود را در شبیهساز یا روی دستگاه آزمایشی خود اجرا کنید.
کنسول Xcode را باز کنید و به دنبال توکن اشکالزدایی App Check بگردید. برای مثال:
<Warning> [AppCheckCore][I-GAC004001] App Check debug token: '123a4567-b89c-12d3-e456-789012345678'.توکن را کپی کنید (برای مثال،
123a4567-b89c-12d3-e456-789012345678).
توکن اشکالزدایی خود را با App Check ثبت کنید:
در کنسول Firebase ، به تب Security > App Check > Apps بروید.
برنامهی خود را پیدا کنید، روی منوی سرریز ( ) کلیک کنید و سپس مدیریت توکنهای اشکالزدایی (Manage debug tokens ) را انتخاب کنید.
برای ثبت توکن اشکالزدایی خود، دستورالعملهای روی صفحه را دنبال کنید.
برای جزئیات بیشتر در مورد ارائهدهنده اشکالزدایی (از جمله نحوه دریافت یک توکن اشکالزدایی جدید)، به اسناد رسمی App Check مراجعه کنید.
Kotlin
در اینجا نحوه استفاده از ارائه دهنده اشکال زدایی هنگام اجرای برنامه خود در یک شبیه ساز به صورت تعاملی (به عنوان مثال، در طول توسعه محلی) آورده شده است:
در نسخه اشکالزدایی (debug build)، App Check طوری پیکربندی کنید که از debug provider factory استفاده کند:
Firebase.initialize(context = this) Firebase.appCheck.installAppCheckProviderFactory( DebugAppCheckProviderFactory.getInstance(), )
توکن اشکالزدایی خود را دریافت کنید:
برنامه خود را در شبیهساز یا روی دستگاه آزمایشی خود اجرا کنید.
در لاگهای خود به دنبال توکن اشکالزدایی App Check بگردید. برای مثال:
D DebugAppCheckProvider: Enter this debug secret into the allow list in the Firebase Console for your project: 123a4567-b89c-12d3-e456-789012345678توکن را کپی کنید (برای مثال،
123a4567-b89c-12d3-e456-789012345678).
توکن اشکالزدایی خود را با App Check ثبت کنید:
در کنسول Firebase ، به تب Security > App Check > Apps بروید.
برنامهی خود را پیدا کنید، روی منوی سرریز ( ) کلیک کنید و سپس مدیریت توکنهای اشکالزدایی (Manage debug tokens ) را انتخاب کنید.
برای ثبت توکن اشکالزدایی خود، دستورالعملهای روی صفحه را دنبال کنید.
برای جزئیات بیشتر در مورد ارائهدهنده اشکالزدایی (از جمله نحوه دریافت یک توکن اشکالزدایی جدید)، به اسناد رسمی App Check مراجعه کنید.
Java
در اینجا نحوه استفاده از ارائه دهنده اشکال زدایی هنگام اجرای برنامه خود در یک شبیه ساز به صورت تعاملی (به عنوان مثال، در طول توسعه محلی) آورده شده است:
در نسخه اشکالزدایی (debug build)، App Check طوری پیکربندی کنید که از debug provider factory استفاده کند:
FirebaseApp.initializeApp(/*context=*/ this); FirebaseAppCheck firebaseAppCheck = FirebaseAppCheck.getInstance(); firebaseAppCheck.installAppCheckProviderFactory( DebugAppCheckProviderFactory.getInstance());
توکن اشکالزدایی خود را دریافت کنید:
برنامه خود را در شبیهساز یا روی دستگاه آزمایشی خود اجرا کنید.
در لاگهای خود به دنبال توکن اشکالزدایی App Check بگردید. برای مثال:
D DebugAppCheckProvider: Enter this debug secret into the allow list in the Firebase Console for your project: 123a4567-b89c-12d3-e456-789012345678توکن را کپی کنید (برای مثال،
123a4567-b89c-12d3-e456-789012345678).
توکن اشکالزدایی خود را با App Check ثبت کنید:
در کنسول Firebase ، به تب Security > App Check > Apps بروید.
برنامهی خود را پیدا کنید، روی منوی سرریز ( ) کلیک کنید و سپس مدیریت توکنهای اشکالزدایی (Manage debug tokens ) را انتخاب کنید.
برای ثبت توکن اشکالزدایی خود، دستورالعملهای روی صفحه را دنبال کنید.
برای جزئیات بیشتر در مورد ارائهدهنده اشکالزدایی (از جمله نحوه دریافت یک توکن اشکالزدایی جدید)، به اسناد رسمی App Check مراجعه کنید.
Web
در اینجا نحوه استفاده از ارائه دهنده اشکال زدایی هنگام اجرای برنامه خود از localhost به صورت تعاملی (به عنوان مثال، در طول توسعه محلی) آورده شده است:
در ساخت اشکالزدایی خود، قبل از مقداردهی اولیه App Check ، با تنظیم
self.FIREBASE_APPCHECK_DEBUG_TOKENبهtrueحالت اشکالزدایی را فعال کنید. برای مثال:self.FIREBASE_APPCHECK_DEBUG_TOKEN = true; initializeAppCheck(app, { /* App Check options */ });به صورت محلی از برنامه وب خود بازدید کنید و ابزارهای توسعهدهنده مرورگر را باز کنید. در کنسول اشکالزدایی، یک توکن اشکالزدایی مشاهده خواهید کرد:
AppCheck debug token: "123a4567-b89c-12d3-e456-789012345678". You will need to safelist it in the Firebase console for it to work.توکن اشکالزدایی خود را با App Check ثبت کنید:
در کنسول Firebase ، به تب Security > App Check > Apps بروید.
برنامهی خود را پیدا کنید، روی منوی سرریز ( ) کلیک کنید و سپس مدیریت توکنهای اشکالزدایی (Manage debug tokens ) را انتخاب کنید.
برای ثبت توکن اشکالزدایی خود، دستورالعملهای روی صفحه را دنبال کنید.
برای جزئیات بیشتر در مورد ارائهدهنده اشکالزدایی (از جمله نحوه دریافت یک توکن اشکالزدایی جدید)، به اسناد رسمی App Check مراجعه کنید.
Dart
آیاواس+
در اینجا نحوه استفاده از ارائه دهنده اشکال زدایی هنگام اجرای برنامه خود در یک شبیه ساز به صورت تعاملی (به عنوان مثال، در طول توسعه محلی) آورده شده است:
بلافاصله پس از راهاندازی اولیه برنامه 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()); }فعال کردن ثبت وقایع اشکالزدایی در پروژه Xcode شما:
- محصول > طرح > ویرایش طرح را باز کنید.
- از منوی سمت چپ، گزینه Run را انتخاب کنید و سپس به تب Arguments بروید.
- در بخش آرگومانهای ارسالی در هنگام راهاندازی ،
-FIRDebugEnabledاضافه کنید.
توکن اشکالزدایی خود را دریافت کنید:
ios/Runner.xcworkspaceرا با Xcode باز کنید و برنامه خود را در شبیهساز یا روی دستگاه آزمایشی خود اجرا کنید.کنسول Xcode را باز کنید و به دنبال توکن اشکالزدایی App Check بگردید. برای مثال:
<Warning> [AppCheckCore][I-GAC004001] App Check debug token: '123a4567-b89c-12d3-e456-789012345678'.توکن را کپی کنید (برای مثال،
123a4567-b89c-12d3-e456-789012345678).
توکن اشکالزدایی خود را با App Check ثبت کنید:
در کنسول Firebase ، به تب Security > App Check > Apps بروید.
برنامهی خود را پیدا کنید، روی منوی سرریز ( ) کلیک کنید و سپس مدیریت توکنهای اشکالزدایی (Manage debug tokens ) را انتخاب کنید.
برای ثبت توکن اشکالزدایی خود، دستورالعملهای روی صفحه را دنبال کنید.
اندروید
در اینجا نحوه استفاده از ارائه دهنده اشکال زدایی هنگام اجرای برنامه خود در یک شبیه ساز به صورت تعاملی (به عنوان مثال، در طول توسعه محلی) آورده شده است:
بلافاصله پس از راهاندازی اولیه برنامه 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()); }توکن اشکالزدایی خود را دریافت کنید:
برنامه خود را در شبیهساز یا روی دستگاه آزمایشی خود اجرا کنید.
در لاگهای خود به دنبال توکن اشکالزدایی App Check بگردید. برای مثال:
D DebugAppCheckProvider: Enter this debug secret into the allow list in the Firebase Console for your project: 123a4567-b89c-12d3-e456-789012345678توکن را کپی کنید (برای مثال،
123a4567-b89c-12d3-e456-789012345678).
توکن اشکالزدایی خود را با App Check ثبت کنید:
در کنسول Firebase ، به تب Security > App Check > Apps بروید.
برنامهی خود را پیدا کنید، روی منوی سرریز ( ) کلیک کنید و سپس مدیریت توکنهای اشکالزدایی (Manage debug tokens ) را انتخاب کنید.
برای ثبت توکن اشکالزدایی خود، دستورالعملهای روی صفحه را دنبال کنید.
وب
در اینجا نحوه استفاده از ارائه دهنده اشکال زدایی هنگام اجرای برنامه خود از localhost به صورت تعاملی (به عنوان مثال، در طول توسعه محلی) آورده شده است:
در فایل
web/index.html، با تنظیمself.FIREBASE_APPCHECK_DEBUG_TOKENبهtrue، حالت اشکالزدایی را فعال کنید:<body> <script> self.FIREBASE_APPCHECK_DEBUG_TOKEN = true; </script> ... </body>برنامه وب خود را به صورت محلی اجرا کنید و ابزارهای توسعهدهنده مرورگر را باز کنید. در کنسول اشکالزدایی، یک توکن اشکالزدایی مشاهده خواهید کرد:
AppCheck debug token: "123a4567-b89c-12d3-e456-789012345678". You will need to safelist it in the Firebase console for it to work.این توکن به صورت محلی در مرورگر شما ذخیره میشود و هر زمان که از برنامه خود در همان مرورگر روی همان دستگاه استفاده کنید، استفاده خواهد شد. اگر میخواهید از این توکن در مرورگر یا دستگاه دیگری استفاده کنید، به جای
trueself.FIREBASE_APPCHECK_DEBUG_TOKENرا روی رشته توکن تنظیم کنید.توکن اشکالزدایی خود را با App Check ثبت کنید:
در کنسول Firebase ، به تب Security > App Check > Apps بروید.
برنامهی خود را پیدا کنید، روی منوی سرریز ( ) کلیک کنید و سپس مدیریت توکنهای اشکالزدایی (Manage debug tokens ) را انتخاب کنید.
برای ثبت توکن اشکالزدایی خود، دستورالعملهای روی صفحه را دنبال کنید.
برای جزئیات بیشتر در مورد ارائهدهنده اشکالزدایی (از جمله نحوه دریافت یک توکن اشکالزدایی جدید)، به اسناد رسمی App Check مراجعه کنید.
وحدت
در اینجا نحوه استفاده از ارائه دهنده اشکال زدایی هنگام اجرای برنامه خود در یک شبیه ساز به صورت تعاملی (به عنوان مثال، در طول توسعه محلی) آورده شده است:
در کنسول Firebase ، یک توکن اشکالزدایی ایجاد کنید:
در کنسول Firebase ، به تب Security > App Check > Apps بروید.
برنامهی خود را پیدا کنید، روی منوی سرریز ( ) کلیک کنید و سپس مدیریت توکنهای اشکالزدایی (Manage debug tokens ) را انتخاب کنید.
برای ایجاد یک نشانه اشکالزدایی جدید، دستورالعملهای روی صفحه را دنبال کنید.
در کد مقداردهی اولیه برنامه خود، موارد زیر را اضافه کنید:
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 ) راهاندازی کنید.
یک ارائهدهنده گواهی تولید انتخاب کنید و دستورالعملهای پیادهسازی را در لینکهای زیر دنبال کنید:
- پلتفرمهای اپل : DeviceCheck یا App Attest یا reCAPTCHA Enterprise
- اندروید : بازی Integrity یا reCAPTCHA Enterprise
- وب : reCAPTCHA Enterprise
- فلاتر : از تمام ارائهدهندگان بالا ، از جمله reCAPTCHA Enterprise پشتیبانی میکند.
اگر از نسخههای قدیمیتر افزونه استفاده میکنید، به یادداشت مربوط به نمونهسازی ویژه در زیر برای Flutter و App Check مراجعه کنید. - یونیتی : از تمام ارائهدهندگان بالا پشتیبانی میکند (پشتیبانی از reCAPTCHA Enterprise به زودی ارائه خواهد شد)
توجه داشته باشید که اگر هیچ یک از این ارائه دهندگان گواهی برای نیازهای شما کافی نیستند، میتوانید یک ارائه دهنده سفارشی را پیادهسازی کنید که از یک ارائه دهنده گواهی شخص ثالث یا تکنیکهای گواهی خودتان استفاده میکند.
(توصیه میشود) با افزودن محافظت در برابر بازپخش ، محافظت را افزایش دهید ، به این معنی که یک توکن App Check فقط یک بار قابل استفاده است.
برای مشاهده محتوا و کد مخصوص ارائهدهنده در این صفحه، روی ارائهدهنده API Gemini خود کلیک کنید. |
این نمونهسازی ویژه فقط در صورتی مورد نیاز است که برنامه شما از افزونه Flutter firebase_ai نسخه 3.11.0 یا پایینتر (BoM نسخه 4.12.0 یا پایینتر) استفاده کند. اگر برنامه شما از نسخه جدیدتر افزونه استفاده میکند، این نمونهسازی ویژه مورد نیاز نیست.
اگر App Check اجباری کنید، در برنامههای Flutter که از نسخههای قدیمیتر افزونه استفاده میکنند، باید App Check را در طول نمونهسازی به صورت زیر ارسال کنید:
// ...
// During instantiation, enable usage of limited-use tokens
final ai = await FirebaseAI.googleAI(
// For Flutter plugin v3.11.0 or lower (BoM v4.12.0 or lower), pass in App Check explicitly.
appCheck: FirebaseAppCheck.instance,
useLimitedUseAppCheckTokens: true,
);
// ...
افزایش حفاظت با افزودن محافظت در برابر بازپخش
| توصیه میکنیم از آخرین نسخههای SDK استفاده کنید، اما مطمئن شوید که حداقل از یکی از این نسخهها برای محافظت در برابر بازپخش استفاده میکنید: پلتفرمهای اپل نسخه ۱۲.۲.۰+ | اندروید بوم نسخه ۳۴.۱۴.۰+ ( App Check نسخه ۱۹.۱.۰+) | وب نسخه ۱۲.۱۴.۰+ | فلاتر نسخه ۴.۱۵.۰+ ( App Check نسخه ۴.۱۰.۰+) | یونیتی نسخه ۱۳.۱۲.۰+ |
به طور پیشفرض، App Check از توکنهای جلسه استفاده میکند که زمان ماندگاری (TTL) قابل تنظیمی بین
با این حال، میتوانید با اجرای محافظت در برابر بازپخش ، که به جای آن از توکنهای با کاربرد محدود استفاده میکند، محافظت را فراتر از این محافظت اولیه افزایش دهید. وقتی محافظت در برابر بازپخش اعمال میشود، موارد زیر اتفاق میافتد:
App Check درخواستهایی را که از توکنهای نشست (session tokens) برای Firebase AI Logic استفاده میکنند، مسدود میکند. در عوض، App Check فقط در صورتی به درخواستهایی که از یک توکن با کاربرد محدود (limited-use token) تازه ایجاد شده استفاده میکنند، اجازهی ارسال میدهد.
پس از تأیید توکن با کاربرد محدود، توکن مصرف میشود تا فقط یک بار قابل استفاده باشد که از حملات بازپخش جلوگیری میکند.
کیت App Check برای هر درخواست، یک توکن با کاربرد محدود جدید تولید میکند. توجه داشته باشید که این فرآیند میتواند با افزایش تأخیر و گاهی اوقات هزینه (بسته به ارائهدهنده گواهی شما) بر درخواستهای شما تأثیر بگذارد.
تنظیم و اجرای محافظت در برابر بازپخش
برای مشاهده محتوا و کد مخصوص ارائهدهنده در این صفحه، روی ارائهدهنده API Gemini خود کلیک کنید. |
در اینجا نحوه تنظیم و اجرای محافظت در برابر بازپخش آمده است:
اگر قبلاً این کار را نکردهاید، با دنبال کردن دستورالعملهای قبلی در این صفحه، App Check راهاندازی کنید .
فعال کردن استفاده از توکنهای با کاربرد محدود.
در برنامه خود، هنگام نمونهسازی، پارامتر
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( useLimitedUseAppCheckTokens: true, ); // ...وحدت
// ... // During instantiation, enable usage of limited-use tokens var ai = FirebaseAI.GetInstance( useLimitedUseAppCheckTokens: true ); // ...محافظت در برابر بازپخش را اعمال کنید.
در کدبیس برنامهتان، مطمئن شوید که استفاده از توکنهای با کاربرد محدود را فعال کردهاید (به مرحله قبل مراجعه کنید).
در کنسول Firebase ، به مسیر Security > App Check بروید.
نمای معیارها را برای Firebase AI Logic گسترش دهید.
مطمئن شوید که گزینهی Baseline Protection فعال است (Enforced) ، و سپس روی Continue کلیک کنید.
برای محافظت در برابر بازپخش، یکی از گزینههای Unenforced (فقط نظارت) یا Enforced را انتخاب کنید.
برای تصمیمگیری در مورد زمان اعمال محافظت در برابر بازپخش، موارد زیر را در نظر بگیرید:
اگر تعداد قابل توجهی از کاربران شما احتمالاً از نسخههای قبلی برنامه شما بدون فعال کردن توکنهای با کاربرد محدود استفاده میکنند، نظارت بر درخواستهای شما توصیه میشود. اگر فوراً محافظت از بازپخش را اعمال کنید، درخواستهای این کاربران مسدود خواهد شد.
شما میتوانید بهطور خاص معیار Unverified: Reused token را رصد کنید، که تعداد درخواستهایی است که توکنی دارند که قبلاً در درخواست قبلی استفاده شده است. این معیار را در کنسول Firebase رصد کنید (به تب Security > App Check > APIs بروید).
اگر بخش قابل توجهی از درخواستهای اخیر در این دسته قرار دارند، میتوانید از ایجاد اختلال در کار کاربران جلوگیری کنید و برای اعمال محافظت در برابر تکرار، تا زمانی که کاربران بیشتری به نسخهای از برنامه شما که از توکنهای با کاربرد محدود استفاده میکند، بهروزرسانی نشدهاند، صبر کنید.
درک کنید که چگونه 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 ارسال شود، انجام میشود.
سوالات متداول و رفع اشکال
سوالات متداول و کدهای عیبیابی یا خطای بیشتر مربوط به Firebase AI Logic را بیابید.
بله، App Check باید برای تمام نسخههای برنامه شما که از Firebase AI Logic استفاده میکنند، اعمال شود.
بسیار مهم است که App Check در اسرع وقت اجرا شود - به خصوص قبل از اینکه برنامه خود را به یک سیستم کنترل کد منبع در دسترس عموم بسپارید، برنامه خود را به اشتراک بگذارید یا برنامه خود را در دسترس عموم قرار دهید.
اگر App Check فوراً در کدبیس برنامه خود پیادهسازی کنید، تمام نسخههای برنامه شما میتوانند توکنهای معتبر App Check ارسال کنند. درخواستی که توکن معتبر ارسال نکند، تأیید نشده تلقی میشود و هنگام اجرای App Check مسدود خواهد شد.
اگر قبلاً نسخهای از برنامه خود را برای کاربران نهایی منتشر کردهاید که App Check در آن پیادهسازی نشده است، به بخش سوالات متداول در مورد نحوه پیادهسازی و اجرای App Check برای یک برنامه منتشر شده مراجعه کنید.
برای نسخههایی از برنامه که App Check در آنها پیادهسازی نشده است، درخواستهای ارسالی به Firebase AI Logic از آن نسخهها، توکنهای App Check معتبری ندارند و تأیید نشده تلقی میشوند. این درخواستها هنگام اعمال App Check برای Firebase AI Logic مسدود خواهند شد.
دستورالعملهای زیر به شما کمک میکنند تا برنامه خود را منتقل کنید تا بتوانید App Check به گونهای اجرا کنید که از اختلال در سرویس برای برنامهای که از قبل منتشر شده و App Check ندارد، جلوگیری شود.
در اسرع وقت یک ارائهدهندهی گواهی تولید را در برنامهی خود پیادهسازی کنید.
- پلتفرمهای اپل : DeviceCheck یا App Attest یا reCAPTCHA Enterprise
- اندروید : بازی Integrity یا reCAPTCHA Enterprise
- وب : reCAPTCHA Enterprise
- فلاتر : از تمام ارائهدهندگان بالا ، از جمله reCAPTCHA Enterprise پشتیبانی میکند.
- یونیتی : از تمام ارائهدهندگان بالا پشتیبانی میکند (پشتیبانی از reCAPTCHA Enterprise به زودی ارائه خواهد شد)
درخواستهای برنامه خود را زیر نظر بگیرید تا به شما در تصمیمگیری در مورد زمان ایمن برای اجرای App Check کمک کند.
برای مثال، اگر تقریباً تمام درخواستهای اخیر از طرف کلاینتهای تأیید شده باشد، باید اجرای App Check را در نظر بگیرید.
برای توسعه محلی، زمانی که App Check اجباری است، میتوانید ارائهدهنده اشکالزدایی App Check تنظیم کنید و همچنان App Check برای Firebase AI Logic اجباری نگه دارید.
اگر خطای 403 - PERMISSION_DENIED دریافت کردید که میگوید To access this model, you must enforce Firebase App Check. Learn more: https://firebase.google.com/docs/ai-logic/app-check ، به این معنی است که درخواست شما توکن App Check معتبری ندارد و شما در حال تلاش برای دسترسی به مدلی هستید که معمولاً مورد سوءاستفاده قرار میگیرد.
برخی از مدلهای مولد به عنوان مدلهای رایج برای سوءاستفادهی عوامل مخرب شناسایی شدهاند.
از آنجا که شما App Check برای Firebase AI Logic اجرا نکردهاید، پروژه شما در برابر سوءاستفاده از این مدلها آسیبپذیر است. برای کمک به محافظت از توسعهدهندگان، Firebase دسترسی به این مدلها را مسدود میکند، مگر اینکه درخواست شامل یک توکن معتبر App Check باشد (به این معنی که App Check برای Firebase AI Logic اجرا شده باشد).
اگر میخواهید به مدلی که خطا را برگردانده است دسترسی پیدا کنید، موارد زیر را انجام دهید:
App Check برای Firebase AI Logic تنظیم کنید. برای توسعه محلی، مطمئن شوید که ارائه دهنده اشکال زدایی App Check تنظیم کرده اید.
اجرای App Check برای کمک به محافظت از API و مدلهای Gemini در برابر سوءاستفاده بسیار مهم است و اجرای آن برای رفع این خطا الزامی است.
درخواست را از برنامه خود به Firebase AI Logic دوباره ارسال کنید.
این درخواست یک توکن معتبر App Check ارسال میکند و دیگر خطای
403 - PERMISSION_DENIEDرا دریافت نخواهید کرد.قبل از انتشار برنامه خود برای کاربران نهایی، باید یک ارائهدهنده گواهی تولید (مانند App Attest، Play Integrity یا reCAPTCHA Enterprise ) راهاندازی کنید تا کاربران نهایی شما بتوانند هنگام اجرای App Check به ویژگی هوش مصنوعی شما دسترسی داشته باشند.
اگر خطای 403 - PERMISSION_DENIED دریافت کردید که میگوید Firebase AI Logic has been deactivated in this project. To resume using Firebase AI Logic, you must enforce Firebase App Check. Learn more: https://firebase.google.com/docs/ai-logic/app-check ، این بدان معناست که پروژه Firebase شما غیرفعال شناسایی شده است و App Check برای Firebase AI Logic فعال نیست.
«پروژههای غیرفعال» پروژههایی هستند که Firebase AI Logic در آنها فعال است، اما اخیراً هیچ استفادهای از Firebase AI Logic نکردهاند.
از آنجا که App Check را برای Firebase AI Logic فعال نکردهاید، پروژه شما در برابر سوءاستفاده از API Gemini آسیبپذیر است. برای کمک به محافظت از پروژه شما، Firebase استفاده از Firebase AI Logic را تا زمانی که App Check برای Firebase AI Logic فعال نکنید، غیرفعال کرده است.
وقتی آماده شدید که دوباره از Firebase AI Logic استفاده کنید، موارد زیر را انجام دهید:
App Check برای Firebase AI Logic تنظیم کنید. برای توسعه محلی، مطمئن شوید که ارائه دهنده اشکال زدایی App Check تنظیم کرده اید.
اجرای App Check برای کمک به محافظت از API و مدلهای Gemini در برابر سوءاستفاده بسیار مهم است و اجرای آن برای رفع این خطا الزامی است.
درخواست را از برنامه خود به Firebase AI Logic دوباره ارسال کنید.
این درخواست یک توکن معتبر App Check ارسال میکند و دیگر خطای
403 - PERMISSION_DENIEDرا دریافت نخواهید کرد.قبل از انتشار برنامه خود برای کاربران نهایی، باید یک ارائهدهنده گواهی تولید (مانند App Attest، Play Integrity یا reCAPTCHA Enterprise ) راهاندازی کنید تا کاربران نهایی شما بتوانند هنگام اجرای App Check به ویژگی هوش مصنوعی شما دسترسی داشته باشند.
شما میتوانید App Check برای Firebase AI Logic بدون ثبت برنامه خود در یک ارائهدهنده گواهی تولید، اعمال کنید. در عوض، میتوانید ارائهدهنده اشکالزدایی App Check راهاندازی کنید. این تنظیمات برای توسعه محلی یا اگر تازه کار با Firebase AI Logic را شروع کردهاید یا آن را امتحان میکنید، مفید است.
در اوایل این صفحه، میتوانید دستورالعملهای بهینهشدهای برای راهاندازی App Check برای Firebase AI Logic ، از جمله اجرای App Check و راهاندازی ارائهدهنده اشکالزدایی App Check پیدا کنید.
بررسی کنید که آیا App Check برای Firebase AI Logic اعمال شده است یا خیر.
در کنسول Firebase ، به تب Security > App Check > APIs بروید.
ردیف مربوط به Firebase AI Logic را پیدا کنید. اگر عبارت
Enforcedدر آن نوشته شده بود، بقیهی این دستورالعملها را ادامه دهید.
روی ردیف مربوط به Firebase AI Logic کلیک کنید تا نمودارهای معیارها را مشاهده کنید. در زیر این نمودارها، روی Set up کلیک کنید.
در صفحه اول پنجره ( حفاظت پایه )، گزینه Unenforced (monitoring only) را انتخاب کنید و سپس روی Continue کلیک کنید.
در صفحه بعدی ( محافظت در برابر پخش مجدد )، گزینه غیرفعال (Disabled ) را انتخاب کنید و سپس روی ادامه (Continue ) کلیک کنید.
در صفحه آخر، برای لغو App Check روی ادامه کلیک کنید.
وقتی App Check برای Firebase AI Logic اعمال نشود، API مربوط به Gemini در برابر سوءاستفاده آسیبپذیر است.
مطمئن شوید که دوباره App Check اجرا میکنید - بهخصوص قبل از اینکه برنامه خود را به یک سیستم کنترل کد منبع عمومی بسپارید، برنامه خود را به اشتراک بگذارید یا برنامه خود را بهطور عمومی در دسترس قرار دهید.