بدء استخدام ميزة "فحص التطبيق" من خلال 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 Attest في القسم App Check على وحدة تحكّم Firebase.

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

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

    • الأمان: توفر فترات 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. تعتمد تفاصيل التنفيذ على حالة الاستخدام.

على سبيل المثال، إذا كان لديك مستخدمون على الإصدار 14 من نظام التشغيل iOS والإصدارات الأحدث فقط، يمكنك دائمًا إنشاء عناصر 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.