توضّح لك هذه الصفحة كيفية تفعيل App Check في تطبيق Apple باستخدام موفّر App Attest المضمّن. عند تفعيل App Check، تساعد في ضمان عدم تمكّن أي تطبيق آخر من الوصول إلى موارد مشروعك على Firebase. يمكنك الاطّلاع على نظرة عامة حول هذه الميزة.
تستخدم خدمة App Check واجهة برمجة التطبيقات App Attest للتحقّق من أنّ الطلبات الموجّهة إلى خدمات Firebase صادرة من تطبيقك الأصلي، ولا تستخدم App Check حاليًا واجهة برمجة التطبيقات App Attest من أجل تحليل مخاطر الاحتيال.
إذا كنت تريد استخدام App Check مع موفّر مخصّص، اطّلِع على تنفيذ موفّر مخصّص لـ App Check.
1. إعداد مشروع Firebase
يجب استخدام Xcode 12.5 أو إصدار أحدث لاستخدام App Attest.
أضِف Firebase إلى مشروع Apple إذا لم يسبق لك إجراء ذلك.
في Firebase، انتقِل إلى الأمان > فحص التطبيقات.
في علامة التبويب التطبيقات، سجِّل تطبيقاتك لاستخدام App Check مع موفّر خدمة App Attest.
يجب عادةً تسجيل جميع تطبيقات مشروعك، لأنّه بعد تفعيل فرض القيود على أحد منتجات Firebase، لن تتمكّن سوى التطبيقات المسجّلة من الوصول إلى موارد الخلفية الخاصة بالمنتج.
اختياري: اضبط مدة بقاء الرمز المميّز (TTL).
في إعدادات تسجيل التطبيق، اضبط مدة بقاء (TTL) مخصّصة لرموز App Check المميزة الصادرة عن مقدّم الخدمة. يمكنك ضبط قيمة TTL على أي قيمة تتراوح بين 30 دقيقة و7 أيام. عند تغيير هذه القيمة، يجب الانتباه إلى المفاضلات التالية:
- الأمان: توفّر قيم TTL الأقصر مستوى أمان أعلى، لأنّها تقلّل من الفترة الزمنية التي يمكن للمهاجم إساءة استخدام الرمز المميز المسروق أو الذي تم اعتراضه خلالها.
- الأداء: يعني استخدام قيم أقصر في حقل TTL أنّ تطبيقك سيجري عملية التصديق بشكل متكرّر. بما أنّ عملية إثبات سلامة التطبيق تضيف وقت استجابة إلى طلبات الشبكة في كل مرة يتم تنفيذها، يمكن أن يؤثّر وقت البقاء على قيد الحياة القصير في أداء تطبيقك.
- الحصة والتكلفة: تؤدي قيم TTL الأقصر وعمليات إعادة التصديق المتكررة إلى استنفاد حصتك بشكل أسرع، وقد تؤدي إلى زيادة التكلفة بالنسبة إلى الخدمات المدفوعة. الحصص والحدود
إنّ قيمة TTL التلقائية البالغة ساعة واحدة مناسبة لمعظم التطبيقات. يُرجى العِلم أنّ مكتبة App Check تعيد تحميل الرموز المميزة بعد نصف مدة البقاء تقريبًا.
2. إضافة مكتبة App Check إلى تطبيقك
استخدِم Swift Package Manager لتثبيت ملحقات Firebase وإدارتها.
في Xcode، بعد فتح مشروع تطبيقك، انتقِل إلى ملف > إضافة حِزم (File > Add Packages)، وأضِف مستودع حزمة تطوير البرامج (SDK) لمنصات Apple على Firebase (
https://github.com/firebase/firebase-ios-sdk)، واختَر مكتبة FirebaseAppCheck.في Xcode، أضِف إمكانية App Attest إلى تطبيقك.
في ملف
.entitlementsالخاص بمشروعك، اضبط بيئة App Attest علىproduction.
3- إعداد App Check
عليك إعداد App Check قبل استخدام أي حِزم SDK أخرى من Firebase.
أولاً، اكتب تنفيذًا للدالة AppCheckProviderFactory. ستختلف تفاصيل التنفيذ حسب حالة الاستخدام.
على سبيل المثال، إذا كان لديك مستخدمون على نظام التشغيل iOS 14 والإصدارات الأحدث فقط، يمكنك دائمًا إنشاء عناصر AppAttestProvider ببساطة:
Swift
ملاحظة: لا يتوفّر منتج Firebase هذا على منصات watchOS.
class YourSimpleAppCheckProviderFactory: NSObject, AppCheckProviderFactory { func createProvider(with app: FirebaseApp) -> AppCheckProvider? { return AppAttestProvider(app: app) } }
Objective-C
ملاحظة: لا يتوفّر منتج Firebase هذا على منصات watchOS.
@interface YourSimpleAppCheckProviderFactory : NSObject <FIRAppCheckProviderFactory> @end @implementation YourSimpleAppCheckProviderFactory - (nullable id<FIRAppCheckProvider>)createProviderWithApp:(nonnull FIRApp *)app { return [[FIRAppAttestProvider alloc] initWithApp:app]; } @end
أو يمكنك إنشاء عناصر AppAttestProvider على الإصدار 14 من نظام التشغيل iOS والإصدارات الأحدث، والرجوع إلى DeviceCheckProvider على الإصدارات الأقدم:
Swift
ملاحظة: لا يتوفّر منتج Firebase هذا على منصات watchOS.
class YourAppCheckProviderFactory: NSObject, AppCheckProviderFactory { func createProvider(with app: FirebaseApp) -> AppCheckProvider? { if #available(iOS 14.0, *) { return AppAttestProvider(app: app) } else { return DeviceCheckProvider(app: app) } } }
Objective-C
ملاحظة: لا يتوفّر منتج Firebase هذا على منصات watchOS.
@interface YourAppCheckProviderFactory : NSObject <FIRAppCheckProviderFactory> @end @implementation YourAppCheckProviderFactory - (nullable id<FIRAppCheckProvider>)createProviderWithApp:(nonnull FIRApp *)app { if (@available(iOS 14.0, *)) { return [[FIRAppAttestProvider alloc] initWithApp:app]; } else { return [[FIRDeviceCheckProvider alloc] initWithApp:app]; } } @end
بعد تنفيذ فئة AppCheckProviderFactory، اضبط App Check لاستخدامها باتّباع الخطوات التالية:
Swift
ملاحظة: لا يتوفّر منتج Firebase هذا على منصات watchOS.
let providerFactory = YourAppCheckProviderFactory() AppCheck.setAppCheckProviderFactory(providerFactory) FirebaseApp.configure()
Objective-C
ملاحظة: لا يتوفّر منتج Firebase هذا على منصات watchOS.
YourAppCheckProviderFactory *providerFactory = [[YourAppCheckProviderFactory alloc] init]; [FIRAppCheck setAppCheckProviderFactory:providerFactory]; [FIRApp configure];
الخطوات التالية
بعد تثبيت مكتبة 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 for iOS وMaps JavaScript API وPlaces API (جديد)
- تتبُّع مقاييس طلبات App Check في Cloud Functions
تفعيل تطبيق App Check
عندما تفهم تأثير App Check في المستخدمين وتكون مستعدًا للمتابعة، يمكنك تفعيل إجراء تنفيذ App Check:
- فعِّل App Check enforcement لكل من Firebase AI Logic وSQL 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 مع مقدّم خدمة تصحيح الأخطاء على منصات Apple.