تنفيذ ميزة "فحص التطبيقات من Firebase" لحماية واجهات برمجة التطبيقات من العملاء غير المصرّح لهم

عند طلب واجهة برمجة تطبيقات مباشرةً من تطبيق على الأجهزة الجوّالة أو تطبيق ويب (مثل واجهات برمجة التطبيقات التي تتيح الوصول إلى نماذج الذكاء الاصطناعي التوليدي)، تكون واجهة برمجة التطبيقات عُرضة لإساءة الاستخدام من قِبل البرامج العميلة غير المفوّضة. للمساعدة في حماية واجهات برمجة التطبيقات هذه، يمكنك استخدام Firebase App Check للتحقّق من أنّ جميع طلبات واجهة برمجة التطبيقات الواردة هي من تطبيقك الفعلي.

Firebase AI Logic توفّر بوابة وكيل تتيح لك التكامل مع Firebase App Check وحماية واجهات برمجة التطبيقات الخاصة بنماذج الذكاء الاصطناعي التوليدي التي تطلبها تطبيقاتك على الأجهزة الجوّالة وتطبيقات الويب. إنّ استخدام 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.

إنشاء مثيل خاص مطلوب لـ 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 رموز الجلسات المميّزة التي تتراوح مدة بقائها القابلة للإعداد بين 30 دقيقة و7 أيام. يتم تخزين رموز الجلسات المميّزة هذه مؤقتًا في حزمة App Check SDK وإرسالها مع الطلبات من تطبيقك.

في المستقبل، سيضيف App Check خيارًا لتفعيل الحماية من إعادة استخدام الرموز لـ Firebase AI Logic (على غرار الدعم الذي يقدّمه App Check حاليًا لبعض الموارد الأخرى). عند تفعيل الحماية من إعادة استخدام الرموز، يتم تحسين الحماية بالطرق التالية:

  • لن يسمح App Check بالطلبات إلا إذا كانت مصحوبة بنوع خاص من الرموز المميّزة يُعرف باسم الرمز المميّز ذو الاستخدام المحدود.

  • بعد التحقّق من الرمز المميّز ذي الاستخدام المحدود، يتم استخدامه حتى لا يمكن استخدامه إلا مرة واحدة، ما يمنع الهجمات التي تهدف إلى إعادة استخدام الرموز.

للاستعداد للحماية من إعادة استخدام الرموز، ننصحك بتفعيل استخدام الرموز المميّزة ذات الاستخدام المحدود كجزء من إعداد App Check. بهذه الطريقة، عندما تصبح الحماية من إعادة استخدام الرموز متاحة، يمكنك تفعيلها في وقت أقرب لأنّ المزيد من المستخدمين سيستخدمون إصدارات من تطبيقك تُرسِل رموزًا مميّزة ذات استخدام محدود.

يُرجى العِلم بما يلي إذا فعّلت استخدام الرموز المميّزة ذات الاستخدام المحدود في تطبيقك الآن (أثناء عدم توفّر الحماية من إعادة استخدام الرموز):

  • لا يحظر App Check استخدام رموز الجلسات المميّزة الصالحة.

  • على غرار رموز الجلسات المميّزة، يتم تخزين الرموز المميّزة ذات الاستخدام المحدود مؤقتًا في حزمة App Check SDK وإرسالها مع الطلبات. توفر هذه الرموز المميزة ذات الاستخدام المحدود قدرًا صغيرًا من الحماية الإضافية مقارنةً برموز الجلسات المميزة التلقائية لأنّ الرموز المميزة ذات الاستخدام المحدود لها مدة بقاء أقصر (5 دقائق فقط وغير قابلة للتعديل) مقارنةً برموز الجلسات المميزة.

  • على الرغم من أنّ الرموز المميّزة ذات الاستخدام المحدود صالحة لمدة 5 دقائق، ستظل حزمة SDK تنشئ رمزًا مميّزًا جديدًا لكل طلب. يمكن أن تضيف هذه العملية بعض التأخير إلى طلبك.

مع ذلك، عندما تصبح الحماية من إعادة استخدام الرموز متاحة لـ Firebase AI Logic في الـ مستقبل (وتفعّلها)، لن يكون من الممكن استخدام رموز الجلسات المميّزة وإعادة استخدام الـ رموز المميّزة ذات الاستخدام المحدود. يُرجى العِلم أنّه سيظل هناك تأخير إضافي لإنشاء رمز مميّز جديد لكل طلب.

تفعيل استخدام الرموز المميّزة ذات الاستخدام المحدود

انقر على موفِّر Gemini API لعرض المحتوى الخاص بالموفِّر والرمز البرمجي على هذه الصفحة.

في ما يلي كيفية تفعيل استخدام الرموز المميّزة ذات الاستخدام المحدود:

  1. نفِّذ App Check وتأكَّد من أنك فعّلت فرض الاستخدام لتطبيقك.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(
      appCheck: FirebaseAppCheck.instance, // for Flutter, pass in App Check explicitly
      useLimitedUseAppCheckTokens: true,
    );
    
    // ...
    
    

    Unity

    سيتيح إصدار مستقبلي استخدام الرموز المميّزة ذات الاستخدام المحدود مع ألعاب Unity. يرجى معاودة التحقق بعد قليل.

فهم كيفية دمج 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" الذي اخترته وواجهات برمجة التطبيقات للوصول إلى Gemini و Imagen النماذج.