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

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

في الوقت الحالي، لا يتيح موفِّر "أمان Play" المضمّن سوى تطبيقات Android التي يم توزيعها Google Play. لاستخدام الميزات المتوفّرة خارج Play Integrity أو استخدام 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.6.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+KTX

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.