شروع به استفاده از App Check با App Attest در پلتفرم های اپل کنید

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

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

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

1. پروژه Firebase خود را راه اندازی کنید

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

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

  3. برنامه های خود را برای استفاده از App Check با ارائه دهنده App Attest در بخش App Check کنسول Firebase ثبت کنید.

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

  4. اختیاری : در تنظیمات ثبت برنامه، یک زمان سفارشی (TTL) برای نشانه‌های App Check صادر شده توسط ارائه‌دهنده تنظیم کنید. می توانید TTL را روی هر مقداری بین 30 دقیقه تا 7 روز تنظیم کنید. هنگام تغییر این مقدار، به معاوضه های زیر توجه داشته باشید:

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

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

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

  1. وابستگی App Check به Podfile پروژه خود اضافه کنید:

    pod 'FirebaseAppCheck'

    یا به جای آن، می توانید از Swift Package Manager به جای آن استفاده کنید.

    مطمئن شوید که از آخرین نسخه سایر SDK های Firebase که به آنها وابسته هستید نیز استفاده می کنید.

  2. pod install اجرا کنید و فایل .xcworkspace ایجاد شده را باز کنید.

  3. در Xcode، قابلیت App Attest را به برنامه خود اضافه کنید.

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

3. App Check اولیه کنید

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

ابتدا پیاده سازی AppCheckProviderFactory را بنویسید. ویژگی های پیاده سازی شما به مورد استفاده شما بستگی دارد.

به عنوان مثال، اگر فقط کاربرانی در iOS 14 و نسخه های جدیدتر دارید، همیشه می توانید به سادگی اشیاء AppAttestProvider را ایجاد کنید:

سویفت

توجه: این محصول Firebase در اهداف watchOS در دسترس نیست.

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

هدف-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 برگردید:

سویفت

توجه: این محصول 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)
    }
  }
}

هدف-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 برای استفاده از آن پیکربندی کنید:

سویفت

توجه: این محصول Firebase در اهداف watchOS در دسترس نیست.

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

FirebaseApp.configure()

هدف-C

توجه: این محصول Firebase در اهداف watchOS در دسترس نیست.

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

[FIRApp configure];

مراحل بعدی

هنگامی که کتابخانه App Check در برنامه شما نصب شد، شروع به توزیع برنامه به روز شده بین کاربران خود کنید.

برنامه کلاینت به‌روزرسانی‌شده، به همراه هر درخواستی که به Firebase می‌کند، نشانه‌های App Check ارسال می‌کند، اما محصولات Firebase تا زمانی که اعمال را در بخش App Check کنسول Firebase فعال نکنید، نیازی به معتبر بودن توکن‌ها ندارند.

معیارها را رصد کنید و اجرا را فعال کنید

با این حال، قبل از فعال کردن اعمال، باید مطمئن شوید که انجام این کار باعث اختلال در کاربران قانونی فعلی شما نمی شود. از سوی دیگر، اگر استفاده مشکوک از منابع برنامه خود را مشاهده کردید، ممکن است بخواهید زودتر اجرای آن را فعال کنید.

برای کمک به این تصمیم، می‌توانید به معیارهای App Check برای سرویس‌هایی که استفاده می‌کنید نگاه کنید:

اجرای App Check فعال کنید

وقتی متوجه شدید که App Check چگونه بر کاربران شما تأثیر می گذارد و آماده ادامه کار هستید، می توانید اجرای App Check فعال کنید:

از App Check در محیط های اشکال زدایی استفاده کنید

اگر بعد از اینکه برنامه خود را برای App Check ثبت کردید، می خواهید برنامه خود را در محیطی اجرا کنید که App Check معمولاً آن را معتبر طبقه بندی نمی کند، مانند شبیه ساز در حین توسعه، یا از یک محیط یکپارچه سازی مداوم (CI)، می توانید یک ساختار اشکال زدایی از برنامه خود ایجاد کنید که از ارائه دهنده اشکال زدایی App Check به جای ارائه دهنده گواهی واقعی استفاده می کند.

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