דף זה מראה לך כיצד להפעיל בדיקת אפליקציות באפליקציית Android, באמצעות ספק בדיקת האפליקציות המותאם אישית שלך . כאשר אתה מפעיל App Check, אתה עוזר להבטיח שרק האפליקציה שלך יכולה לגשת למשאבי Firebase של הפרויקט שלך.
אם ברצונך להשתמש ב-App Check עם ספק ברירת המחדל של Play Integrity, ראה הפעל App Check with Play Integrity ב-Android .
לפני שאתה מתחיל
הוסף את Firebase לפרויקט Android שלך אם עדיין לא עשית זאת.
יישם את ההיגיון בצד השרת של ספק האפליקציה המותאם אישית שלך .
1. הוסף את ספריית App Check לאפליקציה שלך
בקובץ Gradle של המודול (ברמת האפליקציה) (בדרך כלל app/build.gradle
), הכריז על התלות של ספריית ה-App Check Android:
Kotlin+KTX
dependencies {
implementation 'com.google.firebase:firebase-appcheck:16.1.2'
}
Java
dependencies {
implementation 'com.google.firebase:firebase-appcheck:16.1.2'
}
2. הטמעת ממשקי App Check
ראשית, עליך ליצור מחלקות המיישמות את ממשקי AppCheckProvider
ו- AppCheckProviderFactory
.
מחלקה AppCheckProvider
שלך חייבת להיות בשיטת getToken()
, אשר אוספת את כל המידע שספק ה-App Check המותאם אישית שלך דורש כהוכחה לאותנטיות, ושולחת אותו לשירות רכישת האסימון שלך בתמורה לאסימון App Check. ה-App Check SDK מטפל בשמירה במטמון של אסימון, אז קבל תמיד אסימון חדש בהטמעת getToken()
.
Kotlin+KTX
class YourCustomAppCheckToken(
private val token: String,
private val expiration: Long
) : AppCheckToken() {
override fun getToken(): String {
return token
}
override fun getExpireTimeMillis(): Long {
return expiration
}
}
class YourCustomAppCheckProvider : AppCheckProvider {
val token: Task<AppCheckToken>
get() {
// Logic to exchange proof of authenticity for an App Check token.
// ...
// Refresh the token early to handle clock skew.
val expMillis: Long = expirationFromServer * 1000 - 60000
// Create AppCheckToken object.
val appCheckToken: AppCheckToken =
YourCustomAppCheckToken(tokenFromServer, expMillis)
return 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 {
@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 * 1000 - 60000;
// Create AppCheckToken object.
AppCheckToken appCheckToken =
YourCustomAppCheckToken(tokenFromServer, expMillis);
return appCheckToken;
}
}
כמו כן, הטמע מחלקה של AppCheckProviderFactory
שיוצרת מופעים של הטמעת AppCheckProvider
שלך:
Kotlin+KTX
class YourCustomAppCheckProviderFactory : AppCheckProviderFactory {
fun create(firebaseApp: FirebaseApp): AppCheckProvider {
// Create and return an AppCheckProvider object.
return YourCustomAppCheckProvider(firebaseApp)
}
}
Java
public class YourCustomAppCheckProviderFactory implements AppCheckProviderFactory {
@Override
public AppCheckProvider create(FirebaseApp firebaseApp) {
// Create and return an AppCheckProvider object.
return new YourCustomAppCheckProvider(firebaseApp);
}
}
3. אתחול App Check
הוסף את קוד האתחול הבא לאפליקציה שלך כך שהיא תפעל לפני שתשתמש ב-SDK אחר של Firebase:
Kotlin+KTX
FirebaseApp.initializeApp(/*context=*/ this)
val firebaseAppCheck = FirebaseAppCheck.getInstance()
firebaseAppCheck.installAppCheckProviderFactory(
YourCustomAppCheckProviderFactory.getInstance())
Java
FirebaseApp.initializeApp(/*context=*/ this);
FirebaseAppCheck firebaseAppCheck = FirebaseAppCheck.getInstance();
firebaseAppCheck.installAppCheckProviderFactory(
YourCustomAppCheckProviderFactory.getInstance());
הצעדים הבאים
לאחר התקנת ספריית App Check באפליקציה שלך, התחל להפיץ את האפליקציה המעודכנת למשתמשים שלך.
אפליקציית הלקוח המעודכנת תתחיל לשלוח אסימוני App Check יחד עם כל בקשה שהיא תגיש ל-Firebase, אך מוצרי Firebase לא ידרשו שהאסימונים יהיו תקפים עד שתפעיל אכיפה בקטע App Check של מסוף Firebase.
עקוב אחר מדדים ואפשר אכיפה
עם זאת, לפני שתפעיל אכיפה, עליך לוודא כי פעולה זו לא תפריע למשתמשים הלגיטימיים הקיימים שלך. מצד שני, אם אתה רואה שימוש חשוד במשאבי האפליקציה שלך, אולי תרצה לאפשר אכיפה מוקדם יותר.
כדי לעזור בקבלת החלטה זו, תוכל להסתכל על מדדי App Check עבור השירותים שבהם אתה משתמש:
- עקוב אחר מדדי הבקשות של בדיקת אפליקציה עבור מסד נתונים בזמן אמת, Cloud Firestore ו-Cloud Storage.
- מעקב אחר מדדי בקשת בדיקת אפליקציה עבור פונקציות ענן .
אפשר אכיפת בדיקת אפליקציות
כשתבין כיצד בדיקת אפליקציות תשפיע על המשתמשים שלך ואתה מוכן להמשיך, תוכל להפעיל את אכיפת בדיקת האפליקציה:
- אפשר אכיפת בדיקת אפליקציות עבור מסד נתונים בזמן אמת, Cloud Firestore ו-Cloud Storage.
- אפשר אכיפת בדיקת אפליקציות עבור פונקציות ענן .
השתמש ב-App Check בסביבות ניפוי באגים
אם, לאחר שרשמתם את האפליקציה שלכם ל-App Check, ברצונכם להפעיל את האפליקציה שלכם בסביבה שבדרך כלל לא תסווג אותה כתקינה, כגון אמולטור במהלך הפיתוח, או מסביבת אינטגרציה מתמשכת (CI), תוכלו צור בניית באגים של האפליקציה שלך המשתמשת בספק ניפוי באגים של App Check במקום בספק אישור אמיתי.
ראה שימוש ב-App Check עם ספק ניפוי הבאגים ב-Android .