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

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

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

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

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

  5. אופציונלי: מגדירים את אורך החיים (TTL) של האסימון.

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

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

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

קביעת הגדרות מתקדמות (אופציונלי)

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

ערוץ ההפצה של האפליקציה PLAY_RECOGNIZED LICENSED רמת תקינות המכשיר המינימלית המקובלת
בלעדי ב-Google Play חובה חובה לא לבדוק באופן מפורש את רמת התקינות של המכשיר
רק מחוץ ל-Google Play לא חובה לא חובה תקינות המכשיר
ב-Google Play ומחוץ ל-Google Play חובה לא חובה לא לבדוק באופן מפורש את רמת התקינות של המכשיר

פרטים

כל הגדרה מתקדמת תואמת לתווית פסיקה של Play Integrity. פרטים נוספים זמינים במסמכי התיעוד של Play Integrity.

  • כברירת מחדל, App Check דורש את תווית זיהוי האפליקציה PLAY_RECOGNIZED. אפליקציות שלא פורסמו ב-Google Play לא כשירות לקבל את התווית הזו.
  • כברירת מחדל, App Check לא דורש את תווית הרישוי לשימוש באפליקציה LICENSED. רק משתמשים שהתקינו או עדכנו את האפליקציה ישירות מ-Google Play יכולים לקבל את התווית הזו.
  • כברירת מחדל, App Check לא בודק באופן מפורש את פסיקת תקינות המכשיר. ‫App Check תומך בבדיקה מפורשת של שלוש רמות תקינות המכשיר הבאות, לפי סדר עולה של תקינות המכשיר.

    • תקינות בסיסית. גורם ל-App Check לדרוש את תווית זיהוי המכשיר MEETS_BASIC_INTEGRITY. כדי שהאפליקציה תעמוד בדרישות לקבלת התווית האופציונלית הזו, קודם צריך להביע הסכמה ב-Google Play Console.

    • תקינות המכשיר. גורם ל-App Check לדרוש את תווית זיהוי המכשיר MEETS_DEVICE_INTEGRITY. כל האפליקציות עומדות באופן אוטומטי בדרישות לקבלת התווית הזו.

    • תקינות חזקה. גורם ל-App Check לדרוש את תווית זיהוי המכשיר MEETS_STRONG_INTEGRITY. כדי שהאפליקציה תעמוד בדרישות לקבלת התווית האופציונלית הזו, קודם צריך להביע הסכמה ב-Google Play Console.

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:35.0.2"))

    // 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:20.0.0")
}

3. מפעילים את App Check

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

Kotlin

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