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

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

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

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

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

  1. برای استفاده از «گواهی برنامه»، به Xcode نسخه ۱۲.۵ یا بالاتر نیاز دارید.

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

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

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

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

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

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

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

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

۲. افزودن کتابخانه App Check به برنامه

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

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

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

  3. در فایل .entitlements پروژه، محیط «گواهی برنامه» را روی 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 را ببینید.