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

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

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

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

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

  1. ستحتاج إلى الإصدار 12.5 من Xcode أو إصدار أحدث لاستخدام ميزة "إثبات صحة التطبيق".

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

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

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

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

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

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

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

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

    pod 'FirebaseAppCheck'

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

    تأكَّد أيضًا من استخدام أحدث إصدار من أي حِزم تطوير برامج أخرى لـ 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، إذا أردت تشغيل تطبيقك في بيئة لا تصنّفها App Check عادةً على أنّها صالحة، مثل محاكي أثناء التطوير أو من بيئة دمج مستمر (CI)، يمكنك إنشاء إصدار لتصحيح أخطاء تطبيقك يستخدم مزوّد تصحيح أخطاء App Check بدلاً من مزوّد إثبات الهوية الحقيقي.

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