این صفحه به شما نشان میدهد که چگونه با استفاده از ارائهدهندهی سفارشی App Check ، قابلیت App Check را در یک برنامهی اندروید فعال کنید. وقتی App Check را فعال میکنید، مطمئن میشوید که فقط برنامهی شما میتواند به منابع Firebase پروژهتان دسترسی داشته باشد.
اگر میخواهید از App Check با ارائهدهنده پیشفرض Play Integrity استفاده کنید، به Enable App Check with Play Integrity on Android مراجعه کنید.
قبل از اینکه شروع کنی
اگر قبلاً Firebase را به پروژه اندروید خود اضافه نکردهاید، آن را اضافه کنید .
منطق سمت سرور ارائه دهنده App Check سفارشی خود را پیاده سازی کنید .
۱. کتابخانه App Check را به برنامه خود اضافه کنید
در فایل Gradle ماژول (سطح برنامه) خود (معمولاً<project>/<app-module>/build.gradle.kts یا <project>/<app-module>/build.gradle )، وابستگی مربوط به کتابخانه App Check برای اندروید را اضافه کنید. توصیه میکنیم از Firebase Android BoM برای کنترل نسخهبندی کتابخانه استفاده کنید.dependencies { // Import the BoM for the Firebase platform implementation(platform("com.google.firebase:firebase-bom:34.5.0")) // 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 استفاده خواهد کرد.
(جایگزین) اضافه کردن وابستگیهای کتابخانه 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:19.0.1") }
۲. رابطهای App Check را پیادهسازی کنید
ابتدا، باید کلاسهایی ایجاد کنید که رابطهای AppCheckProvider و AppCheckProviderFactory را پیادهسازی کنند.
کلاس AppCheckProvider شما باید یک متد getToken() داشته باشد که هر اطلاعاتی را که ارائهدهندهی سفارشی App Check شما به عنوان مدرک اصالت نیاز دارد، جمعآوری میکند و آن را در ازای یک توکن App Check به سرویس دریافت توکن شما ارسال میکند. App Check SDK ذخیرهسازی توکن را مدیریت میکند، بنابراین همیشه در پیادهسازی 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
کد مقداردهی اولیه زیر را به برنامه خود اضافه کنید تا قبل از استفاده از هرگونه SDK فایربیس دیگر اجرا شود:
Kotlin
Firebase.initialize(context) Firebase.appCheck.installAppCheckProviderFactory( YourCustomAppCheckProviderFactory(), )
Java
FirebaseApp.initializeApp(/*context=*/ context); FirebaseAppCheck firebaseAppCheck = FirebaseAppCheck.getInstance(); firebaseAppCheck.installAppCheckProviderFactory( new YourCustomAppCheckProviderFactory());
مراحل بعدی
پس از نصب کتابخانه App Check در برنامه خود، شروع به توزیع برنامه بهروزرسانیشده بین کاربران خود کنید.
برنامه کلاینت بهروزرسانیشده، همراه با هر درخواستی که به Firebase ارسال میکند، شروع به ارسال توکنهای App Check میکند، اما محصولات Firebase تا زمانی که شما در بخش App Check کنسول Firebase، اجرای این کدها را فعال نکنید، نیازی به معتبر بودن آنها نخواهند داشت.
نظارت بر معیارها و فعال کردن اجرای آنها
با این حال، قبل از فعال کردن اجرای قانون، باید مطمئن شوید که انجام این کار، کاربران قانونی فعلی شما را مختل نمیکند. از طرف دیگر، اگر استفاده مشکوکی از منابع برنامه خود مشاهده میکنید، بهتر است زودتر اجرای قانون را فعال کنید.
برای کمک به تصمیمگیری، میتوانید به معیارهای App Check برای سرویسهایی که استفاده میکنید، نگاهی بیندازید:
- معیارهای درخواست App Check برای Firebase AI Logic ، Data 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 را فعال کنید:
- فعال کردن اجرای App Check برای Firebase AI Logic ، Data 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 با ارائهدهنده اشکالزدایی در اندروید» مراجعه کنید.