بدء استخدام ميزة "فحص التطبيق" من خلال 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 صادرة من مقدّم الخدمة. يمكنك ضبط مدة البقاء (TTL) إلى أي قيمة بين 30 دقيقة و7 أيام. عند تغيير هذه القيمة، يجب مراعاة المفاضلات التالية:

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

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

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

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

    pod 'FirebaseAppCheck'

    يمكنك بدلاً من ذلك استخدام حزمة Swift المدير بدلاً من ذلك.

    تأكَّد أيضًا من استخدام أحدث إصدار من أي حِزم تطوير برامج أخرى لـ 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" على الإصدار 14 من نظام التشغيل iOS والإصدارات الأحدث وحتى الخريف العودة إلى 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.