شروع به استفاده از App Check با «گواهی برنامه» در پلاتفرم‌های Apple کنید

این صفحه به شما نشان می‌دهد که چگونه App Check را در یک برنامه Apple بااستفاده از ارائه‌دهنده داخلی App Attest فعال کنید. وقتی App Check را فعال می‌کنید، کمک می‌کنید مطمئن شوید که فقط برنامه شما می‌تواند به منابع Firebase پروژه‌تان دسترسی داشته باشد. نمای کلی این ویژگی را ببینید.

App Check از App Attest استفاده می‌کند تا تأیید کند درخواست‌های ارسال‌شده به سرویس‌های Firebase از برنامه معتبر شما می‌آید. App Check درحال‌حاضر از App Attest برای تحلیل خطر کلاهبرداری استفاده نمی‌کند.

اگر می‌خواهید از App Check با ارائه‌دهنده سفارشی خودتان استفاده کنید، پیاده‌سازی ارائه‌دهنده سفارشی App Check را ببینید.

۱. راه‌اندازی پروژه Firebase

  1. برای استفاده از App Attest به Xcode 12.5+ نیاز دارید.

  2. اگر قبلاً این کار را نکرده‌اید، Firebase را به پروژه Apple خود اضافه کنید.

  3. در کنسول Firebase، به امنیت > بررسی برنامه بروید.

  4. در برگه برنامه‌ها، برنامه‌هایتان را ثبت کنید تا از App Check با ارائه‌دهنده «گواهی برنامه» استفاده کنید.

    معمولاً باید همه برنامه‌های پروژه‌تان را ثبت کنید، زیرا وقتی اجرا را برای محصول Firebase فعال می‌کنید، فقط برنامه‌های ثبت‌شده می‌توانند به منابع پس‌زمینه محصول دسترسی داشته باشند.

  5. اختیاری: زمان بقای (TTL) کد را تنظیم کنید.

    در تنظیمات ثبت برنامه، زمان سفارشی برای زندگی (TTL) را برای نشان‌های App Check صادرشده توسط ارائه‌دهنده تنظیم کنید. می‌توانید TTL را روی هر مقداری بین ۳۰ دقیقه و ۷ روز تنظیم کنید. هنگام تغییر این مقدار، به مبادله‌های زیر توجه داشته باشید:

    • امنیت: TTL کوتاه‌تر امنیت قوی‌تری را فراهم می‌کند، زیرا پنجره‌ای را که در آن یک توکن لو رفته یا رهگیری‌شده می‌تواند توسط یک مهاجم مورد سوءاستفاده قرار گیرد، کاهش می‌دهد.
    • عملکرد: TTL کوتاه‌تر به‌معنای این است که برنامه شما گواهی را به‌دفعات بیشتری انجام خواهد داد. ازآنجایی‌که فرایند تصدیق برنامه هربار که انجام می‌شود به درخواست‌های شبکه تأخیر اضافه می‌کند، TTL کوتاه می‌تواند بر عملکرد برنامه‌تان تأثیر بگذارد.
    • سهمیه و هزینه: TTL کوتاه‌تر و گواهی مجدد مکرر سهمیه شما را سریع‌تر تمام می‌کند و برای سرویس‌های پولی، احتمالاً هزینه بیشتری دارد. سهمیه‌ها و محدودیت‌ها را ببینید.

    TTL پیش‌فرض ۱ ساعت برای اکثر برنامه‌ها مناسب است. توجه داشته باشید که کتابخانه App Check ژتون‌ها را تقریباً در نیمی از مدت TTL بازآوری می‌کند.

۲. کتابخانه App Check را به برنامه‌تان اضافه کنید

  1. از Swift Package Manager برای نصب و مدیریت وابستگی‌های Firebase استفاده کنید.

    در Xcode، درحالی‌که پروژه برنامه‌تان باز است، به File > Add Packages بروید، مخزن کیت توسعه نرم‌افزار پلاتفرم‌های Firebase Apple را اضافه کنید (https://github.com/firebase/firebase-ios-sdk)، و کتابخانه FirebaseAppCheck را انتخاب کنید.

  2. در Xcode، قابلیت App Attest را به برنامه‌تان اضافه کنید.

  3. در فایل .entitlements پروژه‌تان، محیط App Attest را روی production تنظیم کنید.

۳. مقداردهی اولیه App Check

قبل‌از استفاده از کیت‌های توسعه نرم‌افزار Firebase دیگر، باید App Check را مقداردهی اولیه کنید.

ابتدا، پیاده‌سازی 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، بخواهید برنامه‌تان را در محیطی اجرا کنید که App Check معمولاً آن را معتبر طبقه‌بندی نمی‌کند، مثلاً شبیه‌ساز درطول توسعه، یا از محیط ادغام پیوسته (CI)، می‌توانید ساخت اشکال‌زدایی برای برنامه‌تان ایجاد کنید که به‌جای ارائه‌دهنده گواهی واقعی از ارائه‌دهنده اشکال‌زدایی App Check استفاده می‌کند.

استفاده از App Check با ارائه‌دهنده اشکال‌زدایی در پلاتفرم‌های Apple را ببینید.