بدء استخدام ميزة "فحص التطبيق" من خلال 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. ستحتاج إلى Xcode 12.5 أو إصدار أحدث لاستخدام خدمة App Attest.

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

  3. في وحدة تحكّم Firebase، انتقِل إلى الأمان > فحص التطبيقات.

  4. في علامة التبويب التطبيقات ، سجِّل تطبيقاتك لاستخدام App Check مع موفّر App Attest.

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

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

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

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

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

  1. استخدِم Swift Package Manager لتثبيت تبعيات Firebase وإدارتها.

    في Xcode، افتح مشروع تطبيقك، وانتقِل إلى ملف > إضافة حِزم ، وأضِف مستودع حزمة تطوير البرامج (SDK) لمنصات Firebase Apple ‏(https://github.com/firebase/firebase-ios-sdk)، واختَر مكتبة FirebaseAppCheck.

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

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