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

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

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

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

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

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

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

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