איך מתחילים להשתמש בבדיקת אפליקציות עם Play Integrity ב-Android

בדף הזה מוסבר איך להפעיל את App Check באפליקציה ל-Android באמצעות הספק המובנה של Play Integrity. כשאתם מפעילים את App Check, אתם עוזרים לוודא שרק לאפליקציה שלכם תהיה גישה למשאבי Firebase של הפרויקט. סקירה כללית על התכונה הזו

נכון לעכשיו, ספק שירות התקינות המובנה של Play תומך רק באפליקציות ל-Android שמופצות על ידי Google Play. כדי להשתמש בתכונות של Play Integrity מחוץ ל-Play או כדי להשתמש ב-App Check עם ספק מותאם אישית, ראו הטמעה של ספק App Check בהתאמה אישית.

1. הגדרת פרויקט Firebase

  1. מוסיפים את Firebase לפרויקט Android אם עדיין לא עשיתם זאת.

  2. מפעילים את Play Integrity API:

    1. ב-Google Play Console, בוחרים את האפליקציה או מוסיפים אותה אם עדיין לא עשיתם זאת.

    2. בקטע גרסה, לוחצים על תקינות האפליקציה.

    3. נכנסים לקטע Play Integrity API בדף, לוחצים על Link Cloud project (קישור הפרויקט ב-Cloud) ובוחרים את הפרויקט ב-Firebase מרשימת הפרויקטים ב-Google Cloud. הפרויקט שבוחרים כאן צריך להיות זהה לפרויקט ב-Firebase שבו רשמתם את האפליקציה (לפי השלב הבא).

  3. צריך לרשום את האפליקציות כדי להשתמש ב-App Check אצל ספק Integrity של Play בקטע App Check במסוף Firebase. תצטרכו לספק את טביעת האצבע SHA-256 של אישור החתימה של האפליקציה.

    בדרך כלל צריך לרשום את כל האפליקציות בפרויקט, כי אחרי שמפעילים אכיפה למוצר של Firebase, רק אפליקציות רשומות יכולות לגשת למשאבי הקצה העורפי של המוצר.

  4. אופציונלי: בהגדרות הרישום של האפליקציה, מגדירים אורך חיים (TTL) בהתאמה אישית לאסימונים של App Check שהונפקו על ידי הספק. אפשר להגדיר את ה-TTL לכל ערך בין 30 דקות ל-7 ימים. כשמשנים את הערך הזה, חשוב לזכור את הפשרות הבאות:

    • אבטחה: אורך חיים קצר יותר מספק אבטחה חזקה יותר, כי הוא מצמצם את חלון הזמן שבו תוקפים יכולים לנצל לרעה אסימון שדלף או מיירט.
    • ביצועים: ככל שזמן החיים של התגים קצר יותר, כך האפליקציה תבצע אימות בתדירות גבוהה יותר. תהליך האימות (attestation) של האפליקציה מוסיף זמן אחזור לבקשות ברשת בכל פעם שהוא מתבצע, לכן אורך TTL קצר יכול להשפיע על הביצועים של האפליקציה.
    • מכסה ועלות: TTL קצר יותר ואימות חוזר תכופים מורידים את המכסה מהר יותר, ובשירותים בתשלום יכול להיות שהעלות תהיה גבוהה יותר. מידע נוסף זמין בקטע מכסות ומגבלות.

    ברירת המחדל של TTL היא שעה אחת, והיא מתאימה לרוב האפליקציות. חשוב לזכור שהספרייה App Check מרעננת את האסימונים בערך במחצית משך ה-TTL.

2. הוספה של הספרייה 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:33.5.1"))

    // 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, האפליקציה תמיד תשתמש בגרסאות תואמות של ספריות Android של Firebase.

(חלופה)  מוסיפים יחסי תלות לספריות של 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:18.0.0")
}
מחפשים מודול ספרייה ספציפי ל-Kotlin? החל מ-אוקטובר 2023 (Firebase BoM 32.5.0), מפתחי Kotlin ומפתחי Java יוכלו להסתמך על מודול הספרייה הראשי (פרטים נוספים זמינים בשאלות הנפוצות לגבי היוזמה הזו).

3. אתחול של App Check

מוסיפים את קוד האתחול הבא לאפליקציה כדי שהיא תפעל לפני שמשתמשים בערכות SDK אחרות של Firebase:

Kotlin+KTX

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

אחרי שתבחנו איך App Check ישפיע על המשתמשים שלכם ותהיה לכם כוונה להמשיך, תוכלו להפעיל את האכיפה של App Check:

שימוש ב-App Check בסביבות ניפוי באגים

אחרי שרושמים את האפליקציה ל-App Check רוצים להריץ את האפליקציה בסביבה שבדרך כלל App Check לא מסווגת כחוקית, כמו אמולטור במהלך הפיתוח או מסביבת אינטגרציה רציפה (CI), אפשר ליצור גרסת build לניפוי באגים של האפליקציה שמשתמשת בספק ניפוי הבאגים App Check במקום בספק אימות אמיתי.

שימוש ב-App Check עם ספק ניפוי הבאגים ב-Android