בדף הזה מוסבר איך להפעיל את App Check באפליקציה ל-Apple באמצעות ספק App Check בהתאמה אישית. כשמפעילים את App Check, רק האפליקציה שלכם יכולה לגשת למשאבי Firebase של הפרויקט.
אם אתם רוצים להשתמש ב-App Check עם הספקים המובנים, עיינו במסמכי התיעוד של App Check עם App Attest ושל App Check עם DeviceCheck.
לפני שמתחילים
אם עדיין לא עשיתם זאת, הוסיפו את Firebase לפרויקט Apple.
1. להוסיף את ספריית App Check לאפליקציה
משתמשים ב-Swift Package Manager כדי להתקין ולנהל את יחסי התלות של Firebase.
ב-Xcode, כשהפרויקט של האפליקציה פתוח, עוברים אל File > Add Packages, מוסיפים את מאגר ה-SDK של Firebase לפלטפורמות של אפל (
https://github.com/firebase/firebase-ios-sdk) ובוחרים את הספרייה FirebaseAppCheck.
2. הטמעת הפרוטוקולים של App Check
קודם כול, צריך ליצור מחלקות שמטמיעות את הפרוטוקולים AppCheckProvider ו-AppCheckProviderFactory.
במחלקה AppCheckProvider צריכה להיות שיטה getToken(completion:), שאוספת את המידע שספק ה-App Check המותאם אישית דורש כהוכחה לאותנטיות, ושולחת אותו לשירות רכישת האסימונים בתמורה לאסימון App Check. ה-SDK של App Check מטפל במטמון של האסימונים, לכן תמיד צריך לקבל אסימון חדש בהטמעה של getToken(completion:).
Swift
class YourCustomAppCheckProvider: NSObject, AppCheckProvider { var app: FirebaseApp init(withFirebaseApp app: FirebaseApp) { self.app = app super.init() } func getToken() async throws -> AppCheckToken { let getTokenTask = Task { () -> AppCheckToken in // ... // Create AppCheckToken object. let exp = Date(timeIntervalSince1970: expirationFromServer) let token = AppCheckToken( token: tokenFromServer, expirationDate: exp ) if Date() > exp { throw NSError(domain: "ExampleError", code: 1, userInfo: nil) } return token } return try await getTokenTask.value } }
Objective-C
@interface YourCustomAppCheckProvider : NSObject <FIRAppCheckProvider> @property FIRApp *app; - (id)initWithApp:(FIRApp *)app; @end @implementation YourCustomAppCheckProvider - (id)initWithApp:app { self = [super init]; if (self) { self.app = app; } return self; } - (void)getTokenWithCompletion:(nonnull void (^)(FIRAppCheckToken * _Nullable, NSError * _Nullable))handler { dispatch_async(dispatch_get_main_queue(), ^{ // Logic to exchange proof of authenticity for an App Check token. // ... // Create FIRAppCheckToken object. NSTimeInterval exp = expirationFromServer; FIRAppCheckToken *token = [[FIRAppCheckToken alloc] initWithToken:tokenFromServer expirationDate:[NSDate dateWithTimeIntervalSince1970:exp]]; // Pass the token or error to the completion handler. handler(token, nil); }); } @end
בנוסף, צריך להטמיע מחלקת AppCheckProviderFactory שיוצרת מופעים של הטמעת AppCheckProvider:
Swift
class YourCustomAppCheckProviderFactory: NSObject, AppCheckProviderFactory { func createProvider(with app: FirebaseApp) -> AppCheckProvider? { return YourCustomAppCheckProvider(withFirebaseApp: app) } }
Objective-C
@interface YourCustomAppCheckProviderFactory : NSObject <FIRAppCheckProviderFactory> @end @implementation YourCustomAppCheckProviderFactory - (nullable id<FIRAppCheckProvider>)createProviderWithApp:(FIRApp *)app { return [[YourCustomAppCheckProvider alloc] initWithApp:app]; } @end
3. מפעילים את App Check
מוסיפים את קוד האתחול הבא למקצה האפליקציה או למאתחל האפליקציה:
Swift
let providerFactory = YourAppCheckProviderFactory() AppCheck.setAppCheckProviderFactory(providerFactory) FirebaseApp.configure()
Objective-C
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 עם ספק אימות לצורכי ניפוי באגים בפלטפורמות של אפל