حماية بيانات اعتماد Google Cloud لتعلُّم الآلة من Firebase

إذا كان تطبيقك المتوافق مع Android يستخدم إحدى واجهات برمجة التطبيقات في السحابة الإلكترونية لتعلُّم الآلة من Firebase، قبل إطلاق تطبيق جديد في قناة الإصدار العلني، عليك اتّخاذ بعض الخطوات الإضافية لمنع الوصول غير المصرح به إلى واجهة برمجة التطبيقات.

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

بعد ذلك، ستنشئ مفتاح واجهة برمجة تطبيقات مخصص لتصحيح الأخطاء فقط ويمكنك استخدامه في تسهيل الاستخدام. أثناء الاختبار والتطوير.

1- تسجيل تطبيقات الإنتاج في Firebase

أولاً، عليك تسجيل تطبيقات الإنتاج في Firebase.

  1. يُرجى التأكّد من توفُّر توقيعات SHA-1 لتطبيقك. ارجع إلى مصادقة العميل لمعرفة كيفية إجراء ذلك.

  2. يُرجى الانتقال إلى "" إعدادات المشروع في وحدة تحكُّم Firebase، ثم اختَر الإعدادات. .

  3. انتقِل إلى بطاقة تطبيقاتك، ثم اختَر تطبيق Android.

  4. إضافة توقيع SHA-1 لتطبيقك إلى معلومات التطبيق

2- تقييد نطاق مفاتيح واجهة برمجة التطبيقات

بعد ذلك، يمكنك ضبط مفاتيح واجهة برمجة التطبيقات الحالية لمنع الوصول إلى Cloud Vision. واجهة برمجة التطبيقات:

  1. افتح صفحة بيانات الاعتماد في وحدة تحكُّم Google Cloud. اختَر مشروعك عندما يُطلب منك ذلك.

  2. افتح عرض التعديل لكل مفتاح واجهة برمجة تطبيقات حالي في القائمة.

  3. في القسم قيود واجهة برمجة التطبيقات، اختَر تقييد المفتاح، ثم أضِف البيانات إلى قائمة بجميع واجهات برمجة التطبيقات التي تريد أن يصل إليها مفتاح واجهة برمجة التطبيقات. يُرجى التأكد من أنّ: عدم تضمين Cloud Vision API

    عند ضبط قيود واجهة برمجة التطبيقات لمفتاح واجهة برمجة التطبيقات، يتم للإعلان عن واجهات برمجة التطبيقات التي يمكن للمفتاح الوصول إليها. بشكل افتراضي، عندما لا تستخدم واجهة برمجة التطبيقات القيود على عدم تقييد المفتاح، يمكن تحديد مفتاح واجهة برمجة التطبيقات يُستخدم للوصول إلى أي واجهة برمجة تطبيقات تم تفعيلها للمشروع.

والآن، لن تمنح مفاتيح واجهة برمجة التطبيقات الحالية إمكانية الوصول إلى خدمات تعلُّم الآلة في السحابة الإلكترونية، ولكن ستمنح كل في العمل على أي واجهات برمجة تطبيقات أضفتها إلى قيود واجهة برمجة التطبيقات. الحالية.

يُرجى العِلم أنّه في حال تفعيل أي واجهات برمجة تطبيقات إضافية في المستقبل، يجب إضافتها إلى قائمة قيود واجهة برمجة التطبيقات لمفتاح واجهة برمجة التطبيقات الساري.

3- إنشاء مفتاح واجهة برمجة تطبيقات مخصّص لتصحيح الأخطاء فقط واستخدامه

وأخيرًا، أنشئ مفتاح واجهة برمجة تطبيقات جديدًا لاستخدامه فقط في عملية التطوير. يمكن لتعلُّم الآلة في Firebase استخدام مفتاح واجهة برمجة التطبيقات هذا للوصول إلى خدمات Google Cloud في البيئات التي يكون فيها التطبيق المصادقة، كما هو الحال عند التشغيل على أدوات المحاكاة.

  1. أنشئ مفتاح واجهة برمجة تطبيقات جديدًا لاستخدامه في التطوير:

    1. افتح صفحة بيانات الاعتماد في وحدة تحكُّم Google Cloud. اختَر مشروعك عندما يُطلب منك ذلك.

    2. انقر على إنشاء بيانات اعتماد > مفتاح واجهة برمجة التطبيقات وتدوين ملاحظات حول واجهة برمجة التطبيقات الجديدة المفتاح. يسمح هذا المفتاح بالوصول إلى واجهة برمجة التطبيقات من التطبيقات التي لم تتم مصادقتها، وبالتالي الحفاظ على سرية هذا المفتاح

  2. لضمان عدم تسريب مفتاح واجهة برمجة التطبيقات الجديد لتصحيح الأخطاء مع تطبيقك الذي تم إصداره، تحديد مفتاح واجهة برمجة التطبيقات لتصحيح الأخطاء في ملف بيان Android يُستخدم فقط لتصحيح الأخطاء إصدار:

    1. إذا لم يكن لديك بيان تصحيح الأخطاء، أنشئ واحدًا بالنقر على ملف > جديد > غير ذلك > ملف بيان Android واختيار debug من مجموعات المصادر المستهدفة.

    2. في بيان تصحيح الأخطاء، أضِف التعريف التالي:

      <application>
      <meta-data
          android:name="com.firebase.ml.cloud.ApiKeyForDebug"
          android:value="your-debug-api-key" />
      </application>
      
  3. في تطبيقك، اضبط تعلُّم الآلة في Firebase لاستخدام مطابقة الملف المرجعي للشهادة ومصادقة العميل في مرحلة الإنتاج واستخدام مفاتيح واجهة برمجة التطبيقات - تصحيح الأخطاء مفتاح - فقط في إصدارات تصحيح الأخطاء:

    Kotlin+KTX

    val optionsBuilder = FirebaseVisionCloudImageLabelerOptions.Builder()
    if (!BuildConfig.DEBUG) {
        // Requires physical, non-rooted device:
        optionsBuilder.enforceCertFingerprintMatch()
    }
    
    // Set other options. For example:
    optionsBuilder.setConfidenceThreshold(0.8f)
    // ...
    
    // And lastly:
    val options = optionsBuilder.build()
    FirebaseVision.getInstance().getCloudImageLabeler(options).processImage(myImage)

    Java

    FirebaseVisionCloudImageLabelerOptions.Builder optionsBuilder =
            new FirebaseVisionCloudImageLabelerOptions.Builder();
    if (!BuildConfig.DEBUG) {
        // Requires physical, non-rooted device:
        optionsBuilder.enforceCertFingerprintMatch();
    }
    
    // Set other options. For example:
    optionsBuilder.setConfidenceThreshold(0.8f);
    // ...
    
    // And lastly:
    FirebaseVisionCloudImageLabelerOptions options = optionsBuilder.build();
    FirebaseVision.getInstance().getCloudImageLabeler(options).processImage(myImage);

الخطوات التالية

يمكنك الاطّلاع على قائمة التحقق للإطلاق للحصول على معلومات حول إعداد تطبيقك لإطلاقه عند استخدام ميزات Firebase الأخرى.