این صفحه نحوه فعال کردن App Check را در برنامه Apple بااستفاده از ارائهدهنده داخلی «گواهی برنامه» نشان میدهد. وقتی App Check را فعال میکنید، کمک میکنید مطمئن شویم که فقط برنامه شما میتواند به منابع Firebase پروژه شما دسترسی داشته باشد. نمای کلی این ویژگی را ببینید.
App Check از App Attest برای بهتأیید رساندن اینکه درخواستهای سرویسهای Firebase از برنامه اصیل شما میآیند استفاده میکند. درحالحاضر App Check از App Attest برای تجزیهوتحلیل خطر کلاهبرداری استفاده نمیکند.
اگر میخواهید از App Check با ارائهدهنده سفارشی خودتان استفاده کنید، پیادهسازی ارائهدهنده سفارشی App Check را ببینید.
۱. راهاندازی پروژه Firebase
برای استفاده از «گواهی برنامه»، به Xcode نسخه ۱۲.۵ یا بالاتر نیاز دارید.
اگر قبلاً این کار را نکردهاید، Firebase را به پروژه Apple خود اضافه کنید.
در کنسول Firebase، به امنیت > بررسی برنامه پیمایش کنید.
در زبانه برنامهها، برنامههایتان را برای استفاده از App Check با ارائهدهنده «گواهی برنامه» ثبت کنید.
معمولاً باید همه برنامههای پروژهتان را ثبت کنید، زیرا وقتی اجرای یک محصول Firebase را فعال میکنید، فقط برنامههای ثبتشده میتوانند به منابع زیرینه محصول دسترسی داشته باشند.
اختیاری: زمان بقای کد (TTL) را تنظیم کنید.
در تنظیمات ثبت برنامه، زمان سفارشی برای زنده بودن (TTL) برای App Check نشانهای صادرشده توسط ارائهدهنده تنظیم کنید. میتوانید مقدار TTL را روی هر مقداری بین ۳۰ دقیقه و ۷ روز تنظیم کنید. هنگام تغییر این مقدار، از موازنه زیر آگاه باشید:
- امنیت: «زمانهای زنده ماندن» کوتاهتر امنیت بیشتری فراهم میکنند، زیرا پنجرهای را که در آن یک رمز فاششده یا رهگیریشده میتواند توسط یک مهاجم مورد سوءاستفاده قرار گیرد، کاهش میدهد.
- عملکرد: «زمان زنده بودن» کوتاهتر به این معنی است که برنامه شما گواهی را بیشتر انجام خواهد داد. ازآنجاییکه فرایند گواهی برنامه هر بار که انجام میشود به درخواستهای شبکه تأخیر اضافه میکند، «زمان زنده بودن» کوتاه میتواند بر عملکرد برنامهتان تأثیر بگذارد.
- سهمیه و هزینه: «زمانهای زنده ماندن» کوتاهتر و تأیید مجدد مکرر سهمیه شما را سریعتر تمام میکند و برای سرویسهای پولی، احتمالاً هزینه بیشتری دارد. سهمیهها و محدودیتها را ببینید.
TTL پیشفرض ۱ ساعت برای اکثر برنامهها معقول است. توجه داشته باشید که کتابخانه App Check نشانههای دسترسی را تقریباً در نصف مدت زمان TTL بازآوری میکند.
۲. افزودن کتابخانه App Check به برنامه
از مدیر بسته Swift برای نصب و مدیریت وابستگیهای Firebase استفاده کنید.
در Xcode، با باز بودن پروژه برنامه، به File (فایل) > Add Packages (افزودن بستهها) بروید، مخزن «کیت توسعه نرمافزار پلاتفرمهای Apple در Firebase» را اضافه کنید (
https://github.com/firebase/firebase-ios-sdk)، و کتابخانه FirebaseAppCheck را انتخاب کنید.در Xcode، قابلیت App Attest را به برنامهتان اضافه کنید.
در فایل
.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 را برای Firebase AI Logic، SQL Connect، Realtime Database، Cloud Firestore، Cloud Storage، Authentication، Google Identity for iOS، Maps JavaScript API، و Places API (جدید) پایش کنید.
- سنجههای درخواست App Check را برای Cloud Functions پایش کنید.
فعال کردن اجرای App Check
وقتی متوجه شدید App Check چگونه بر کاربران شما تأثیر میگذارد و آماده ادامه دادن هستید، میتوانید اجرای App Check را فعال کنید:
- اجرای App Check را برای Firebase AI Logic، SQL Connect، Realtime Database، Cloud Firestore، Cloud Storage، Authentication، Google Identity for iOS، Maps JavaScript API، و Places API (جدید) فعال کنید.
- اجرای App Check را برای Cloud Functions فعال کنید.
استفاده از App Check در محیطهای اشکالزدایی
اگر پساز ثبت برنامه برای App Check، بخواهید برنامهتان را در محیطی اجرا کنید که App Check معمولاً آن را بهعنوان معتبر طبقهبندی نمیکند، مثل شبیهساز درطول توسعه، یا از محیط ادغام پیوسته (CI)، میتوانید ساخت اشکالزدایی برنامهتان را ایجاد کنید که بهجای ارائهدهنده گواهی واقعی از ارائهدهنده اشکالزدایی App Check استفاده میکند.
استفاده از App Check با ارائهدهنده اشکالزدایی در پلاتفرمهای Apple را ببینید.