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