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

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

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

1- إعداد مشروع Firebase

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

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

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

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

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

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

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

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

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

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

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

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

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 في Firebase، سيستخدم تطبيقك دائمًا الإصدارات المتوافقة من مكتبات 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 (الإصدار 32.5.0 من Firebase)، أصبح بإمكان مطوّري لغة 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());

الخطوات اللاحقة

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

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

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

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

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

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

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

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

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

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