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