این صفحه به شما نشان میدهد که چگونه بااستفاده از ارائهدهنده داخلی Play Integrity، App Check را در برنامه Android فعال کنید. وقتی App Check را فعال میکنید، کمک میکنید مطمئن شوید که فقط برنامه شما میتواند به منابع پسین پروژهتان دسترسی داشته باشد. نمای کلی این ویژگی را ببینید.
ارائهدهنده Play Integrity از برنامههای Android که در Google Play، خارج از Google Play، یا هر دو منتشر شدهاند پشتیبانی میکند. اگر مورد استفاده شما به ویژگیهای Play Integrity نیاز دارد که توسط App Check پیادهسازی نشده است، یا اگر میخواهید از App Check با ارائهدهنده سفارشی خودتان استفاده کنید، به پیادهسازی ارائهدهنده سفارشی App Check مراجعه کنید.
۱. راهاندازی پروژه Firebase
اگر قبلاً این کار را نکردهاید، Firebase را به پروژه Android خود اضافه کنید.
فعال کردن Play Integrity API:
در کنسول Google Play، برنامهتان را انتخاب کنید، یا اگر قبلاً این کار را نکردهاید، آن را اضافه کنید.
در بخش انتشار، روی تمامیت برنامه کلیک کنید.
به بخش Play Integrity API در صفحه بروید، روی پیوند دادن پروژه Cloud کلیک کنید، سپس پروژه Firebase خود را از فهرست پروژههای Google Cloud انتخاب کنید. پروژهای که در اینجا انتخاب میکنید باید همان پروژه Firebase باشد که برنامهتان را در آن ثبت میکنید (مرحله بعدی را ببینید).
در کنسول Firebase، به امنیت > بررسی برنامه بروید.
در برگه برنامهها، برنامههایتان را ثبت کنید تا از App Check با ارائهدهنده Play Integrity استفاده کنید. باید اثر انگشت SHA-256 گواهی امضای برنامهتان را ارائه دهید.
معمولاً باید همه برنامههای پروژهتان را ثبت کنید، زیرا وقتی اجرا را برای محصول Firebase فعال میکنید، فقط برنامههای ثبتشده میتوانند به منابع پسزمینه محصول دسترسی داشته باشند.
اختیاری: زمان بقای (TTL) کد را تنظیم کنید.
در تنظیمات ثبت برنامه، زمان سفارشی برای زندگی (TTL) را برای نشانهای App Check صادرشده توسط ارائهدهنده تنظیم کنید. میتوانید TTL را روی هر مقداری بین ۳۰ دقیقه و ۷ روز تنظیم کنید. هنگام تغییر این مقدار، به مبادلههای زیر توجه داشته باشید:
- امنیت: TTL کوتاهتر امنیت قویتری را فراهم میکند، زیرا پنجرهای را که در آن یک توکن لو رفته یا رهگیریشده میتواند توسط یک مهاجم مورد سوءاستفاده قرار گیرد، کاهش میدهد.
- عملکرد: TTL کوتاهتر بهمعنای این است که برنامه شما گواهی را بهدفعات بیشتری انجام خواهد داد. ازآنجاییکه فرایند تصدیق برنامه هربار که انجام میشود به درخواستهای شبکه تأخیر اضافه میکند، TTL کوتاه میتواند بر عملکرد برنامهتان تأثیر بگذارد.
- سهمیه و هزینه: TTL کوتاهتر و گواهی مجدد مکرر سهمیه شما را سریعتر تمام میکند و برای سرویسهای پولی، احتمالاً هزینه بیشتری دارد. سهمیهها و محدودیتها را ببینید.
TTL پیشفرض ۱ ساعت برای اکثر برنامهها مناسب است. توجه داشته باشید که کتابخانه App Check ژتونها را تقریباً در نیمی از مدت TTL بازآوری میکند.
پیکربندی تنظیمات پیشرفته (اختیاری)
App Check تنظیمات متعددی را برای پشتیبانی از موارد استفاده پیشرفته ارائه میدهد، ازجمله توزیع برنامه شما در خارج از Google Play. برای هرکدام از برنامههای Android ثبتشدهتان، میتوانید این تنظیمات را در برگه App Check > برنامهها در کنسول Firebase پیکربندی کنید. توصیه میکنیم این تنظیمات را هنگام اولین ثبت برنامهتان مطابق با جدول زیر پیکربندی کنید.
| کانال توزیع برنامه شما | PLAY_RECOGNIZED | دارای پروانه | حداقل سطح قابلقبول تمامیت دستگاه |
|---|---|---|---|
| منحصراً در Google Play | ضروری | ضروری | سطح تمامیت دستگاه بهطور صریح بررسی نمیشود |
| منحصراً خارج از Google Play | الزامی نیست | الزامی نیست | تمامیت دستگاه |
| در Google Play و خارج از Google Play | ضروری | الزامی نیست | سطح تمامیت دستگاه بهطور صریح بررسی نمیشود |
جزئیات
هر تنظیم پیشرفته با یک برچسب حکم Play Integrity مطابقت دارد. برای جزئیات بیشتر، به اسناد Play Integrity مراجعه کنید.
- بهطور پیشفرض، App Check به برچسب تشخیص برنامه
PLAY_RECOGNIZEDنیاز دارد. برنامههایی که در Google Play منتشر نشدهاند واجدشرایط دریافت این برچسب نیستند. - بهطور پیشفرض، App Check به برچسب صدور پروانه برنامه
LICENSEDنیاز ندارد. فقط کاربرانی که برنامهتان را مستقیماً از Google Play نصب یا بهروزرسانی کردهاند واجدشرایط دریافت این برچسب هستند. بهطور پیشفرض، App Check بهطور صریح حکم تمامیت دستگاه را بررسی نمیکند. App Check بهطور صریح سه سطح تمامیت دستگاه زیر را بررسی میکند که بهترتیب افزایش تمامیت دستگاه فهرست شدهاند.
تمامیت پایه. باعث میشود App Check به برچسب تشخیص دستگاه
MEETS_BASIC_INTEGRITYنیاز داشته باشد. برای اینکه برنامهتان واجدشرایط دریافت این برچسب اختیاری باشد، ابتدا باید ازطریق «کنسول Google Play» موافقت کنید.تمامیت دستگاه. باعث میشود App Check به برچسب تشخیص دستگاه
MEETS_DEVICE_INTEGRITYنیاز داشته باشد. همه برنامهها بهطور خودکار واجدشرایط دریافت این برچسب هستند.تمامیت قوی. باعث میشود App Check به برچسب تشخیص دستگاه
MEETS_STRONG_INTEGRITYنیاز داشته باشد. برای اینکه برنامهتان واجدشرایط دریافت این برچسب اختیاری باشد، ابتدا باید ازطریق «کنسول Google Play» موافقت کنید.
۲. کتابخانه App Check را به برنامهتان اضافه کنید
در فایل Gradle (سطح برنامه) (معمولاً<project>/<app-module>/build.gradle.kts یا
<project>/<app-module>/build.gradle)،
وابستگی کتابخانه App Check را برای Android اضافه کنید. توصیه میکنیم از
Firebase Android BoM
برای کنترل نسخهبندی کتابخانه استفاده کنید.
dependencies { // Import the BoM for the Firebase platform implementation(platform("com.google.firebase:firebase-bom:35.0.2")) // Add the dependencies for the App Check libraries // When using the BoM, you don't specify versions in Firebase library dependencies implementation("com.google.firebase:firebase-appcheck-playintegrity") }
بااستفاده از Firebase Android BoM، برنامه شما همیشه از نسخههای سازگار کتابخانههای Firebase Android استفاده خواهد کرد.
(جایگزین) افزودن وابستگیهای کتابخانه Firebase بدون استفاده از BoM
اگر انتخاب کنید که از Firebase BoM استفاده نکنید، باید هر نسخه کتابخانه Firebase را در خط وابستگی آن مشخص کنید.
توجه داشته باشید که اگر از چند کتابخانه Firebase در برنامهتان استفاده میکنید، اکیداً توصیه میکنیم از BoM برای مدیریت نسخههای کتابخانه استفاده کنید تا مطمئن شوید همه نسخهها سازگار هستند.
dependencies { // Add the dependencies for the App Check libraries // When NOT using the BoM, you must specify versions in Firebase library dependencies implementation("com.google.firebase:firebase-appcheck-playintegrity:20.0.0") }
۳. مقداردهی اولیه App Check
کد مقداردهی اولیه زیر را به برنامهتان اضافه کنید تا قبلاز استفاده از هر کیت توسعه نرمافزار Firebase دیگری اجرا شود:
Kotlin
Firebase.initialize(context = this) Firebase.appCheck.installAppCheckProviderFactory( PlayIntegrityAppCheckProviderFactory.getInstance(), )
Java
FirebaseApp.initializeApp(/*context=*/ this); FirebaseAppCheck firebaseAppCheck = FirebaseAppCheck.getInstance(); firebaseAppCheck.installAppCheckProviderFactory( PlayIntegrityAppCheckProviderFactory.getInstance());
مراحل بعدی
پساز نصب کتابخانه 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 با ارائهدهنده اشکالزدایی در Android را ببینید.