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

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

נכון לעכשיו, הספק המובנה של Play Integrity תומך רק באפליקציות ל-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 ובוחרים את פרויקט Firebase מתוך רשימת הפרויקטים ב-Google Cloud. הפרויקט שבוחרים כאן חייב להיות אותו פרויקט Firebase שבו רושמים את האפליקציה (ראו את השלב הבא).

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

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

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

    • אבטחה: זמן חיים קצר יותר של אסימון מספק אבטחה חזקה יותר, כי הוא מצמצם את החלון שבו תוקף יכול לנצל לרעה אסימון שדלף או נתפס.
    • ביצועים: ככל שזמן החיים של התגים קצר יותר, כך האפליקציה תבצע אימות בתדירות גבוהה יותר. תהליך האימות של האפליקציה מוסיף זמן אחזור לבקשות הרשת בכל פעם שהוא מתבצע, ולכן 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.6.0"))

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

(חלופה)  מוסיפים יחסי תלות לספריות של 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 (32.5.0Firebase BoM), מפתחי 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), אפשר ליצור גרסה לניפוי באגים של האפליקציה שמשתמשת בספק ניפוי הבאגים של App Check במקום בספק אימות אמיתי.

למידע נוסף, אפשר לעיין במאמר שימוש ב-App Check עם ספק ניפוי הבאגים ב-Android.