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

وقد بنيت في التطبيق تحقق دعم العديد من موفري: DeviceCheck والتطبيق تشهد على دائرة الرقابة الداخلية، السلامة SafetyNet على الروبوت، أو V3 اختبار reCAPTCHA في تطبيقات الويب ( نظرة عامة ). هؤلاء مقدمو خدمات مفهومة جيدًا ويجب أن تلبي احتياجات معظم المطورين. ومع ذلك ، يمكنك أيضًا تنفيذ موفري فحص التطبيق المخصص الخاص بك. يعد استخدام موفر مخصص ضروريًا عندما:

  • تريد استخدام موفر آخر بخلاف DeviceCheck أو App Attest على iOS أو SafetyNet على Android أو reCAPTCHA في تطبيقات الويب.

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

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

ملخص

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

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

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

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

  1. تركيب وتهيئة 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) الأقصر أن تطبيقك سيجري المصادقة بشكل متكرر أكثر. نظرًا لأن عملية التصديق على التطبيق تضيف وقت استجابة لطلبات الشبكة في كل مرة يتم إجراؤها ، يمكن أن تؤثر مدة البقاء القصيرة على أداء تطبيقك.

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

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

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