تنفيذ موفر فحص التطبيق المخصص

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

  • تريد استخدام موفر بخلاف الموفر المدمج.

  • تريد استخدام الموفرين المدمجين بطرق غير مدعومة.

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

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

ملخص

لتنفيذ موفر فحص تطبيق مخصص ، أنت بحاجة إلى بيئة خلفية آمنة يمكنها تشغيل Node.js Firebase Admin SDK . يمكن أن تكون هذه الوظائف السحابية ، أو منصة حاوية مثل Cloud Run ، أو خادمك الخاص.

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

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

قم بإنشاء نقطة نهاية اكتساب الرمز المميز

  1. قم بتثبيت وتهيئة Admin SDK .

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

    // Create endpoint at https://example-app.cloudfunctions.net/fetchAppCheckToken
    exports.fetchAppCheckToken = functions.https.onCall((authenticityData, context) => {
      // ...
    });
    
  3. أضف إلى منطق نقطة النهاية الذي يقيم بيانات الموثوقية. هذا هو المنطق الأساسي لمزود App Check المخصص لديك ، والذي ستحتاج إلى كتابته بنفسك.

  4. إذا حددت أن العميل أصلي ، فاستخدم Admin 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() . يمكنك ضبط TTL على أي قيمة تتراوح بين 30 دقيقة و 7 أيام. عند تعيين هذه القيمة ، كن على دراية بالمقايضات التالية:

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

    مدة البقاء الافتراضية لمدة ساعة واحدة مناسبة لمعظم التطبيقات.

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

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