الاستعانة بموفِّر لخدمة فحص التطبيقات المخصّص

تتوافق ميزة "فحص التطبيقات" مع العديد من مقدّمي الخدمات، وهما: DeviceCheck وApp Attest. على منصات Apple وPlay Integrity و SafetyNet على Android وreCAPTCHA Enterprise في تطبيقات الويب (نظرة عامة). هؤلاء مزودون مفهومون جيدًا ينبغي أن يلبيوا احتياجات معظم المطورين. ومع ذلك، يمكنك أيضًا تنفيذ عملية فحص التطبيقات المخصّصة. التطبيقات. يجب الاستعانة بمقدّم خدمة مخصّص في الحالات التالية:

  • كنت تريد استخدام مزود خدمة آخر غير الموفّر المدمج.

  • تريد استخدام مزوّدي الخدمة المضمَّنين بطرق غير متوافقة.

  • ترغب في إثبات ملكية أجهزة باستخدام أنظمة أساسية غير Apple وAndroid الويب. على سبيل المثال، يمكنك إنشاء موفِّري خدمة "التحقّق من التطبيقات" لأجهزة كمبيوتر سطح المكتب أو أجهزة إنترنت الأشياء (IoT).

  • إذا كنت تريد تنفيذ أساليب إثبات الملكية الخاصة بك على أي منصة.

نظرة عامة

لتنفيذ موفِّر ميزة "فحص التطبيقات" المخصَّص، يجب استخدام واجهة خلفية آمنة. يمكنها تشغيل حزمة تطوير البرامج لمشرف Firebase في Node.js. يمكن أن يكون هذا Cloud Functions، وهو نظام أساسي للحاويات مثل التشغيل في السحابة الإلكترونية أو خادمك الخاص.

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

عادةً، تعرض هذه الخدمة كنقطة نهاية REST أو gRPC، ولكن هذه التفاصيل متروك لك.

إنشاء نقطة نهاية الحصول على الرمز المميّز

  1. ثبِّت حزمة SDK للمشرف وإعدادها.

  2. إنشاء نقطة نهاية يمكن الوصول إليها من الشبكة والتي يمكنها تلقي بيانات الأصالة من لعملائك. على سبيل المثال، استخدام دوال السحابة:

    // Create endpoint at https://example-app.cloudfunctions.net/fetchAppCheckToken
    exports.fetchAppCheckToken = functions.https.onRequest((request, response) => {
      // ...
    });
    
  3. أضف إلى منطق نقطة النهاية الذي يقيّم صحة البيانات. هذه هي المنطق الأساسي لموفّر خدمة "فحص التطبيقات" المخصّص، الذي ستحتاج إلى اكتب بنفسك.

  4. إذا قررت أن العميل أصلي، استخدم SDK للمشرف لإنشاء الرمز المميز لفحص التطبيق وإرجاعه ووقت انتهاء صلاحيته إلى العميل:

    const admin = require('firebase-admin');
    admin.initializeApp();
    
    // ...
    
    admin.appCheck().createToken(appId)
        .then(function (appCheckToken) {
          // Token expires in an hour.
          const expiresAt = Math.floor(Date.now() / 1000) + 60 * 60;
    
          // Return appCheckToken and expiresAt to the client.
        })
       .catch(function (err) {
         console.error('Unable to create App Check token.');
         console.error(err);
       });
    

    إذا لم تتمكن من إثبات مصداقية العميل، اعرض رسالة خطأ (على سبيل المثال، تعرض خطأ HTTP 403).

  5. اختياري: يمكنك تحديد مدة البقاء (TTL) لرموز "فحص التطبيق" الصادرة عن موفِّر خدمة مخصّص من خلال تمرير كائن AppCheckTokenOptions إلى createToken() يمكنك ضبط مدة البقاء على أي قيمة بين 30 دقيقة و7. أيام. عند ضبط هذه القيمة، عليك الانتباه إلى الحلول التالية:

    • الأمان: توفر فترات TTL الأقصر مستوى أمان أعلى، لأنه يقلل من يمكن فيها إساءة استخدام رمز مميز تم تسريبه أو اعتراضه من خلال مهاجم.
    • الأداء: تعني فترات TTL الأقصر أنّ تطبيقك سيجري المصادقة بمعدّل أكبر وبشكل متكرر. لأنّ عملية المصادقة على التطبيق تضيف وقت استجابة إلى الشبكة في كل مرة يتم فيها تنفيذها، يمكن أن تؤثر مدة البقاء القصيرة في الأداء لتطبيقك.

    بالنسبة إلى معظم التطبيقات، تكون مدة البقاء التلقائية التي تبلغ ساعة واحدة معقولة.

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

والآن بعد أن نفذت المنطق من جانب الخادم لموفر الخدمة المخصص، تعرَّف على لاستخدامها من Apple برامج Android والويب