این صفحه به شما نشان میدهد که چگونه App Check را در برنامه Android بااستفاده از ارائهدهنده App Check سفارشی خودتان فعال کنید. وقتی App Check را فعال میکنید، کمک میکنید تا مطمئن شوید فقط برنامه شما میتواند به منابع Firebase پروژهتان دسترسی داشته باشد.
اگر میخواهید از App Check با ارائهدهنده پیشفرض Play Integrity استفاده کنید، فعال کردن App Check با Play Integrity در Android را ببینید.
قبل از شروع
اگر قبلاً این کار را نکردهاید، Firebase را به پروژه Android خود اضافه کنید.
منطق سمت سرور ارائهدهنده App Check سفارشیتان را پیادهسازی کنید.
۱. کتابخانه 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 dependency for the App Check library // When using the BoM, you don't specify versions in Firebase library dependencies implementation("com.google.firebase:firebase-appcheck") }
بااستفاده از Firebase Android BoM، برنامه شما همیشه از نسخههای سازگار کتابخانههای Firebase Android استفاده خواهد کرد.
(جایگزین) افزودن وابستگیهای کتابخانه Firebase بدون استفاده از BoM
اگر انتخاب کنید که از Firebase BoM استفاده نکنید، باید هر نسخه کتابخانه Firebase را در خط وابستگی آن مشخص کنید.
توجه داشته باشید که اگر از چند کتابخانه Firebase در برنامهتان استفاده میکنید، اکیداً توصیه میکنیم از BoM برای مدیریت نسخههای کتابخانه استفاده کنید تا مطمئن شوید همه نسخهها سازگار هستند.
dependencies { // Add the dependency for the App Check library // When NOT using the BoM, you must specify versions in Firebase library dependencies implementation("com.google.firebase:firebase-appcheck:20.0.0") }
۲. پیادهسازی میاناهای App Check
ابتدا باید کلاسهایی ایجاد کنید که میاناهای AppCheckProvider و
AppCheckProviderFactory را پیادهسازی کنند.
کلاس AppCheckProvider شما باید روش getToken() داشته باشد که هر اطلاعاتی را که ارائهدهنده App Check سفارشی شما بهعنوان مدرک اصالت نیاز دارد جمعآوری کند و آن را در ازای یک کد App Check به سرویس دریافت کد شما ارسال کند. App Check کیت توسعه نرمافزار ذخیره کردن مؤلفه در حافظه نهان را مدیریت میکند، بنابراین همیشه
مؤلفه جدیدی در پیادهسازی getToken() دریافت کنید.
Kotlin
class YourCustomAppCheckToken( private val token: String, private val expiration: Long, ) : AppCheckToken() { override fun getToken(): String = token override fun getExpireTimeMillis(): Long = expiration } class YourCustomAppCheckProvider(firebaseApp: FirebaseApp) : AppCheckProvider { override fun getToken(): Task<AppCheckToken> { // Logic to exchange proof of authenticity for an App Check token and // expiration time. // ... // Refresh the token early to handle clock skew. val expMillis = expirationFromServer * 1000L - 60000L // Create AppCheckToken object. val appCheckToken: AppCheckToken = YourCustomAppCheckToken(tokenFromServer, expMillis) return Tasks.forResult(appCheckToken) } }
Java
public class YourCustomAppCheckToken extends AppCheckToken { private String token; private long expiration; YourCustomAppCheckToken(String token, long expiration) { this.token = token; this.expiration = expiration; } @NonNull @Override public String getToken() { return token; } @Override public long getExpireTimeMillis() { return expiration; } } public class YourCustomAppCheckProvider implements AppCheckProvider { public YourCustomAppCheckProvider(FirebaseApp firebaseApp) { // ... } @NonNull @Override public Task<AppCheckToken> getToken() { // Logic to exchange proof of authenticity for an App Check token and // expiration time. // ... // Refresh the token early to handle clock skew. long expMillis = expirationFromServer * 1000L - 60000L; // Create AppCheckToken object. AppCheckToken appCheckToken = new YourCustomAppCheckToken(tokenFromServer, expMillis); return Tasks.forResult(appCheckToken); } }
همچنین، کلاس AppCheckProviderFactory را پیادهسازی کنید که نمونههایی از پیادهسازی
AppCheckProvider شما ایجاد میکند:
Kotlin
class YourCustomAppCheckProviderFactory : AppCheckProviderFactory { override fun create(firebaseApp: FirebaseApp): AppCheckProvider { // Create and return an AppCheckProvider object. return YourCustomAppCheckProvider(firebaseApp) } }
Java
public class YourCustomAppCheckProviderFactory implements AppCheckProviderFactory { @NonNull @Override public AppCheckProvider create(@NonNull FirebaseApp firebaseApp) { // Create and return an AppCheckProvider object. return new YourCustomAppCheckProvider(firebaseApp); } }
۳. مقداردهی اولیه App Check
کد مقداردهی اولیه زیر را به برنامهتان اضافه کنید تا قبلاز استفاده از هر کیت توسعه نرمافزار Firebase دیگری اجرا شود:
Kotlin
Firebase.initialize(context) Firebase.appCheck.installAppCheckProviderFactory( YourCustomAppCheckProviderFactory(), )
Java
FirebaseApp.initializeApp(/*context=*/ context); FirebaseAppCheck firebaseAppCheck = FirebaseAppCheck.getInstance(); firebaseAppCheck.installAppCheckProviderFactory( new YourCustomAppCheckProviderFactory());
مراحل بعدی
پساز نصب کتابخانه 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 را ببینید.