تنفيذ ميزة "فحص التطبيقات من 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
);

// ...

الاستعداد للحماية المحسَّنة القادمة

ننصحك باستخدام أحدث إصدارات حزمة SDK، ولكن تأكَّد من استخدام أحد هذه الإصدارات على الأقل لتفعيل الرموز المميّزة المحدودة الاستخدام:
‫Apple platforms الإصدار 12.2.0 أو إصدار أحدث | Android BoM الإصدار 34.14.0 أو إصدار أحدث (App Check الإصدار 19.1.0 أو إصدار أحدث) | الويب الإصدار 12.14.0 أو إصدار أحدث | Flutter الإصدار 4.15.0 أو إصدار أحدث (App Check الإصدار 4.10.0 أو إصدار أحدث) | Unity الإصدار 13.12.0 أو إصدار أحدث

تستخدم 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

    // ...
    
    // During instantiation, enable usage of limited-use tokens
    var ai = FirebaseAI.GetInstance(
      useLimitedUseAppCheckTokens: true
    );
    
    // ...
    

كيفية تكامل 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.