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

בחירת פלטפורמה: ‫iOS+‎ Android Web 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).

      • חשוב לוודא שהזנתם את אותו שם חבילה שסיפקתם כשנוצרה אפליקציית Firebase ל-Android בפרויקט Firebase. הערך של שם החבילה הוא תלוי אותיות רישיות (case-sensitive).

      • במקרה של 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. הוספת App Check SDK לאפליקציה

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

<0x0A<project>/<app-module>/build.gradle.kts<project>/<app-module>/build.gradleApp CheckreCAPTCHA מומלץ להשתמש ב-Firebase Android BoM כדי לשלוט בניהול הגרסאות של הספריות.

dependencies {
    // Import the BoM for the Firebase platform
    implementation(platform("com.google.firebase:firebase-bom:34.19.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:19.2.1")
}

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

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

תמחור

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

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