בחירת פלטפורמה: Android iOS JavaScript

שימוש ב-App Check כדי לאבטח את מפתח ה-API

Firebase App Check מספק הגנה על קריאות מהאפליקציה שלכם ל-Google Maps Platform, על ידי חסימת תעבורת נתונים שמגיעה ממקורות שאינם אפליקציות לגיטימיות. הבדיקה מתבצעת על ידי חיפוש טוקן מספק אימות כמו Play Integrity. שילוב של האפליקציות עם App Check עוזר להגן עליהן מפני בקשות זדוניות, כך שלא תחויבו על קריאות לא מורשות ל-API.

האם App Check מתאים לי?

ברוב המקרים מומלץ להשתמש ב-App Check, אבל במקרים הבאים אין צורך ב-App Check או שהיא לא נתמכת:

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

סקירה כללית של שלבי ההטמעה

אלה השלבים שצריך לבצע כדי לשלב את האפליקציה עם App Check:

  1. מוסיפים את Firebase לאפליקציה.
  2. מוסיפים את ספריית App Check ומפעילים אותה.
  3. מוסיפים את ספק הטוקן.
  4. מפעילים את ניפוי הבאגים.
  5. לעקוב אחרי הבקשות של האפליקציה ולהחליט על אכיפה.

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

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

שיקולים בתכנון שילוב של App Check

כמה דברים שכדאי להביא בחשבון כשמתכננים את השילוב:

  • לספק האימות שאנחנו ממליצים עליו, Play Integrity, יש מגבלת קריאות יומית ברמת השימוש הרגילה ב-API. מידע נוסף על מגבלות הקריאות זמין בדף הגדרה במאמרי העזרה למפתחים של Google Play Integrity.

    אפשר גם להשתמש בספק אימות בהתאמה אישית, אבל זה תרחיש שימוש מתקדם. מידע נוסף זמין במאמר הטמעה של ספק App Check בהתאמה אישית.

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

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

שילוב האפליקציה עם App Check

דרישות מוקדמות

  • אפליקציה שמשולבת בה גרסה 4.1 או גרסה חדשה יותר של Places SDK.
  • טביעת האצבע מסוג SHA-256 של האפליקציה.
  • שם החבילה של האפליקציה.
  • אתם צריכים להיות הבעלים של האפליקציה ב-מסוף Cloud.
  • צריך את מזהה הפרויקט של האפליקציה מ-Cloud Console

שלב 1: מוסיפים את Firebase לאפליקציה

פועלים לפי מאמרי העזרה למפתחים של Firebase כדי להוסיף את Firebase לאפליקציה.

שלב 2: מוסיפים את ספריית App Check ומפעילים את App Check

מידע על השימוש ב-Play Integrity, ספק האימות שמוגדר כברירת מחדל, זמין במאמר תחילת השימוש ב-App Check עם Play Integrity ב-Android.

  1. אם עדיין לא עשיתם זאת, שלבו את Places SDK באפליקציה.
  2. לאחר מכן, מאתחלים את App Check ואת לקוח Places.

    // Initialize App Check
    FirebaseApp.initializeApp(/* context= */ this);
    FirebaseAppCheck firebaseAppCheck = FirebaseAppCheck.getInstance();
    firebaseAppCheck.installAppCheckProviderFactory(
            PlayIntegrityAppCheckProviderFactory.getInstance());
      
    // Initialize Places SDK
    Places.initializeWithNewPlacesApiEnabled(context, API_KEY);
    PlacesClient client = Places.createClient(context);.

שלב 3: מוסיפים את ספק הטוקנים

אחרי שמפעילים את Places API, מפעילים את setPlacesAppCheckTokenProvider() כדי להגדיר את PlacesAppCheckTokenProvider.

Places.initializeWithNewPlacesApiEnabled(context, API_KEY);
Places.setPlacesAppCheckTokenProvider(new TokenProvider());
PlacesClient client = Places.createClient(context);.

דוגמה להטמעה של ממשק מאחזר הטוקנים:

  /** Sample client implementation of App Check token fetcher interface. */
  static class TokenProvider implements PlacesAppCheckTokenProvider {
    @Override
    public ListenableFuture<String> fetchAppCheckToken() {
      SettableFuture<String> future = SettableFuture.create();
      FirebaseAppCheck.getInstance()
          .getAppCheckToken(false)
          .addOnSuccessListener(
              appCheckToken -> {
                future.set(appCheckToken.getToken());
              })
          .addOnFailureListener(
              ex -> {
                future.setException(ex);
              });

      return future;
    }
  }

שלב 4: הפעלת ניפוי באגים (אופציונלי)

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

כדי להריץ את האפליקציה באמולטור או במכשיר בדיקה:

  • מוסיפים את ספריית App Check לקובץ build.gradle.
  • מגדירים את App Check כך שישתמש במפעל ספקי אימות לצורכי ניפוי באגים בגרסת build לניפוי באגים של האפליקציה.
  • מפעילים את האפליקציה, והיא תיצור אסימון ניפוי באגים מקומי. מוסיפים את הטוקן הזה למסוף Firebase.
  • מידע נוסף והוראות זמינים במסמכי התיעוד של App Check.

כדי להריץ את האפליקציה בסביבת CI:

  • יוצרים אסימון ניפוי באגים במסוף Firebase ומוסיפים אותו למאגר המפתחות המאובטח של מערכת ה-CI.
  • מוסיפים את ספריית App Check לקובץ build.gradle.
  • מגדירים את וריאציית ה-build של ה-CI כך שתשתמש באסימון הניפוי באגים.
  • עוטפים את הקוד במחלקות הבדיקה שצריכות אסימון של App Check באמצעות DebugAppCheckTestHelper.
  • מידע נוסף והוראות זמינים במסמכי התיעוד של App Check.

שלב 5: מעקב אחרי הבקשות לאפליקציות וקבלת החלטה לגבי אכיפה

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

מידע נוסף והוראות זמינים במסמכי התיעוד של Firebase App Check.