توضّح لك هذه الصفحة كيفية تفعيل App Check في تطبيق Apple باستخدام مقدّم خدمة App Attest المدمج. عند تفعيل App Check، يمكنك المساعدة في ضمان أنّ تطبيقك فقط يمكنه الوصول إلى موارد Firebase الخاصة بمشروعك. يمكنك الاطّلاع على نظرة عامة على هذه الميزة.
يستخدم تطبيق "App Check" واجهة برمجة التطبيقات App Attest للتأكّد من أنّ الطلبات الواردة إلى خدمات Firebase صادرة من تطبيقك الأصلي. لا يستخدم تطبيق "App Check" حاليًا واجهة برمجة التطبيقات App Attest من أجل تحليل مخاطر الاحتيال.
إذا أردت استخدام App Check مع مقدّم خدمة مخصّص، يُرجى الاطّلاع على المقالة تنفيذ مقدّم خدمة App Check مخصّص.
1. إعداد مشروع Firebase
ستحتاج إلى الإصدار 12.5 من Xcode أو إصدار أحدث لاستخدام App Attest.
أضِف Firebase إلى مشروع Apple الخاص بك، في حال لم يسبق لك إجراء ذلك.
في وحدة تحكّم Firebase، انتقِل إلى الأمان > فحص التطبيقات.
في علامة التبويب التطبيقات، سجِّل تطبيقاتك لاستخدام App Check مع موفِّر App Attest.
تحتاج عادةً إلى تسجيل جميع تطبيقات مشروعك، لأنّه بعد تفعيل إجراء التنفيذ لمنتج Firebase، لن تتمكّن سوى التطبيقات المسجّلة من الوصول إلى موارد الواجهة الخلفية للمنتج.
اختياري: اضبط مدة بقاء الرمز المميّز (TTL).
في إعدادات تسجيل التطبيق، اضبط مدة بقاء (TTL) مخصّصة لرموز App Check المميّزة التي يصدرها مقدّم الخدمة. يمكنك ضبط مدة الصلاحية على أي قيمة تتراوح بين 30 دقيقة و7 أيام. عند تغيير هذه القيمة، يجب مراعاة المفاضلات التالية:
- الأمان: توفّر قيم TTL الأقصر أمانًا أقوى، لأنّها تقلّل من المدة التي يمكن فيها للمهاجم إساءة استخدام رمز مميّز تم تسريبه أو اعتراضه.
- الأداء: تعني قيم TTL الأقصر أنّ تطبيقك سيُجري عملية المصادقة بشكل متكرر أكثر. بما أنّ عملية مصادقة التطبيق تضيف وقت استجابة إلى طلبات الشبكة في كل مرة يتم إجراؤها، يمكن أن يؤثر قِصر مدة الصلاحية في أداء تطبيقك.
- الحصة والتكلفة: تؤدي فترات TTL الأقصر وإعادة المصادقة المتكررة إلى استنفاد حصتك بشكل أسرع، وقد تزيد التكلفة في الخدمات المدفوعة. يُرجى الاطّلاع على الحصص والحدود.
إنّ مدة الصلاحية التلقائية التي تبلغ ساعة واحدة مناسبة لمعظم التطبيقات. يُرجى العِلم أنّ مكتبة App Check تعيد تحميل الرموز المميزة في نصف مدة البقاء تقريبًا.
2. إضافة مكتبة App Check إلى تطبيقك
استخدِم Swift Package Manager لتثبيت ملحقات Firebase وإدارتها.
في Xcode، افتح مشروع تطبيقك وانتقِل إلى ملف > إضافة حزم، ثم أضِف مستودع حزمة تطوير البرامج (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 على نظام التشغيل 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 لكل من 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 مع مقدّم خدمة تصحيح الأخطاء على أنظمة Apple الأساسية.