توضّح لك هذه الصفحة كيفية تفعيل App Check في تطبيق Android باستخدام موفّر Play Integrity المضمّن. عند تفعيل App Check، يمكنك المساعدة في ضمان عدم تمكّن أي تطبيق آخر من الوصول إلى موارد الخلفية الخاصة بمشروعك. يمكنك الاطّلاع على نظرة عامة حول هذه الميزة.
يتوافق موفِّر Play Integrity مع تطبيقات Android المنشورة على Google Play أو خارجه أو كليهما. إذا كانت حالة الاستخدام تتطلّب ميزات في Play Integrity غير متوفّرة في App Check، أو إذا كنت تريد استخدام App Check مع مقدّم خدمة مخصّص، يمكنك الاطّلاع على تنفيذ مقدّم خدمة App Check مخصّص.
1. إعداد مشروعك على Firebase
أضِف Firebase إلى مشروع Android إذا لم يسبق لك إجراء ذلك.
فعِّل واجهة برمجة التطبيقات Play Integrity API باتّباع الخطوات التالية:
في Google Play Console، اختَر تطبيقك أو أضِفه إذا لم يسبق لك فعل ذلك.
في قسم الإصدار، انقر على سلامة التطبيق.
انتقِل إلى قسم Play Integrity API في الصفحة، وانقر على ربط مشروع على Cloud، ثم اختَر مشروعك على Firebase من قائمة مشاريع Google Cloud. يجب أن يكون المشروع الذي تختاره هنا هو مشروع Firebase نفسه الذي تسجّل فيه تطبيقك (راجِع الخطوة التالية).
سجِّل تطبيقاتك لاستخدام App Check مع موفّر خدمة Play Integrity في قسم App Check ضمن وحدة تحكّم Firebase. عليك تقديم الملف المرجعي لمعيار SHA-256 لشهادة توقيع تطبيقك.
عليك عادةً تسجيل جميع تطبيقات مشروعك، لأنّه بعد تفعيل فرض القيود على أحد منتجات Firebase، لن تتمكّن سوى التطبيقات المسجّلة من الوصول إلى موارد الخلفية الخاصة بالمنتج.
اختياري: في إعدادات تسجيل التطبيق، اضبط مدة بقاء (TTL) مخصّصة لرموز App Check المميزة الصادرة عن مقدّم الخدمة. يمكنك ضبط قيمة TTL على أي قيمة تتراوح بين 30 دقيقة و7 أيام. عند تغيير هذه القيمة، يجب الانتباه إلى المفاضلات التالية:
- الأمان: توفّر قيم TTL الأقصر مستوى أمان أعلى، لأنّها تقلّل من الفترة الزمنية التي يمكن للمهاجم إساءة استخدام الرمز المميز المسروق أو الذي تم اعتراضه خلالها.
- الأداء: يعني استخدام مدة بقاء (TTL) أقصر أنّ تطبيقك سيجري عملية التصديق بشكل متكرّر أكثر. بما أنّ عملية إثبات صحة التطبيق تضيف وقت استجابة إلى طلبات الشبكة في كل مرة يتم تنفيذها، يمكن أن تؤثّر مدة البقاء القصيرة في أداء تطبيقك.
- الحصة والتكلفة: تؤدي قيم TTL الأقصر وعمليات إعادة التصديق المتكررة إلى استنفاد حصتك بشكل أسرع، وقد تؤدي إلى زيادة التكلفة بالنسبة إلى الخدمات المدفوعة. يُرجى الاطّلاع على الحصص والحدود.
إنّ مدة البقاء التلقائية البالغة ساعة واحدة مناسبة لمعظم التطبيقات. يُرجى العِلم أنّ مكتبة App Check تعيد تحميل الرموز المميزة بعد نصف مدة بقاء (TTL) الرمز المميز تقريبًا.
ضبط الإعدادات المتقدّمة (اختياري)
توفّر App Check عددًا من الإعدادات التي تتيح حالات استخدام متقدّمة، بما في ذلك توزيع تطبيقك خارج Google Play. يمكنك ضبط هذه الإعدادات في قسم App Check في Firebase لكل تطبيق من تطبيقات Android. ننصحك بضبط هذه الإعدادات وفقًا للجدول التالي عند تسجيل تطبيقك لأول مرة.
| قناة توزيع تطبيقك | PLAY_RECOGNIZED | LICENSED | الحد الأدنى المقبول لمستوى سلامة الجهاز |
|---|---|---|---|
| حصريًا على Google Play | مطلوب | مطلوب | عدم التحقّق بشكل صريح من مستوى سلامة الجهاز |
| خارج Google Play فقط | غير مطلوب | غير مطلوب | سلامة الجهاز |
| على Google Play وخارجه | مطلوب | غير مطلوب | عدم التحقّق بشكل صريح من مستوى سلامة الجهاز |
التفاصيل
يتوافق كل إعداد متقدّم مع تصنيف لنتيجة التحقّق من Play Integrity. يمكنك الرجوع إلى مستندات Play Integrity للحصول على تفاصيل إضافية.
- بشكل تلقائي، يتطلب App Check تصنيف
PLAY_RECOGNIZEDالتعرّف على التطبيقات. ولا تكون التطبيقات غير المنشورة على Google Play مؤهَّلة للحصول على هذه التصنيفات. - بشكل تلقائي، لا يتطلّب App Check
LICENSEDتصنيف ترخيص التطبيق. لا يمكن أن يحصل على هذه التصنيفات سوى المستخدمين الذين ثبَّتوا تطبيقك أو حدَّثوه مباشرةً من Google Play. بشكلٍ تلقائي، لا يتحقّق App Check صراحةً من نتيجة التحقّق من سلامة الجهاز. تتيح App Check التحقّق بشكل صريح من مستويات سلامة الأجهزة الثلاثة التالية، والمدرَجة بترتيب تصاعدي حسب مستوى سلامة الجهاز.
فحص السلامة الأساسي: يؤدي ذلك إلى أن يتطلّب App Check
MEETS_BASIC_INTEGRITYتصنيف التعرّف على الجهاز. لكي يكون تطبيقك مؤهلاً للحصول على هذه التصنيف الاختياري، يجب أولاً الموافقة عليه من Google Play Console.سلامة الجهاز يؤدي ذلك إلى أن يتطلّب App Check
MEETS_DEVICE_INTEGRITYتصنيف التعرّف على الجهاز. تكون جميع التطبيقات مؤهَّلة تلقائيًا للحصول على هذا التصنيف.متطلبات السلامة الصارمة: يؤدي ذلك إلى أن يتطلّب App Check
MEETS_STRONG_INTEGRITYتصنيف التعرّف على الجهاز. لكي يكون تطبيقك مؤهلاً للحصول على هذه التصنيف الاختياري، يجب أولاً الموافقة عليه من Google Play Console.
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:34.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:19.0.1") }
3- إعداد App Check
أضِف رمز الإعداد التالي إلى تطبيقك ليتم تنفيذه قبل استخدام أي حِزم تطوير برامج أخرى من 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 للخدمات التي تستخدمها:
- تتبُّع مقاييس الطلبات لكل من Firebase AI Logic وData Connect وRealtime Database وCloud Firestore وCloud Storage وAuthentication وGoogle Identity for iOS وMaps JavaScript API وPlaces API (جديد)App Check
- تتبُّع مقاييس طلبات App Check في Cloud Functions
تفعيل تنفيذ App Check
عندما تفهم كيف سيؤثّر App Check في المستخدمين وتكون مستعدًا للمتابعة، يمكنك تفعيل فرض App Check باتّباع الخطوات التالية:
- تفعيل فرض App Check لكل من Firebase AI Logic وData Connect وRealtime Database وCloud Firestore وCloud Storage وAuthentication وGoogle Identity for iOS وMaps JavaScript API وPlaces API (جديد)
- فعِّل تنفيذ App Check لـ Cloud Functions.
استخدام App Check في بيئات تصحيح الأخطاء
إذا أردت تشغيل تطبيقك في بيئة لا تصنّفها App Check عادةً على أنّها صالحة، مثل محاكي أثناء التطوير أو من بيئة دمج مستمر (CI)، بعد تسجيل تطبيقك في App Check، يمكنك إنشاء إصدار تصحيح أخطاء من تطبيقك يستخدم موفّر تصحيح الأخطاء App Check بدلاً من موفّر تصديق حقيقي.
راجِع استخدام App Check مع موفِّر تصحيح الأخطاء على Android.