تمكين التحقق من التطبيق مع موفر مخصص على تطبيقات الويب

توضح لك هذه الصفحة كيفية تمكين App Check في تطبيق ويب ، باستخدام موفر App Check المخصص الخاص بك . عند تمكين التحقق من التطبيق ، فإنك تساعد في التأكد من أن تطبيقك هو الوحيد الذي يمكنه الوصول إلى موارد Firebase لمشروعك.

إذا كنت تريد استخدام App Check مع أحد الموفرين المدمجين ، فراجع المستندات الخاصة بـ App Check مع reCAPTCHA v3 والتحقق من التطبيق مع reCAPTCHA Enterprise .

قبل ان تبدأ

1. أضف مكتبة App Check إلى تطبيقك

أضف Firebase إلى تطبيق الويب الخاص بك إذا لم تكن قد قمت بذلك بالفعل. تأكد من استيراد مكتبة App Check.

2. قم بإنشاء كائن موفر التحقق من التطبيق

قم بإنشاء كائن App Check Provider للموفر المخصص الخاص بك. يجب أن يحتوي هذا الكائن على طريقة getToken() ، والتي تجمع أي معلومات يطلبها موفر App Check المخصص كدليل على المصداقية ، ويرسلها إلى خدمة الحصول على الرمز المميز في مقابل رمز التحقق من التطبيق. يتعامل App Check SDK مع التخزين المؤقت للرمز المميز ، لذا احصل دائمًا على رمز مميز جديد في تنفيذ getToken() .

Web version 9

const { CustomProvider } = require("firebase/app-check");

const appCheckCustomProvider = new CustomProvider({
  getToken: () => {
    return new Promise((resolve, _reject) => {
      // TODO: Logic to exchange proof of authenticity for an App Check token and
      // expiration time.

      // ...

      const appCheckToken = {
        token: tokenFromServer,
        expireTimeMillis: expirationFromServer * 1000
      };

      resolve(appCheckToken);
    });
  }
});

Web version 8

const appCheckCustomProvider = {
  getToken: () => {
    return new Promise((resolve, _reject) => {
      // TODO: Logic to exchange proof of authenticity for an App Check token and
      // expiration time.

      // ...

      const appCheckToken = {
        token: tokenFromServer,
        expireTimeMillis: expirationFromServer * 1000
      };

      resolve(appCheckToken);
    });
  }
};

3. تهيئة فحص التطبيق

أضف رمز التهيئة التالي إلى تطبيقك ، قبل الوصول إلى أي من خدمات Firebase:

Web version 9

const { initializeApp } = require("firebase/app");
const { initializeAppCheck } = require("firebase/app-check");

const app = initializeApp({
  // Your firebase configuration object
});

const appCheck = initializeAppCheck(app, {
  provider: appCheckCustomProvider,

  // Optional argument. If true, the SDK automatically refreshes App Check
  // tokens as needed.
  isTokenAutoRefreshEnabled: true    
});

Web version 8

firebase.initializeApp({
  // Your firebase configuration object
});

const appCheck = firebase.appCheck();
appCheck.activate(
  appCheckCustomProvider,

  // Optional argument. If true, the SDK automatically refreshes App Check
  // tokens as needed.
  true);

بمجرد تثبيت مكتبة App Check في تطبيقك ، انشرها.

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

4. مقاييس مراقبة الطلب

الآن بعد أن أصبح تطبيقك المحدث في أيدي المستخدمين ، يمكنك تمكين فرض التحقق من التطبيق لمنتجات Firebase التي تستخدمها. ومع ذلك ، قبل القيام بذلك ، يجب أن تتأكد من أن القيام بذلك لن يؤدي إلى تعطيل المستخدمين الشرعيين الحاليين لديك.

قاعدة بيانات Realtime و Cloud Firestore والتخزين السحابي

أداة مهمة يمكنك استخدامها لاتخاذ هذا القرار لقاعدة بيانات Realtime و Cloud Firestore و Cloud Storage هي شاشة مقاييس طلب التحقق من التطبيق.

