ابدأ باستخدام App Check with App Attest على منصات Apple

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

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

إذا كنت تريد استخدام التحقق من التطبيق مع الموفر المخصص الخاص بك، فراجع تنفيذ موفر التحقق من التطبيق المخصص .

1. قم بإعداد مشروع Firebase الخاص بك

  1. ستحتاج إلى Xcode 12.5+ لاستخدام App Attest.

  2. أضف Firebase إلى مشروع Apple الخاص بك إذا لم تكن قد قمت بذلك بالفعل.

  3. قم بتسجيل تطبيقاتك لاستخدام التحقق من التطبيق مع موفر App Attest في قسم التحقق من التطبيق في وحدة تحكم Firebase.

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

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

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

    يعد TTL الافتراضي الذي يبلغ ساعة واحدة معقولًا لمعظم التطبيقات. لاحظ أن مكتبة التحقق من التطبيق تقوم بتحديث الرموز المميزة بنصف مدة TTL تقريبًا.

2. أضف مكتبة التحقق من التطبيق إلى تطبيقك

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

    pod 'FirebaseAppCheck'

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

    تأكد من أنك تستخدم أيضًا أحدث إصدار من أي حزم Firebase SDK أخرى تعتمد عليها.

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

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

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

3. تهيئة فحص التطبيق

ستحتاج إلى تهيئة فحص التطبيق قبل استخدام أي حزم SDK أخرى لـ Firebase.

أولاً، اكتب تطبيق AppCheckProviderFactory . ستعتمد تفاصيل التنفيذ على حالة الاستخدام الخاصة بك.

على سبيل المثال، إذا كان لديك فقط مستخدمين على نظام التشغيل iOS 14 والإصدارات الأحدث، فيمكنك دائمًا إنشاء كائنات AppAttestProvider :

سويفت

ملاحظة: منتج Firebase هذا غير متوفر في أهداف watchOS.

class YourSimpleAppCheckProviderFactory: NSObject, AppCheckProviderFactory {
  func createProvider(with app: FirebaseApp) -> AppCheckProvider? {
    return AppAttestProvider(app: app)
  }
}

ج موضوعية

ملاحظة: منتج 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 في الإصدارات السابقة:

سويفت

ملاحظة: منتج 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)
    }
  }
}

ج موضوعية

ملاحظة: منتج 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 لاستخدامها:

سويفت

ملاحظة: منتج Firebase هذا غير متوفر في أهداف watchOS.

let providerFactory = YourAppCheckProviderFactory()
AppCheck.setAppCheckProviderFactory(providerFactory)

FirebaseApp.configure()

ج موضوعية

ملاحظة: منتج Firebase هذا غير متوفر في أهداف watchOS.

YourAppCheckProviderFactory *providerFactory =
        [[YourAppCheckProviderFactory alloc] init];
[FIRAppCheck setAppCheckProviderFactory:providerFactory];

[FIRApp configure];

الخطوات التالية

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

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

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

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

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

تمكين فرض التحقق من التطبيق

عندما تفهم كيف سيؤثر التحقق من التطبيق على المستخدمين لديك وتكون جاهزًا للمتابعة، يمكنك تمكين فرض التحقق من التطبيق:

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

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

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