בדף הזה מוסבר איך להפעיל את App Check באפליקציה ל-Apple באמצעות ספק App Attest המובנה. כשמפעילים את App Check, רק האפליקציה יכולה לגשת למשאבי Firebase של הפרויקט. סקירה כללית של התכונה הזו.
App Check משתמש ב-App Attest כדי לוודא שהבקשות לשירותי Firebase מגיעות מהאפליקציה האותנטית שלכם. נכון לעכשיו, App Check לא משתמש ב-App Attest כדי לנתח את הסיכון להונאה.
אם אתם רוצים להשתמש ב-App Check עם ספק בהתאמה אישית, קראו את המאמר הטמעה של ספק App Check בהתאמה אישית.
1. הגדרת פרויקט Firebase
כדי להשתמש ב-App Attest, צריך את Xcode 12.5 ואילך.
אם עדיין לא עשיתם זאת, הוסיפו את Firebase לפרויקט Apple.
במסוף Firebase, נכנסים לקטע Security (אבטחה) > App Check.
בכרטיסייה Apps, רושמים את האפליקציות שרוצים להשתמש בהן ב-App Check עם ספק App Attest.
בדרך כלל צריך לרשום את כל האפליקציות בפרויקט, כי אחרי שמפעילים את האכיפה במוצר של Firebase, רק אפליקציות רשומות יכולות לגשת למשאבי הקצה העורפי של המוצר.
אופציונלי: מגדירים את אורך החיים (TTL) של האסימון.
בהגדרות הרישום של האפליקציה, מגדירים אורך חיים (TTL) בהתאמה אישית לטוקנים של App Check שהונפקו על ידי הספק. אפשר להגדיר את ה-TTL לכל ערך בין 30 דקות ל-7 ימים. כשמשנים את הערך הזה, חשוב לשים לב לשיקולים הבאים:
- אבטחה: ערכי TTL קצרים יותר מספקים אבטחה חזקה יותר, כי הם מצמצמים את חלון הזמן שבו תוקף יכול לנצל לרעה אסימון שדלף או יורט.
- ביצועים: ערכי TTL קצרים יותר פירושם שהאפליקציה תבצע אימות בתדירות גבוהה יותר. תהליך אימות האפליקציה מוסיף זמן אחזור לבקשות לאחזור מהרשת בכל פעם שהוא מתבצע, ולכן TTL קצר יכול להשפיע על ביצועי האפליקציה.
- מכסות ועלויות: ערכי TTL קצרים יותר ואימות חוזר בתדירות גבוהה יותר מנצלים את המכסה מהר יותר, ובשירותים בתשלום, עלולים לעלות יותר. מידע נוסף על מכסות ומגבלות
ברירת המחדל של TTL, שהיא שעה אחת, מתאימה לרוב האפליקציות. שימו לב שהספרייה App Check מרעננת טוקנים בערך בחצי ממשך ה-TTL.
2. להוסיף את ספריית App Check לאפליקציה
משתמשים ב-Swift Package Manager כדי להתקין ולנהל את יחסי התלות של Firebase.
ב-Xcode, כשהפרויקט של האפליקציה פתוח, עוברים אל File > Add Packages, מוסיפים את מאגר ה-SDK של Firebase לפלטפורמות של אפל (
https://github.com/firebase/firebase-ios-sdk) ובוחרים את הספרייה FirebaseAppCheck.ב-Xcode, מוסיפים לאפליקציה את היכולת App Attest.
בקובץ
.entitlementsשל הפרויקט, מגדירים את סביבת App Attest לערךproduction.
3. מפעילים את App Check
צריך להפעיל את App Check לפני שמשתמשים בערכות SDK אחרות של Firebase.
קודם כל, כותבים הטמעה של AppCheckProviderFactory. הפרטים הספציפיים של ההטמעה תלויים בתרחיש לדוגמה שלכם.
לדוגמה, אם יש לכם רק משתמשים ב-iOS 14 ואילך, אתם יכולים פשוט ליצור תמיד אובייקטים מסוג AppAttestProvider:
Swift
雅הערה: מוצר 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 בגרסאות קודמות:
Swift
雅הערה: מוצר 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 כך שישתמש בה:
Swift
雅הערה: מוצר 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 ב-Firebase AI Logic, ב-SQL Connect, ב-Realtime Database, ב-Cloud Firestore, ב-Cloud Storage, ב-Authentication, ב-Google Identity ל-iOS, ב-Maps JavaScript API וב-Places API (חדש).
- עוקבים אחרי מדדי הבקשות של App Check ב-Cloud Functions.
הפעלת האכיפה של App Check
אחרי שתבינו איך App Check ישפיע על המשתמשים שלכם ותהיו מוכנים להמשיך, תוכלו להפעיל את האכיפה של App Check:
- הפעלת אכיפה של App Check ב-Firebase AI Logic, SQL Connect, Realtime Database, Cloud Firestore, Cloud Storage, Authentication, Google Identity ל-iOS, Maps JavaScript API ו-Places API (חדש).
- מפעילים את האכיפה של App Check עבור Cloud Functions.
שימוש ב-App Check בסביבות ניפוי באגים
אם אחרי שרשמתם את האפליקציה ל-App Check, אתם רוצים להריץ אותה בסביבה שבדרך כלל לא תסווג על ידי App Check כתקינה, כמו סימולטור במהלך הפיתוח או מסביבת שילוב רציף (CI), אתם יכולים ליצור גרסת build לניפוי באגים של האפליקציה שמשתמשת בספק האימות לצורכי ניפוי באגים של App Check במקום בספק אימות אמיתי.
איך משתמשים ב-App Check עם ספק אימות לצורכי ניפוי באגים בפלטפורמות של אפל