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

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

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

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

1- إعداد مشروع Firebase

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

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

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

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

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

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

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

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

  1. أضِف تبعية ميزة "فحص التطبيقات" إلى Podfile في مشروعك:

    pod 'FirebaseAppCheck'

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

    تأكّد أيضًا من استخدام أحدث إصدار من أي حِزم تطوير برامج (SDK) أخرى في Firebase تعتمد عليها.

  2. شغِّل تطبيق "pod install" وافتح ملف ".xcworkspace" الذي تم إنشاؤه.

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

  4. في ملف .entitlements الخاص بمشروعك، اضبط بيئة App Attest على production.

3- إعداد فحص التطبيقات

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

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];

الخطوات اللاحقة

بعد تثبيت مكتبة "فحص التطبيقات" في تطبيقك، ابدأ في توزيع التطبيق المحدَّث على المستخدمين.

سيبدأ تطبيق العميل المحدّث في إرسال رموز "فحص التطبيق" مع كل طلب يتم تقديمه إلى Firebase، إلا أنّ منتجات Firebase لن تتطلب أن تكون الرموز المميزة صالحة إلى أن يتم تفعيل التنفيذ في قسم "فحص التطبيق" في وحدة تحكُّم Firebase.

مراقبة المقاييس وتفعيل التنفيذ

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

للمساعدة في اتخاذ هذا القرار، يمكنك الاطّلاع على مقاييس "فحص التطبيق" للخدمات التي تستخدمها:

تفعيل فرض فحص التطبيقات

بعد معرفة تأثير فحص التطبيقات على المستخدمين، وعند استعدادك للمتابعة، يمكنك تفعيل تنفيذ ميزة "فحص التطبيق":

استخدام ميزة "فحص التطبيقات" في بيئات تصحيح الأخطاء

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

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