התחל להשתמש ב-App Check עם App Attest בפלטפורמות של Apple

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

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

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

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

  1. תזדקק ל-Xcode 12.5+ כדי להשתמש ב-App Attest.

  2. הוסף את Firebase לפרויקט Apple שלך ​​אם עדיין לא עשית זאת.

  3. רשום את האפליקציות שלך כדי להשתמש ב-App Check עם ספק App Attest בקטע App Check של מסוף Firebase.

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

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

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

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

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

  1. הוסף את התלות עבור App Check ל- Podfile של הפרויקט שלך:

    pod 'FirebaseAppCheck'

    לחלופין, אתה יכול להשתמש ב- Swift Package Manager במקום זאת.

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

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

  3. ב-Xcode, הוסף את יכולת App Attest לאפליקציה שלך.

  4. בקובץ .entitlements של הפרויקט שלך, הגדר את סביבת App Attest production .

3. אתחול App Check

יהיה עליך לאתחל את App Check לפני שתשתמש בכל ערכות Firebase אחרות.

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

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

מָהִיר

הערה: מוצר Firebase זה אינו זמין ביעדי watchOS.

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

Objective-C

הערה: מוצר Firebase זה אינו זמין ביעדי watchOS.

@interface YourSimpleAppCheckProviderFactory : NSObject <FIRAppCheckProviderFactory>
@end

@implementation YourSimpleAppCheckProviderFactory

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

@end

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

מָהִיר

הערה: מוצר Firebase זה אינו זמין ביעדי watchOS.

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

הערה: מוצר Firebase זה אינו זמין ביעדי watchOS.

@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 , הגדר את App Check להשתמש בה:

מָהִיר

הערה: מוצר Firebase זה אינו זמין ביעדי watchOS.

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

FirebaseApp.configure()

Objective-C

הערה: מוצר Firebase זה אינו זמין ביעדי watchOS.

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

[FIRApp configure];

הצעדים הבאים

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

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

עקוב אחר מדדים ואפשר אכיפה

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

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

הפעל אכיפת בדיקת אפליקציות

כשתבין כיצד בדיקת אפליקציות תשפיע על המשתמשים שלך ואתה מוכן להמשיך, תוכל להפעיל את אכיפת בדיקת האפליקציה:

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

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

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