عند طلب واجهة برمجة تطبيقات مباشرةً من تطبيق على الأجهزة الجوّالة أو تطبيق ويب (مثل واجهات برمجة التطبيقات التي تتيح الوصول إلى نماذج الذكاء الاصطناعي التوليدي)، تكون واجهة برمجة التطبيقات عُرضة لإساءة الاستخدام من قِبل البرامج العميلة غير المفوّضة. للمساعدة في حماية واجهات برمجة التطبيقات هذه، يمكنك استخدام Firebase App Check للتأكّد من أنّ جميع طلبات واجهة برمجة التطبيقات الواردة تأتي من تطبيقك الفعلي.
Firebase AI Logic توفّر بوابة وكيل تتيح لك التكامل مع Firebase App Check وحماية واجهات برمجة التطبيقات الخاصة بنماذج الذكاء الاصطناعي التوليدي التي تطلبها تطبيقاتك على الأجهزة الجوّالة وتطبيقات الويب. إنّ استخدام App Check مع Firebase AI Logic الخاصة بنا يتيح جميع إعداداتنا:
حماية كل من موفِّرَي "Gemini API": Gemini Developer API و Vertex AI Gemini API.
حماية جميع النماذج المتوافقة، سواء نماذج Gemini أو نماذج Imagen
ملخّص عالي المستوى لطريقة عمل App Check
باستخدام App Check، تستخدم الأجهزة التي تشغّل تطبيقك موفِّرًا للتحقّق من التطبيق أو الجهاز يتحقّق من أحد الإجراءَين التاليَين أو كليهما:
- الطلبات واردة من تطبيقك الأصلي
- الطلبات واردة من جهاز أصلي لم يتم التلاعب به
يتم إرفاق هذا التحقّق بكل طلب يقدّمه تطبيقك باستخدام حزمة تطوير برامج (SDK) خاصة بميزة Firebase AI Logic عند تفعيل فرض ميزة App Check، سيتم رفض الطلبات الواردة من البرامج العميلة التي لا تتضمّن تحقّقًا صالحًا، بالإضافة إلى أي طلب وارد من تطبيق أو منصة لم تمنحها الإذن.
ننصحك عند إعداد App Check بالحرص على الاستعداد للحماية المحسَّنة القادمة (المعروفة باسم الحماية من إعادة استخدام الرموز).
يمكنك العثور على معلومات تفصيلية عن App Check في مستنداتها، بما في ذلك الحصص والحدود القصوى.
الموفّرون المتاحون وتعليمات التنفيذ
توفر مستندات App Check أوصافًا لموفّري التحقّق بالإضافة إلى تعليمات التنفيذ.
اختَر موفّرًا تلقائيًا واتّبِع تعليمات التنفيذ على الروابط التالية:
- منصات Apple: DeviceCheck أو App Attest
- Android: Play Integrity
- الويب: reCAPTCHA Enterprise
- Flutter: تتوافق مع
جميع الموفّرين التلقائيين أعلاه
يُرجى أيضًا اتّباع متطلبات إنشاء مثيل خاصة بـ Flutter وميزة App Check. - Unity: تتوافق مع جميع الموفّرين التلقائيين أعلاه
يُرجى العِلم أنّه إذا لم يكن أي من الموفّرين التلقائيين كافيًا لتلبية احتياجاتك، يمكنك تنفيذ موفّر مخصّص يستخدم إما موفّر تحقّق تابعًا لجهة خارجية أو تقنيات التحقّق الخاصة بك.
(مُقترَح) يمكنك الاستعداد للحماية المحسَّنة القادمة من App Check (المعروفة باسم الحماية من إعادة استخدام الرموز).
(مطلوب) قبل إصدار تطبيقك للمستخدمين الفعليين، فعِّل فرض ميزة App Check.
إنشاء مثيل خاص مطلوب لـ Flutter
|
انقر على موفِّر Gemini API لعرض المحتوى الخاص بالموفِّر والرمز البرمجي على هذه الصفحة. |
عند استخدام App Check مع Firebase AI Logic في تطبيقات Flutter، عليك تمرير App Check بشكلٍ صريح أثناء إنشاء المثيل، على النحو التالي:
// ...
final ai = await FirebaseAI.googleAI(
appCheck: FirebaseAppCheck.instance, // for Flutter, pass in App Check explicitly
);
// ...
الاستعداد للحماية المحسَّنة القادمة
| يتيح استخدام الرموز المميّزة ذات الاستخدام المحدود لمنصات Apple (الإصدار 12.2.0 والإصدارات الأحدث) وAndroid (الإصدار 17.2.0 والإصدارات الأحدث، وBoM الإصدار 34.2.0 والإصدارات الأحدث) والويب (الإصدار 12.3.0 والإصدارات الأحدث) وFlutter (الإصدار 3.2.0 والإصدارات الأحدث، وBoM الإصدار 4.2.0 والإصدارات الأحدث). وسيتم توفير الدعم لـ Unity قريبًا. |
تستخدم App Check تلقائيًا رموز الجلسات التي تتراوح مدة بقائها (TTL) القابلة للإعداد
بين
في المستقبل، ستضيف App Check خيار تفعيل الحماية من إعادة استخدام الرموز لميزة Firebase AI Logic (على غرار الدعم الذي توفّره App Check حاليًا لبعض الموارد الأخرى). عند تفعيل الحماية من إعادة استخدام الرموز، يتم تحسين الحماية بالطرق التالية:
لن تسمح App Check بالطلبات إلا إذا كانت مصحوبة بنوع خاص من الرموز المميّزة يُعرف باسم الرمز المميّز ذو الاستخدام المحدود.
بعد التحقّق من الرمز المميّز ذي الاستخدام المحدود، يتم استخدامه حتى لا يكون بالإمكان استخدامه إلا مرة واحدة، ما يمنع الهجمات التي تهدف إلى إعادة استخدام الرموز.
للاستعداد للحماية من إعادة استخدام الرموز، ننصحك بتفعيل استخدام الرموز المميّزة ذات الاستخدام المحدود كجزء من إعداد App Check. بهذه الطريقة، عندما تصبح الحماية من إعادة استخدام الرموز متاحة، يمكنك تفعيلها في وقت أقرب لأنّ عددًا أكبر من المستخدمين سيستخدمون إصدارات من تطبيقك تُرسِل رموزًا مميّزة ذات استخدام محدود.
يُرجى العِلم بما يلي إذا فعّلت استخدام الرموز المميّزة ذات الاستخدام المحدود في تطبيقك الآن (أثناء عدم توفّر الحماية من إعادة استخدام الرموز):
لا تحظر ميزة "App Check" استخدام رموز الجلسات الصالحة.
على غرار رموز الجلسات، يتم تخزين الرموز المميّزة ذات الاستخدام المحدود مؤقتًا في App Check حزمة تطوير البرامج (SDK) وإرسالها مع الطلبات. توفر هذه الرموز المميزة ذات الاستخدام المحدود قدرًا صغيرًا من الحماية الإضافية مقارنةً برموز الجلسات التلقائية لأن الرموز المميزة ذات الاستخدام المحدود لها مدة بقاء أقصر (
5 دقائق فقط وغير قابلة للتعديل) مقارنةً برموز الجلسات.على الرغم من أنّ الرموز المميّزة ذات الاستخدام المحدود صالحة لمدة
5 دقائق ، ستظل حزمة تطوير البرامج (SDK) تنشئ رمزًا مميّزًا جديدًا لكل طلب. يمكن أن تضيف هذه العملية بعض التأخير إلى طلبك.
مع ذلك، عندما تصبح الحماية من إعادة استخدام الرموز متاحة لميزة Firebase AI Logic في الـ مستقبل (وتفعّلها)، لن يكون من الممكن استخدام رموز الجلسات وإعادة استخدام الرموز المميّزة ذات الاستخدام المحدود. يُرجى العِلم أنّ التأخير الإضافي لإنشاء رمز مميّز جديد لكل طلب سيظل يحدث.
تفعيل استخدام الرموز المميّزة ذات الاستخدام المحدود
|
انقر على موفِّر Gemini API لعرض المحتوى الخاص بالموفِّر والرمز البرمجي على هذه الصفحة. |
في ما يلي كيفية تفعيل استخدام الرموز المميّزة ذات الاستخدام المحدود:
نفِّذ App Check وتأكَّد من أنك فعّلت فرض App Check لتطبيقك.
في تطبيقك أثناء إنشاء المثيل، فعِّل استخدام الرموز المميّزة ذات الاستخدام المحدود من خلال ضبط المَعلمة
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( appCheck: FirebaseAppCheck.instance, // for Flutter, pass in App Check explicitly useLimitedUseAppCheckTokens: true, ); // ...Unity
سيتيح إصدار مستقبلي استخدام الرموز المميّزة ذات الاستخدام المحدود مع ألعاب Unity. يرجى معاودة التحقق بعد قليل.
فهم كيفية دمج ميزة Firebase AI Logic مع ميزة App Check
لاستخدام حِزم تطوير البرامج (SDK) الخاصة بميزة Firebase AI Logic، يجب تفعيل
Firebase AI Logic API (firebasevertexai.googleapis.com)
في مشروع Firebase. وذلك لأنّ الطلبات التي تقدّمها حِزم تطوير البرامج (SDK) الخاصة بـ
Firebase AI Logic تُرسَل أولاً إلى خادم Firebase AI Logic
، الذي يعمل كبوابة وكيل حيث يتم التحقّق من Firebase App Check
قبل السماح للطلب بالانتقال إلى الواجهة الخلفية لموفِّر "Gemini API" الذي اخترته وواجهات برمجة التطبيقات للوصول إلى نماذج Gemini
وImagen.