لعرض مقاييس طلب فحص التطبيق لمنتج ما ، افتح قسم فحص التطبيق في وحدة تحكم Firebase. فمثلا:

لقطة شاشة لصفحة مقاييس التحقق من التطبيق

مقاييس الطلب لكل منتج مقسمة إلى أربع فئات:

  • الطلبات التي تم التحقق منها هي تلك التي تحتوي على رمز مميز صالح للتحقق من التطبيق. بعد تمكين فرض التحقق من التطبيق ، ستنجح الطلبات في هذه الفئة فقط.

  • طلبات العملاء القديمة هي تلك التي تفتقد إلى رمز التحقق من التطبيق. قد تكون هذه الطلبات من إصدار أقدم من Firebase SDK قبل تضمين App Check في التطبيق.

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

  • الطلبات غير الصالحة هي الطلبات التي تحتوي على رمز مميز غير صالح لفحص التطبيق ، والذي قد يكون من عميل غير أصلي يحاول انتحال شخصية تطبيقك ، أو من بيئات تمت محاكاتها.

يجب أن يبلغ توزيع هذه الفئات لتطبيقك عندما تقرر تمكين الإنفاذ. فيما يلي بعض الإرشادات:

  • إذا كانت جميع الطلبات الأخيرة تقريبًا من عملاء تم التحقق منهم ، ففكر في تمكين التنفيذ لبدء حماية موارد الواجهة الخلفية.

  • إذا كان جزء كبير من الطلبات الأخيرة من عملاء محتمل عفا عليها الزمن ، لتجنب إزعاج المستخدمين ، ففكر في انتظار المزيد من المستخدمين لتحديث تطبيقك قبل تمكين التنفيذ. سيؤدي فرض فحص التطبيق على تطبيق تم إصداره إلى كسر إصدارات التطبيق السابقة التي لم يتم دمجها مع App Check SDK.

  • إذا لم يتم تشغيل تطبيقك بعد ، فيجب عليك تمكين فرض التحقق من التطبيق على الفور ، نظرًا لعدم وجود أي عملاء قديمين قيد الاستخدام.

وظائف السحابة

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

{
  "severity": "INFO",    // INFO, WARNING, or ERROR
  "logging.googleapis.com/labels": {"firebase-log-type": "callable-request-verification"},
  "jsonPayload": {
    "message": "Callable header verifications passed.",
    "verifications": {
      // ...
      "app": "MISSING",  // VALID, INVALID, or MISSING
    }
  }
}

يمكنك تحليل هذه المقاييس في Google Cloud Console عن طريق إنشاء مقياس عداد قائم على السجلات باستخدام مرشح المقاييس التالي:

resource.type="cloud_function"
resource.labels.function_name="YOUR_CLOUD_FUNCTION"
resource.labels.region="us-central1"
labels.firebase-log-type="callable-request-verification"

قم بتسمية المقياس باستخدام الحقل jsonPayload.verifications.appCheck .

5. تمكين الإنفاذ

لتمكين التنفيذ ، اتبع التعليمات الخاصة بكل منتج أدناه. بمجرد تمكين فرض لمنتج ما ، سيتم رفض جميع الطلبات التي لم يتم التحقق منها لهذا المنتج.

قاعدة بيانات Realtime و Cloud Firestore والتخزين السحابي

لتمكين فرض تطبيق Realtime Database و Cloud Firestore (iOS و Android) والتخزين السحابي:

  1. افتح قسم فحص التطبيق في وحدة تحكم Firebase.

  2. قم بتوسيع عرض المقاييس للمنتج الذي تريد تمكين فرضه.

  3. انقر فوق فرض وقم بتأكيد اختيارك.

لاحظ أن الأمر قد يستغرق ما يصل إلى 15 دقيقة بعد تمكين التنفيذ حتى يتم تفعيله.

وظائف السحابة

راجع تمكين فرض التحقق من التطبيق لوظائف السحابة .