این صفحه به شما نشان می دهد که چگونه با استفاده از ارائه دهنده App Attest داخلی، App Check را در یک برنامه Apple فعال کنید. وقتی برنامه بررسی را فعال میکنید، مطمئن میشوید که فقط برنامه شما میتواند به منابع Firebase پروژه شما دسترسی داشته باشد. مروری بر این ویژگی را ببینید.
App Check از App Attest برای تأیید اینکه درخواستهای سرویس Firebase از برنامه معتبر شما ارسال میشود، استفاده میکند. App Check در حال حاضر از App Attest برای تجزیه و تحلیل خطر تقلب استفاده نمی کند.
اگر میخواهید از App Check با ارائهدهنده سفارشی خود استفاده کنید، به اجرای یک ارائهدهنده بررسی برنامه سفارشی مراجعه کنید.
1. پروژه Firebase خود را راه اندازی کنید
برای استفاده از App Attest به Xcode 12.5+ نیاز دارید.
اگر قبلاً این کار را نکرده اید، Firebase را به پروژه اپل خود اضافه کنید .
برنامه های خود را برای استفاده از App Check با ارائه دهنده App Attest در بخش App Check کنسول Firebase ثبت کنید.
معمولاً باید همه برنامههای پروژه خود را ثبت کنید، زیرا پس از فعال کردن اجرای یک محصول Firebase، فقط برنامههای ثبتشده میتوانند به منابع پشتیبان محصول دسترسی پیدا کنند.
اختیاری : در تنظیمات ثبت برنامه، یک زمان سفارشی (TTL) برای نشانههای بررسی برنامه صادر شده توسط ارائهدهنده تنظیم کنید. می توانید TTL را روی هر مقداری بین 30 دقیقه تا 7 روز تنظیم کنید. هنگام تغییر این مقدار، به معاوضه های زیر توجه داشته باشید:
- امنیت: TTLهای کوتاهتر امنیت قویتری را فراهم میکنند، زیرا پنجرهای را کاهش میدهد که در آن توکن لو رفته یا رهگیری شده توسط مهاجم مورد سوء استفاده قرار میگیرد.
- عملکرد: TTLهای کوتاهتر به این معنی است که برنامه شما به دفعات بیشتری گواهی را انجام می دهد. از آنجایی که فرآیند تأیید برنامه هر بار که انجام می شود، تاخیر را به درخواست های شبکه اضافه می کند، یک TTL کوتاه می تواند بر عملکرد برنامه شما تأثیر بگذارد.
- سهمیه و هزینه: TTLهای کوتاهتر و تأیید مجدد مکرر سهمیه شما را سریعتر از بین می برد و برای خدمات پولی، احتمالاً هزینه بیشتری دارد. به سهمیه ها و محدودیت ها مراجعه کنید.
TTL پیشفرض ۱ ساعت برای اکثر برنامهها معقول است. توجه داشته باشید که کتابخانه App Check توکن ها را تقریباً در نیمی از مدت زمان TTL تازه می کند.
2. کتابخانه App Check را به برنامه خود اضافه کنید
وابستگی App Check را به
Podfile
پروژه خود اضافه کنید:pod 'FirebaseAppCheck'
یا به جای آن، می توانید از Swift Package Manager به جای آن استفاده کنید.
مطمئن شوید که از آخرین نسخه سایر SDK های Firebase که به آنها وابسته هستید نیز استفاده می کنید.
pod install
اجرا کنید و فایل.xcworkspace
ایجاد شده را باز کنید.در Xcode، قابلیت App Attest را به برنامه خود اضافه کنید.
در فایل
.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 فعال نکنید، نیازی به معتبر بودن توکنها ندارند. برای جزئیات بیشتر به دو بخش بعدی مراجعه کنید.
5. معیارهای درخواست را رصد کنید
اکنون که برنامه بهروزرسانی شده شما در دست کاربران است، میتوانید اجرای App Check را برای محصولات Firebase که استفاده میکنید فعال کنید. با این حال، قبل از انجام این کار، باید مطمئن شوید که انجام این کار باعث اختلال در کاربران قانونی فعلی شما نمی شود.
پایگاه داده بیدرنگ، Cloud Firestore و Cloud Storage
ابزار مهمی که میتوانید برای این تصمیم برای پایگاه داده بیدرنگ، Cloud Firestore و Cloud Storage استفاده کنید، صفحه معیارهای درخواست بررسی برنامه است.
برای مشاهده معیارهای درخواست App Check برای یک محصول، بخش App Check را در کنسول Firebase باز کنید. مثلا:
معیارهای درخواست برای هر محصول به چهار دسته تقسیم می شوند:
درخواستهای تایید شده آنهایی هستند که دارای نشانه معتبر App Check هستند. پس از فعال کردن اجرای بررسی برنامه، فقط درخواستهای این دسته موفق خواهند شد.
درخواستهای مشتری منسوخ شده آنهایی هستند که کد App Check را ندارند. این درخواستها ممکن است از نسخه قدیمیتری از Firebase SDK قبل از گنجاندن App Check در برنامه باشد.
درخواستهای مبدأ ناشناخته آنهایی هستند که کد App Check را ندارند و به نظر نمیرسد از Firebase SDK آمده باشند. اینها ممکن است از درخواستهایی باشد که با کلیدهای API به سرقت رفته یا درخواستهای جعلی که بدون Firebase SDK انجام شدهاند.
درخواستهای نامعتبر درخواستهایی هستند که دارای یک کد برنامه بررسی نامعتبر هستند، که ممکن است از یک کلاینت غیر معتبر باشد که سعی در جعل هویت برنامه شما دارد، یا از محیطهای شبیهسازی شده.
توزیع این دستهها برای برنامه شما باید زمانی را که تصمیم به فعال کردن اعمال میکنید به شما اطلاع دهد. در اینجا چند دستورالعمل وجود دارد:
اگر تقریباً تمام درخواستهای اخیر از مشتریان تأیید شده است، برای شروع محافظت از منابع باطن خود، اجرای را فعال کنید.
اگر بخش قابلتوجهی از درخواستهای اخیر از کلاینتهایی هستند که به احتمال زیاد قدیمی هستند، برای جلوگیری از ایجاد اختلال در کاربران، قبل از فعال کردن اعمال، منتظر بمانید تا کاربران بیشتری برنامه شما را بهروزرسانی کنند. اجرای بررسی برنامه در یک برنامه منتشر شده، نسخههای قبلی برنامه را که با SDK بررسی برنامه ادغام نشدهاند، خراب میکند.
اگر برنامه شما هنوز راه اندازی نشده است، باید فوراً اجرای بررسی برنامه را فعال کنید، زیرا هیچ کلاینت قدیمی در حال استفاده نیست.
توابع ابری
برای توابع Cloud، میتوانید با بررسی گزارشهای عملکردهایتان، معیارهای App Check را دریافت کنید. هر فراخوانی یک تابع قابل فراخوانی یک ورودی گزارش ساختار یافته مانند مثال زیر منتشر می کند:
{
"severity": "INFO", // INFO, WARNING, or ERROR
"logging.googleapis.com/labels": {"firebase-log-type": "callable-request-verification"},
"jsonPayload": {
"message": "Callable header verifications passed.",
"verifications": {
// ...
"app": "MISSING", // VALID, INVALID, or MISSING
}
}
}
میتوانید این معیارها را در Google Cloud Console با ایجاد یک سنجه شمارنده مبتنی بر گزارشها با فیلتر متریک زیر تجزیه و تحلیل کنید:
resource.type="cloud_function" resource.labels.function_name="YOUR_CLOUD_FUNCTION" resource.labels.region="us-central1" labels.firebase-log-type="callable-request-verification"
با استفاده از فیلد jsonPayload.verifications.appCheck
، معیار را برچسب گذاری کنید.
6. اجرا را فعال کنید
برای فعال کردن اعمال، دستورالعملهای مربوط به هر محصول را در زیر دنبال کنید. هنگامی که اجرای یک محصول را فعال کنید، همه درخواستهای تأیید نشده برای آن محصول رد میشوند.
پایگاه داده بیدرنگ، Cloud Firestore و Cloud Storage
برای فعال کردن اعمال برای پایگاه داده Realtime، Cloud Firestore (iOS و Android) و Cloud Storage:
بخش App Check را در کنسول Firebase باز کنید.
نمای معیارهای محصولی را که میخواهید اجرای آن را فعال کنید، گسترش دهید.
روی Enforce کلیک کنید و انتخاب خود را تایید کنید.
توجه داشته باشید که تا 15 دقیقه پس از فعال کردن اجرای اعمال میشود.
توابع ابری
به فعال کردن اجرای بررسی برنامه برای عملکردهای ابری مراجعه کنید.
مراحل بعدی
اگر بعد از اینکه برنامه خود را برای بررسی برنامه ثبت کردید، می خواهید برنامه خود را در محیطی اجرا کنید که App Check معمولاً آن را معتبر طبقه بندی نمی کند، مانند شبیه ساز در حین توسعه، یا از یک محیط یکپارچه سازی مداوم (CI)، می توانید یک ساختار اشکال زدایی از برنامه خود ایجاد کنید که از ارائه دهنده اشکال زدایی App Check به جای ارائه دهنده گواهی واقعی استفاده می کند.
به استفاده از بررسی برنامه با ارائه دهنده اشکال زدایی در پلتفرم های Apple مراجعه کنید.