بدء استخدام ميزة "فحص التطبيق" من خلال App Attest على أنظمة Apple الأساسية

توضّح لك هذه الصفحة كيفية تفعيل App Check في تطبيق على جهاز Apple باستخدام موفّر App Attest المضمّن. عند تفعيل App Check، تساعد في ضمان عدم تمكّن أي تطبيق آخر من الوصول إلى موارد Firebase الخاصة بمشروعك. يمكنك الاطّلاع على نظرة عامة حول هذه الميزة.

تستخدم App Check خدمة App Attest للتحقّق من أنّ الطلبات المُرسَلة إلى خدمات Firebase تأتي من تطبيقك الأصلي. ولا تستخدم App Check حاليًا خدمة App Attest من أجل تحليل مخاطر الاحتيال.

إذا كنت تريد استخدام App Check مع موفّر مخصّص، يمكنك الاطّلاع على تنفيذ موفّر App Check مخصّص.

1. إعداد مشروعك على Firebase

  1. يجب توفّر الإصدار 12.5 من Xcode أو إصدار أحدث لاستخدام App Attest.

  2. أضِف Firebase إلى مشروع Apple إذا لم يسبق لك إجراء ذلك.

  3. سجِّل تطبيقاتك لاستخدام App Check مع مقدّم خدمة App Attest في قسم App Check ضمن وحدة تحكّم Firebase.

    عليك عادةً تسجيل جميع تطبيقات مشروعك، لأنّه بعد تفعيل فرض القيود على أحد منتجات Firebase، لن تتمكّن سوى التطبيقات المسجّلة من الوصول إلى موارد الخلفية الخاصة بالمنتج.

  4. اختياري: في إعدادات تسجيل التطبيق، اضبط مدة بقاء (TTL) مخصّصة لرموز App Check المميزة الصادرة عن مقدّم الخدمة. يمكنك ضبط قيمة TTL على أي قيمة تتراوح بين 30 دقيقة و7 أيام. عند تغيير هذه القيمة، يجب الانتباه إلى المفاضلات التالية:

    • الأمان: توفّر قيم TTL الأقصر مستوى أمان أعلى، لأنّها تقلّل من الفترة الزمنية التي يمكن للمهاجم إساءة استخدام الرمز المميز المسروق أو الذي تم اعتراضه خلالها.
    • الأداء: يعني استخدام مدة بقاء (TTL) أقصر أنّ تطبيقك سيجري عملية التصديق بشكل متكرّر أكثر. بما أنّ عملية إثبات صحة التطبيق تضيف وقت استجابة إلى طلبات الشبكة في كل مرة يتم تنفيذها، يمكن أن تؤثّر مدة البقاء القصيرة في أداء تطبيقك.
    • الحصة والتكلفة: تؤدي قيم TTL الأقصر وعمليات إعادة التصديق المتكررة إلى استنفاد حصتك بشكل أسرع، وقد تؤدي إلى زيادة التكلفة بالنسبة إلى الخدمات المدفوعة. الحصص والحدود

    تُعد مدة البقاء التلقائية البالغة ساعة واحدة مناسبة لمعظم التطبيقات. يُرجى العِلم أنّ مكتبة App Check تعيد تحميل الرموز المميزة بعد نصف مدة بقاء (TTL) تقريبًا.

2. إضافة مكتبة App Check إلى تطبيقك

  1. أضِف التبعية الخاصة بـ App Check إلى Podfile في مشروعك:

    pod 'FirebaseAppCheck'

    يمكنك بدلاً من ذلك استخدام Swift Package Manager.

    تأكَّد أيضًا من استخدام أحدث إصدار من أي حِزم SDK أخرى من Firebase تعتمد عليها.

  2. نفِّذ الأمر pod install وافتح الملف .xcworkspace الذي تم إنشاؤه.

  3. في Xcode، أضِف إمكانية App Attest إلى تطبيقك.

  4. في ملف .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

بعد فهم كيفية تأثير App Check في المستخدمين والاستعداد للمتابعة، يمكنك تفعيل فرض App Check باتّباع الخطوات التالية:

استخدام App Check في بيئات تصحيح الأخطاء

إذا أردت تشغيل تطبيقك في بيئة لا تصنّفها App Check عادةً على أنّها صالحة، مثل محاكي أثناء التطوير أو من بيئة دمج مستمر (CI)، بعد تسجيل تطبيقك في App Check، يمكنك إنشاء إصدار تصحيح أخطاء من تطبيقك يستخدم موفّر تصحيح الأخطاء في App Check بدلاً من موفّر تصديق حقيقي.

راجِع استخدام App Check مع موفّر تصحيح الأخطاء على منصات Apple.