תחילת העבודה עם App Check באמצעות reCAPTCHA Enterprise ב-Android

בחירת פלטפורמה: iOS+ Android אינטרנט Flutter


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

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

אם אתם צריכים תכונות של reCAPTCHA Enterprise שלא מוטמעות ב-App Check, או אם אתם רוצים להשתמש ב-App Check עם ספק בהתאמה אישית, קראו את המאמר הטמעה של ספק App Check בהתאמה אישית.

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

  1. אם עדיין לא הוספתם את Firebase לפרויקט Android, אתם צריכים להוסיף אותו.

  2. במסוף Google Cloud, נכנסים לדף Fraud Defense ומבצעים את הפעולות הבאות לספק reCAPTCHA Enterprise:

    1. מוודאים שאתם נמצאים בפרויקט הנכון (בעזרת הכלי לבחירת פרויקטים שבחלק העליון של המסך).

    2. אם מופיעה בקשה, מפעילים את ה-API של reCAPTCHA Enterprise.

    3. יוצרים מפתח מסוג Android ומציינים את שם החבילה של האפליקציה (לדוגמה, com.example.my_app).

      • חשוב להזין את אותו שם חבילה שציינתם כשיצרתם את אפליקציית Android ב-Firebase בפרויקט Firebase. הערך של שם החבילה הוא תלוי אותיות רישיות.

      • ב-App Check, כל שם חבילה יכול להתאים רק למפתח reCAPTCHA אחד.

      הוראות מפורטות זמינות במאמר יצירת מפתחות reCAPTCHA שמבוססים על ניקוד.

    4. שימו לב למפתח הזה. צריך להוסיף אותו לתהליך הרישום במסוף Firebase.

  3. במסוף Firebase, נכנסים לקטע Security (אבטחה) > App Check.

  4. בכרטיסייה Apps, רושמים את האפליקציות ל-Android שרוצים להשתמש בהן ב-App Check עם הספק reCAPTCHA Enterprise. צריך לספק את המפתח שקיבלת במסוף Google Cloud.

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

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

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

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

  6. אופציונלי: קובעים הגדרות מתקדמות.

  7. לוחצים על שמירה.

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

כשמשתמש פותח את האפליקציה, reCAPTCHA Enterprise מעריך את רמת הסיכון של האינטראקציה של המשתמש במפתח, ומחזיר ציון בין 0.0 ל-1.0, במרווחים של 0.1.

  • ציון של 0.0 מציין שהאינטראקציה מהווה סיכון גבוה ויכול להיות שמקורה בתרמית.
  • ציון של 1.0 מציין שהאינטראקציה היא בסיכון נמוך וסביר מאוד שהיא לגיטימית.

ב-App Check אתם יכולים להגדיר סף סיכון לאפליקציה כדי להתאים את הסבילות שלכם לסיכון הזה.

ברוב המקרים, מומלץ להשתמש בערך הסף שמוגדר כברירת מחדל, 0.5. אם אתם צריכים לשנות את הערך הזה, אתם יכולים להגדיר אותו לכל אחת מהאפליקציות במסוף Firebase (עוברים אל אבטחה > App Check). חשוב להרחיב את הקטע שיקולים חשובים לגבי הגדרת סף הסיכון של האפליקציה שבהמשך ולקרוא אותו.

2. מוסיפים את ה-SDK של App Check לאפליקציה

כדי להשתמש בספק reCAPTCHA Enterprise, צריך להוסיף את התלות המתאימה.

בקובץ Gradle של המודול (ברמת האפליקציה) (בדרך כלל <project>/<app-module>/build.gradle.kts או <project>/<app-module>/build.gradle), מוסיפים את התלות בספריית App Check reCAPTCHA ל-Android. מומלץ להשתמש ב-Firebase Android BoM כדי לשלוט בניהול גרסאות של הספרייה.

dependencies {
    // Import the BoM for the Firebase platform
    implementation(platform("com.google.firebase:firebase-bom:35.1.0"))

    // Add the dependency for the App Check reCAPTCHA library
    // When using the BoM, you don't specify versions in Firebase library dependencies
    implementation("com.google.firebase:firebase-appcheck-recaptcha")
}

כשמשתמשים ב-Firebase Android BoM, האפליקציה תמיד משתמשת בגרסאות תואמות של ספריות Firebase ל-Android.

(אפשרות חלופית)  מוסיפים תלות של הפרויקט בספריות של Firebase בלי להשתמש ב-BoM

אם אתם בוחרים לא להשתמש ב-Firebase BoM, אתם צריכים לציין כל גרסה של ספריית Firebase בשורת התלות שלה.

שימו לב: אם אתם משתמשים בכמה ספריות של Firebase באפליקציה, מומלץ מאוד להשתמש ב-BoM כדי לנהל את גרסאות הספרייה, וכך לוודא שכל הגרסאות תואמות.

dependencies {
    // Add the dependency for the App Check reCAPTCHA library
    // When NOT using the BoM, you must specify versions in Firebase library dependencies
    implementation("com.google.firebase:firebase-appcheck-recaptcha:20.0.0")
}

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

באפליקציה, צריך להפעיל את App Check לפני שמשתמשים בשירותים אחרים של Firebase.

Kotlin

Firebase.initialize(context = this)
Firebase.appCheck.installAppCheckProviderFactory(
    RecaptchaAppCheckProviderFactory.getInstance("SITE_KEY")
)

Java

FirebaseApp.initializeApp(/*context=*/ this);
FirebaseAppCheck firebaseAppCheck = FirebaseAppCheck.getInstance();
firebaseAppCheck.installAppCheckProviderFactory(
      RecaptchaAppCheckProviderFactory.getInstance("SITE_KEY"));

4. מעקב אחרי מדדים והפעלת אכיפה

אחרי שמגדירים את App Check באפליקציה, מתחילים להפיץ את האפליקציה המעודכנת למשתמשים.

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

מעקב אחרי מדדים

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

כדי להחליט, אתם יכולים לבדוק את המדדים של App Check בשירותים שבהם אתם משתמשים:

הפעלת האכיפה של App Check

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

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

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

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

פרטים נוספים זמינים במאמר שימוש ב-App Check עם ספק אימות לצורכי ניפוי באגים ב-Android.

תמחור

‫App Check יוצר הערכה בשמכם כדי לאמת את אסימון התגובה של המשתמש בכל פעם שהאפליקציה מרעננת את אסימון App Check שלה. הפרויקט ב-Firebase יחויב על כל הערכה שנוצרה מעבר למכסה החינמית. לפרטים נוספים, קראו את המאמר תמחור של reCAPTCHA.

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