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

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

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

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

۱. پروژه فایربیس خود را راه‌اندازی کنید

  1. برای استفاده از App Attest به Xcode نسخه ۱۲.۵ به بالا نیاز دارید.

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

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

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

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

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

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

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

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

    pod 'FirebaseAppCheck'

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

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

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

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

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

۳. App Check

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

ابتدا، یک پیاده‌سازی از 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];

مراحل بعدی

پس از نصب کتابخانه 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 با ارائه‌دهنده اشکال‌زدایی در پلتفرم‌های اپل» مراجعه کنید.