Join us in person and online for Firebase Summit on October 18, 2022. Learn how Firebase can help you accelerate app development, release your app with confidence, and scale with ease. Register now

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

تنظيم صفحاتك في مجموعات يمكنك حفظ المحتوى وتصنيفه حسب إعداداتك المفضّلة.

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

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

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

  • تريد التحقق من الأجهزة باستخدام أنظمة أساسية بخلاف 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 والويب .