بدء استخدام ميزة "فحص التطبيق" مع ميزة Play Integrity على نظام Android

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

في الوقت الحالي، لا يتيح موفِّر "أمان Play" المضمّن سوى تطبيقات Android التي يم توزيعها Google Play. لاستخدام ميزات "أمان Play" خارج Play، أو لاستخدام App Check مع موفِّر مخصّص، يُرجى الاطّلاع على تنفيذ موفِّر App Check مخصّص.

1. إعداد مشروعك على Firebase

  1. أضِف Firebase إلى مشروع Android إذا لم يسبق لك إجراء ذلك.

  2. فعِّل واجهة برمجة التطبيقات Play Integrity API باتّباع الخطوات التالية:

    1. في Google Play Console، اختَر تطبيقك أو أضِفه إذا لم يسبق لك ذلك.

    2. في قسم الإصدار، انقر على سلامة التطبيق.

    3. انتقِل إلى قسم Play Integrity API في الصفحة، وانقر على ربط مشروع Cloud، ثم اختَر مشروعك على Firebase من قائمة مشاريع Google Cloud. يجب أن يكون المشروع الذي تختاره هنا هو مشروع Firebase نفسه الذي ثبت فيه تطبيقك (راجِع الخطوة التالية).

  3. سجِّل تطبيقاتك لاستخدام App Check مع مقدّم خدمة Play Integrity في قسم App Check في وحدة تحكّم Firebase. عليك تقديم الملف المرجعي لشهادة SHA-256 لشهادة توقيع تطبيقك.

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

  4. اختياري: في إعدادات تسجيل التطبيق، اضبط مدة بقاء مخصّصة (TTL) لبيانات اعتماد App Check التي يصدرها مقدّم الخدمة. يمكنك ضبط وقت الاستبدال على أي قيمة تتراوح بين 30 دقيقة و7 أيام. عند تغيير هذه القيمة، يجب مراعاة المفاضلات التالية:

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

    إنّ مدة البقاء التلقائية التي تبلغ ساعة واحدة هي مدة معقولة لمعظم التطبيقات. يُرجى العلم أنّ مكتبة App Check تُعيد تحميل الرموز المميّزة بعد مرور نصف مدة مدة بقاء المعلومات (TTL) تقريبًا.

2- إضافة مكتبة App Check إلى تطبيقك

في ملف Gradle للوحدة (على مستوى التطبيق) (عادةً <project>/<app-module>/build.gradle.kts أو <project>/<app-module>/build.gradle)، أضِف الاعتمادية لمكتبة App Check لنظام التشغيل Android. ننصحك باستخدام الرمز Firebase Android BoM للتحكّم في إصدارات المكتبة.

dependencies {
    // Import the BoM for the Firebase platform
    implementation(platform("com.google.firebase:firebase-bom:33.7.0"))

    // Add the dependencies for the App Check libraries
    // When using the BoM, you don't specify versions in Firebase library dependencies
    implementation("com.google.firebase:firebase-appcheck-playintegrity")
}

باستخدام Firebase Android BoM، سيستخدم تطبيقك دائمًا إصدارات متوافقة من مكتبات Firebase لنظام التشغيل Android.

(بديل)  إضافة تبعيات مكتبة Firebase بدون استخدام BoM

إذا اخترت عدم استخدام Firebase BoM، يجب تحديد كل إصدار من مكتبة Firebase في سطر التبعية الخاص به.

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

dependencies {
    // Add the dependencies for the App Check libraries
    // When NOT using the BoM, you must specify versions in Firebase library dependencies
    implementation("com.google.firebase:firebase-appcheck-playintegrity:18.0.0")
}
هل تبحث عن وحدة مكتبة خاصة بلغة Kotlin؟ اعتبارًا من تشرين الأول (أكتوبر) 2023 (Firebase BoM 32.5.0)، يمكن لمطوّري Kotlin وJava الاعتماد على وحدة المكتبة الرئيسية (للاطّلاع على التفاصيل، راجِع الأسئلة الشائعة حول هذه المبادرة).

3- بدء App Check

أضِف رمز الإعداد التالي إلى تطبيقك كي يتم تشغيله قبل استخدام أي حِزم أخرى لتطوير البرامج (SDK) لمنصّة Firebase:

Kotlin

Firebase.initialize(context = this)
Firebase.appCheck.installAppCheckProviderFactory(
    PlayIntegrityAppCheckProviderFactory.getInstance(),
)

Java

FirebaseApp.initializeApp(/*context=*/ this);
FirebaseAppCheck firebaseAppCheck = FirebaseAppCheck.getInstance();
firebaseAppCheck.installAppCheckProviderFactory(
        PlayIntegrityAppCheckProviderFactory.getInstance());

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

بعد تثبيت مكتبة App Check في تطبيقك، ابدأ بتوزيع التطبيق المعدَّل على المستخدمين.

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

مراقبة المقاييس وتفعيل إجراءات التنفيذ

قبل تفعيل ميزة "فرض الدفع"، عليك التأكّد من أنّ ذلك لن يؤدي إلى تعطيل الخدمة للمستخدمين الحاليين والقانونيين. من ناحية أخرى، إذا لاحظت استخدامًا مريبًا لمراجع تطبيقك، ننصحك بتفعيل إجراءات التنفيذ في وقت أقرب.

للمساعدة في اتخاذ هذا القرار، يمكنك الاطّلاع على مقاييس App Check للخدمات التي تستخدمها:

تفعيل إجراءات تنفيذ App Check

بعد فهم مدى تأثير App Check في المستخدمين واستعدادك للمتابعة، يمكنك تفعيل فرض App Check:

استخدام App Check في بيئات تصحيح الأخطاء

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

راجِع مقالة استخدام App Check مع موفِّر تصحيح الأخطاء على Android.