این صفحه به شما نشان میدهد که چگونه با استفاده از ارائهدهنده App Check سفارشی خود ، App Check را در یک برنامه Android فعال کنید. وقتی برنامه بررسی را فعال میکنید، مطمئن میشوید که فقط برنامه شما میتواند به منابع Firebase پروژه شما دسترسی داشته باشد.
اگر میخواهید از App Check با ارائهدهنده پیشفرض Play Integrity استفاده کنید، به فعال کردن App Check with Play Integrity در Android مراجعه کنید.
اگر قبلاً این کار را نکرده اید ، Firebase را به پروژه اندروید خود اضافه کنید .
منطق سمت سرور ارائه دهنده بررسی برنامه سفارشی خود را پیاده سازی کنید .
<project>/<app-module>/build.gradle.kts
یا <project>/<app-module>/build.gradle
)، وابستگی را برای بررسی برنامه اضافه کنید کتابخانه برای اندروید توصیه میکنیم از Firebase Android BoM برای کنترل نسخهسازی کتابخانه استفاده کنید.dependencies { // Import the BoM for the Firebase platform implementation(platform("com.google.firebase:firebase-bom:32.8.1")) // 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:17.1.2") }
ابتدا باید کلاس هایی ایجاد کنید که رابط های AppCheckProvider
و AppCheckProviderFactory
را پیاده سازی کنند.
کلاس AppCheckProvider
شما باید دارای یک متد getToken()
باشد که هر اطلاعاتی را که ارائهدهنده App Check سفارشی شما به عنوان اثبات اصالت نیاز دارد جمعآوری میکند و آن را در ازای توکن App Check به سرویس جذب توکن میفرستد. App Check SDK ذخیره رمز را کنترل می کند، بنابراین همیشه یک توکن جدید در پیاده سازی getToken()
دریافت کنید.
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) } }
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
شما را ایجاد می کند:
class YourCustomAppCheckProviderFactory : AppCheckProviderFactory { override fun create(firebaseApp: FirebaseApp): AppCheckProvider { // Create and return an AppCheckProvider object. return YourCustomAppCheckProvider(firebaseApp) } }
public class YourCustomAppCheckProviderFactory implements AppCheckProviderFactory { @NonNull @Override public AppCheckProvider create(@NonNull FirebaseApp firebaseApp) { // Create and return an AppCheckProvider object. return new YourCustomAppCheckProvider(firebaseApp); } }
کد اولیه زیر را به برنامه خود اضافه کنید تا قبل از استفاده از Firebase SDK دیگر اجرا شود:
Firebase.initialize(context) Firebase.appCheck.installAppCheckProviderFactory( YourCustomAppCheckProviderFactory(), )
FirebaseApp.initializeApp(/*context=*/ context); FirebaseAppCheck firebaseAppCheck = FirebaseAppCheck.getInstance(); firebaseAppCheck.installAppCheckProviderFactory( new YourCustomAppCheckProviderFactory());
هنگامی که کتابخانه App Check در برنامه شما نصب شد، شروع به توزیع برنامه به روز شده بین کاربران خود کنید.
برنامه کلاینت بهروزرسانیشده، به همراه هر درخواستی که به Firebase میکند، نشانههای App Check را ارسال میکند، اما محصولات Firebase تا زمانی که اعمال را در بخش App Check کنسول Firebase فعال نکنید، نیازی به معتبر بودن توکنها ندارند.
با این حال، قبل از فعال کردن اعمال، باید مطمئن شوید که انجام این کار باعث اختلال در کاربران قانونی فعلی شما نمی شود. از سوی دیگر، اگر استفاده مشکوک از منابع برنامه خود را مشاهده کردید، ممکن است بخواهید زودتر اجرای آن را فعال کنید.
برای کمک به این تصمیم، میتوانید به معیارهای App Check برای سرویسهایی که استفاده میکنید نگاه کنید:
- معیارهای درخواست بررسی برنامه برای پایگاه داده بیدرنگ، Cloud Firestore، Cloud Storage و Authentication (بتا) را بررسی کنید .
- معیارهای درخواست بررسی برنامه را برای عملکردهای ابری نظارت کنید .
وقتی متوجه شدید که بررسی برنامه چگونه بر کاربران شما تأثیر می گذارد و آماده ادامه کار هستید، می توانید اجرای بررسی برنامه را فعال کنید:
- اجرای بررسی برنامه را برای پایگاه داده بیدرنگ، Cloud Firestore، Cloud Storage و Authentication (بتا) فعال کنید .
- اجرای بررسی برنامه را برای عملکردهای ابری فعال کنید .
اگر بعد از اینکه برنامه خود را برای بررسی برنامه ثبت کردید، می خواهید برنامه خود را در محیطی اجرا کنید که App Check معمولاً آن را به عنوان معتبر طبقه بندی نمی کند، مانند شبیه ساز در طول توسعه، یا از یک محیط یکپارچه سازی مداوم (CI)، می توانید یک ساختار اشکال زدایی از برنامه خود ایجاد کنید که از ارائه دهنده اشکال زدایی App Check به جای ارائه دهنده گواهی واقعی استفاده می کند.
به استفاده از بررسی برنامه با ارائهدهنده اشکالزدایی در Android مراجعه کنید.