توضِّح لك هذه الصفحة كيفية تفعيل App Check في تطبيق Apple باستخدام موفِّر عملية إثبات الهوية المضمّن في التطبيق. عند تفعيل App Check، تساعد في ضمان أنّ تطبيقك فقط يمكنه الوصول إلى موارد Firebase في مشروعك. اطّلِع على نظرة عامة حول هذه الميزة.
يستخدم App Check App Attest للتحقّق من أنّ الطلبات المرسَلة إلى خدمات Firebase تأتي من تطبيقك الأصلي. لا يستخدم App Check حاليًا App Attest للقيام بتحليللمخاطر الاحتيال.
إذا كنت تريد استخدام App Check مع موفِّر مخصّص، اطّلِع على مقالة تنفيذ موفِّر App Check مخصّص.
1. إعداد مشروعك على Firebase
ستحتاج إلى الإصدار 12.5 من Xcode أو إصدار أحدث لاستخدام ميزة "إثبات صحة التطبيق".
أضِف Firebase إلى مشروع Apple إذا لم يسبق لك إجراء ذلك.
سجِّل تطبيقاتك لاستخدام App Check مع مقدّم خدمة "إثبات ملكية التطبيق" في القسم App Check من وحدة تحكّمFirebase.
عليك عادةً تسجيل جميع تطبيقات مشروعك، لأنّه بعد فعالة ميزة فرض الامتثال لمنتج Firebase، لن تتمكّن سوى التطبيقات المسجّلة من الوصول إلى موارد الخلفية للتطبيق.
اختياري: في إعدادات تسجيل التطبيق، اضبط مدة بقاء مخصّصة (TTL) لبيانات اعتماد App Check التي يصدرها مقدّم الخدمة. يمكنك ضبط وقت الاستبدال على أي قيمة تتراوح بين 30 دقيقة و7 أيام. عند تغيير هذه القيمة، يجب مراعاة المفاضلات التالية:
- الأمان: توفّر فترات صلاحية قصيرة للذاكرة المؤقتة أمانًا أكبر، لأنّها تقلّل من المهلة التي يمكن فيها لمهاجمٍ إساءة استخدام رمز مميّز تم تسريبه أو اعتراضه.
- الأداء: تعني مدد البقاء القصيرة أنّ تطبيقك سيُجري عملية إثبات الهوية بشكلٍ أكثر تكرارًا. بما أنّ عملية إثبات ملكية التطبيق تضيف وقت استجابة إلى طلبات الشبكة في كل مرة يتم فيها تنفيذها، يمكن أن تؤثّر مدة البقاء القصيرة في أداء تطبيقك.
- الحصة والتكلفة: إنّ قيم مهلة الجلسة الأقصر وعمليات إعادة الشهادة المتكرّرة تؤديان إلى استنفاد الحصة بشكل أسرع، وقد تؤدي إلى زيادة التكلفة في الخدمات المدفوعة. راجِع الحصص والحدود.
إنّ مدة البقاء التلقائية التي تبلغ ساعة واحدة هي مدة معقولة لمعظم التطبيقات. يُرجى العلم أنّ مكتبة App Check تُعيد تحميل الرموز المميّزة بعد مرور نصف مدة مدة بقاء المعلومات (TTL) تقريبًا.
2- إضافة مكتبة App Check إلى تطبيقك
أضِف التبعية لـ App Check إلى
Podfile
في مشروعك:pod 'FirebaseAppCheck'
يمكنك بدلاً من ذلك استخدام Swift Package Manager.
تأكَّد أيضًا من استخدام أحدث إصدار من أي حِزم تطوير برامج أخرى لـ Firebase تعتمد عليها.
شغِّل
pod install
وافتح ملف.xcworkspace
الذي تم إنشاؤه.في 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
عناصر على نظام التشغيل iOS 14 والإصدارات الأحدث، والرجوع
إلى 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 لRealtime Database وCloud Firestore وCloud Storage وAuthentication (إصدار تجريبي) وVertex AI in Firebase
- تتبُّع مقاييس طلبات App Check في Cloud Functions
تفعيل إجراءات تنفيذ App Check
بعد فهم مدى تأثير App Check في المستخدمين واستعدادك للمتابعة، يمكنك تفعيل فرض App Check:
- تفعيل ميزة "فرض App Check" لتطبيق Realtime Database وCloud Firestore وCloud Storage وAuthentication (إصدار تجريبي) وVertex AI in Firebase
- فعِّل ميزة فرض App Check على Cloud Functions.
استخدام App Check في بيئات تصحيح الأخطاء
بعد تسجيل تطبيقك في App Check، إذا أردت تشغيل تطبيقك في بيئة لا تصنّفها App Check عادةً على أنّها صالحة، مثل محاكي أثناء التطوير أو من بيئة دمج مستمر (CI)، يمكنك إنشاء إصدار لتصحيح أخطاء تطبيقك يستخدم مزوّد تصحيح أخطاء App Check بدلاً من مزوّد إثبات الهوية الحقيقي.
راجِع مقالة استخدام App Check مع موفِّر تصحيح الأخطاء على منصات Apple.