הפעל בדיקת אפליקציות באמצעות יישום אפליקציה ב- iOS

דף זה מראה לך כיצד להפעיל את בדיקת האפליקציות באפליקציית iOS באמצעות הספק המובנה של App Attest. כאשר אתה מפעיל את בדיקת האפליקציות, אתה עוזר להבטיח שרק האפליקציה שלך יכולה לגשת למשאבי Firebase של הפרויקט שלך. כדי לעיין סקירה של תכונה זו.

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

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

1. הגדר את פרויקט Firebase שלך

  1. להוסיף Firebase לפרויקט iOS שלך אם לא עשה זאת.

  2. הירשם אפליקציות כך שישתמש בדיקת יישום עם ספק App מעיד על גדרות הפרויקט> בדיקת יישום קטע במסוף Firebase.

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

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

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

    ה- TTL ברירת המחדל של 1 שעה הוא סביר ביותר האפליקציות.

2. הוסף את ספריית צ'ק האפליקציות לאפליקציה שלך

  1. מוסיפים את התלות עבור בדיקת יישום כדי הפרויקט שלך Podfile :

    pod 'Firebase/AppCheck'

    או, לחילופין, אתה יכול להשתמש במנהל החבילות סוויפט במקום.

    ודא שאתה משתמש גם בגרסה העדכנית ביותר של כל SDK אחר של Firebase שאתה תלוי בו.

  2. הפעלת pod install ולפתוח את יצר .xcworkspace הקובץ.

  3. בשנת Xcode, להוסיף את היכולת להעיד App App שלך.

  4. בשינה של הפרויקט שלך .entitlements קובץ, לקבוע את הסביבה מעיד App כדי production .

3. אתחל את בדיקת האפליקציות

יהיה עליך לאתחל את בדיקת האפליקציות לפני שתשתמש ב- SDK אחר של Firebase.

ראשית, לכתוב יישום AppCheckProviderFactory . פרטי היישום שלך יהיו תלויים במקרה השימוש שלך.

לדוגמה, אם יש לך רק משתמשים במכשירי iOS 14 ומאוחר יותר, אתה יכול פשוט תמיד ליצור AppAttestProvider אובייקטים:

מָהִיר

class YourSimpleAppCheckProviderFactory: NSObject, AppCheckProviderFactory {
  func createProvider(with app: FirebaseApp) -> AppCheckProvider? {
    return AppAttestProvider(app: app)
  }
}

Objective-C

@interface YourSimpleAppCheckProviderFactory : NSObject <FIRAppCheckProviderFactory>
@end

@implementation YourSimpleAppCheckProviderFactory

- (nullable id<FIRAppCheckProvider>)createProviderWithApp:(nonnull FIRApp *)app {
  return [[FIRAppAttestProvider alloc] initWithApp:app];
}

@end

לחלופין, ניתן ליצור AppAttestProvider אובייקטים על iOS 14 ומאוחר יותר, וליפול חזרה DeviceCheckProvider על גרסאות קודמות:

מָהִיר

class YourAppCheckProviderFactory: NSObject, AppCheckProviderFactory {
  func createProvider(with app: FirebaseApp) -> AppCheckProvider? {
    if #available(iOS 14.0, *) {
      return AppAttestProvider(app: app)
    } else {
      return DeviceCheckProvider(app: app)
    }
  }
}

Objective-C

@interface YourAppCheckProviderFactory : NSObject <FIRAppCheckProviderFactory>
@end

@implementation YourAppCheckProviderFactory

- (nullable id<FIRAppCheckProvider>)createProviderWithApp:(nonnull FIRApp *)app {
  if (@available(iOS 14.0, *)) {
    return [[FIRAppAttestProvider alloc] initWithApp:app];
  } else {
    return [[FIRDeviceCheckProvider alloc] initWithApp:app];
  }
}

@end

לאחר יישמו AppCheckProviderFactory בכיתה, בדיקת יישום להגדיר להשתמש בו:

מָהִיר

let providerFactory = YourAppCheckProviderFactory()
AppCheck.setAppCheckProviderFactory(providerFactory)

FirebaseApp.configure()

Objective-C

YourAppCheckProviderFactory *providerFactory =
        [[YourAppCheckProviderFactory alloc] init];
[FIRAppCheck setAppCheckProviderFactory:providerFactory];

[FIRApp configure];

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

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

5. עקוב אחר מדדי בקשות

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

מסד נתונים בזמן אמת ואחסון ענן

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

להצגת מדדי בקשת בדיקת היישום עבור מוצר, לפתוח את גדרות פרויקט> בדיקת יישום קטע במסוף Firebase. לדוגמה:

צילום מסך של דף המדדים App Check

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

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

  • בקשות לקוח מיושנות הן אלה חסרים אסימון בדיקת יישום. הבקשות האלה עשויות להיות מגרסה ישנה יותר של ה- SDK של Firebase לפני שכלול האפליקציה באפליקציה.

  • בקשות ממוצא לא ידוע הם אלה חסרים אפליקציה בדוק האסימון, ואינם נראים כאילו הם באים Firebase SDK. אלה עשויים להיות מבקשות שהוגשו עם מפתחות API גנובים או מבקשות מזויפות שנעשו ללא ה- SDK של Firebase.

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

חלוקת הקטגוריות האלה לאפליקציה שלך אמורה להודיע ​​כאשר תחליט לאפשר אכיפה. להלן מספר קווים מנחים:

  • אם כמעט כל הבקשות האחרונות הגיעו מלקוחות מאומתים, שקול לאפשר לאכיפה להתחיל להגן על משאבי ה- backend שלך.

  • אם חלק ניכר מהבקשות האחרונות הגיעו מלקוחות מיושנים ככל הנראה, כדי למנוע הפרעה למשתמשים, שקול לחכות למשתמשים נוספים שיעדכנו את האפליקציה שלך לפני שתאפשר אכיפה. אכיפת בדיקת האפליקציות באפליקציה שפורסמה תשבור גרסאות אפליקציות קודמות שאינן משולבות ב- SD Check AppK.

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

פונקציות ענן

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

{
  "severity": "INFO",    // INFO, WARNING, or ERROR
  "logging.googleapis.com/labels": {"firebase-log-type": "callable-request-verification"},
  "jsonPayload": {
    "message": "Callable header verifications passed.",
    "verifications": {
      // ...
      "app": "MISSING",  // VALID, INVALID, or MISSING
    }
  }
}

אתה יכול לנתח את הערכים האלה במסוף Google Cloud ידי יצירת יומנים מבוסס מונה מטרי עם מסנן הערכים הבא:

resource.type="cloud_function"
resource.labels.function_name="YOUR_CLOUD_FUNCTION"
resource.labels.region="us-central1"
labels.firebase-log-type="callable-request-verification"

תווית מטרי באמצעות שדה jsonPayload.verifications.appCheck .

6. אפשר אכיפה

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

מסד נתונים בזמן אמת ואחסון ענן

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

  1. פתח את גדרות פרויקט> בדיקת יישום קטע במסוף Firebase.

  2. הרחב את תצוגת המדדים של המוצר שעבורו ברצונך לאפשר אכיפה.

  3. לחץ לאכוף לאשר את בחירתך.

שים לב שזה יכול להימשך עד 10 דקות לאחר שתאפשר את האכיפה כדי שייכנס לתוקף.

פונקציות ענן

ראה להפעיל את האפליקציה בדוק אכיפה עבור פונקציות ענן .

הצעדים הבאים

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

ראה השתמש App בדוק עם ספק debug על iOS .