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

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

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

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

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

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

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

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

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

  3. سجِّل تطبيقاتك لاستخدام ميزة "فحص التطبيقات" لدى مقدِّم خدمة Play Integrity في قسم فحص التطبيقات ضِمن "وحدة تحكُّم Firebase". وعليك تقديم الملف المرجعي لشهادة SHA-256 لشهادة التوقيع الخاصة بتطبيقك.

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

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

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

    إن مدة البقاء التلقائية التي تبلغ ساعة واحدة مناسبة لمعظم التطبيقات. لاحظ أن مكتبة فحص التطبيقات تُعيد تحميل الرموز المميزة خلال نصف مدة TTL تقريبًا.

2- إضافة مكتبة "فحص التطبيقات" إلى تطبيقك

في ملف 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.1.2"))

    // 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")
}

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

(بديل) أضِف تبعيات مكتبة Firebase بدون استخدام قائمة BoM.

إذا اختَرت عدم استخدام قائمة مشروعات Firebase، يجب تحديد كل إصدار من إصدارات مكتبة 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- إعداد ميزة "فحص التطبيقات"

أضِف رمز الإعداد التالي إلى تطبيقك حتى يتم تشغيله قبل استخدام أيّ حِزم تطوير برامج (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 مع كل طلب يُرسله إلى Firebase، ولكن لن تتطلب منتجات Firebase أن تكون الرموز المميزة صالحة إلى أن يتم تفعيل التنفيذ في قسم "فحص التطبيقات" من وحدة تحكم Firebase.

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

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

للمساعدة في اتخاذ هذا القرار، يمكنك الاطّلاع على مقاييس "فحص التطبيقات" للخدمات التي تستخدمها:

تفعيل فرض فحص التطبيقات

عندما تفهم مدى تأثير ميزة "فحص التطبيقات" في المستخدمين وتصبح جاهزًا للمتابعة، يمكنك تفعيل فرض "فحص التطبيقات":

استخدام ميزة "التحقّق من التطبيقات" في بيئات تصحيح الأخطاء

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

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