يحتوي 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 ، لكن هذه التفاصيل متروكة لك.
قم بإنشاء نقطة نهاية اكتساب الرمز المميز
قم بإنشاء نقطة نهاية يمكن الوصول إليها عبر الشبكة يمكنها تلقي بيانات الموثوقية من عملائك. على سبيل المثال ، باستخدام وظائف السحابة:
// Create endpoint at https://example-app.cloudfunctions.net/fetchAppCheckToken exports.fetchAppCheckToken = functions.https.onCall((authenticityData, context) => { // ... });
أضف إلى منطق نقطة النهاية الذي يقيم بيانات الموثوقية. هذا هو المنطق الأساسي لمزود App Check المخصص الخاص بك ، والذي ستحتاج إلى كتابته بنفسك.
إذا حددت أن العميل أصلي ، فاستخدم 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).
اختياري : عيّن مدة البقاء (TTL) لرموز التحقق من التطبيق الصادرة عن موفرك المخصص عن طريق تمرير كائن
AppCheckTokenOptions
لإنشاءcreateToken()
. يمكنك ضبط TTL على أي قيمة تتراوح بين 30 دقيقة و 7 أيام. عند تعيين هذه القيمة ، كن على دراية بالمقايضات التالية:- الأمان: توفر TTLs الأقصر أمانًا أقوى ، لأنها تقلل النافذة التي يمكن فيها للمهاجم إساءة استخدام رمز تم تسريبه أو اعتراضه.
- الأداء: تعني فترات البقاء القصيرة (TTL) الأقصر أن تطبيقك سيجري المصادقة بشكل متكرر أكثر. نظرًا لأن عملية التصديق على التطبيق تضيف وقت استجابة لطلبات الشبكة في كل مرة يتم إجراؤها ، يمكن أن تؤثر مدة البقاء القصيرة على أداء تطبيقك.
مدة البقاء الافتراضية لمدة ساعة واحدة مناسبة لمعظم التطبيقات.
الخطوات التالية
الآن بعد أن نفذت منطق جانب الخادم الخاص بالموفر المخصص ، تعرف على كيفية استخدامه من عملاء Apple و Android والويب .