בדף הזה מוסבר איך להפעיל את App Check באפליקציה ל-Android באמצעות הספק המובנה של SafetyNet. הפעלת App Check עוזרת לוודא שרק לאפליקציה שלכם תהיה גישה למשאבי Firebase של הפרויקט. סקירה כללית של התכונה
אם אתם רוצים להשתמש ב-App Check עם ספק מותאם אישית משלכם, תוכלו לעיין במאמר הטמעת ספק App Check בהתאמה אישית.
1. הגדרת פרויקט Firebase
מוסיפים את Firebase לפרויקט Android, אם עדיין לא עשיתם זאת.
רושמים את האפליקציות לשימוש ב-App Check אצל ספק SafetyNet בקטע App Check במסוף Firebase. תצטרכו לספק את טביעת האצבע מסוג SHA-256 של אישור החתימה של האפליקציה.
בדרך כלל צריך לרשום את כל האפליקציות בפרויקט, כי אחרי שמפעילים אכיפה למוצר של Firebase, רק אפליקציות רשומות יכולות לגשת למשאבי הקצה העורפי של המוצר.
אופציונלי: בהגדרות של רישום האפליקציה, מגדירים אורך חיים (TTL) בהתאמה אישית לאסימוני App Check שהונפקו על ידי הספק. אפשר להגדיר את TTL לכל ערך בין 30 דקות ל-7 ימים. כשמשנים את הערך הזה, חשוב לזכור את הפשרות הבאות:
- אבטחה: זמן חיים קצר יותר של אסימון מספק אבטחה חזקה יותר, כי הוא מצמצם את החלון שבו תוקף יכול לנצל לרעה אסימון שדלף או נתפס.
- ביצועים: ככל שזמן החיים של התגים קצר יותר, כך האפליקציה תבצע אימות בתדירות גבוהה יותר. תהליך האימות של האפליקציה מוסיף זמן אחזור לבקשות הרשת בכל פעם שהוא מתבצע, ולכן TTL קצר יכול להשפיע על הביצועים של האפליקציה.
- מכסה ועלות: TTL קצר יותר ואימות חוזר תכופים מורידים את המכסה מהר יותר, ובשירותים בתשלום יכול להיות שהעלות תהיה גבוהה יותר. מידע נוסף זמין במאמר מכסות ומגבלות.
ברירת המחדל של TTL היא שעה אחת, והיא סבירה לרוב האפליקציות. חשוב לזכור שהספרייה App Check מרעננת את האסימונים בערך בחצי משך ה-TTL.
2. הוספת הספרייה App Check לאפליקציה
בקובץ Gradle של המודול (ברמת האפליקציה) (בדרך כלל app/build.gradle
), מגדירים את התלות בספרייה App Check ל-Android:
dependencies {
implementation 'com.google.firebase:firebase-appcheck-safetynet:16.1.2'
}
3. אתחול של App Check
מוסיפים לאפליקציה את קוד האתחול הבא כדי שהוא ירוץ לפני שמשתמשים ב-SDK אחר של Firebase:
Kotlin+KTX
Firebase.initialize(context = this)
Firebase.appCheck.installAppCheckProviderFactory(
SafetyNetAppCheckProviderFactory.getInstance()
)
Java
FirebaseApp.initializeApp(/*context=*/ this);
FirebaseAppCheck firebaseAppCheck = FirebaseAppCheck.getInstance();
firebaseAppCheck.installAppCheckProviderFactory(
SafetyNetAppCheckProviderFactory.getInstance());
השלבים הבאים
אחרי שספריית App Check מותקנת באפליקציה, אפשר להתחיל להפיץ את האפליקציה המעודכנת למשתמשים.
אפליקציית הלקוח המעודכנת תתחיל לשלוח אסימוני App Check יחד עם כל בקשה שהיא שולחת ל-Firebase, אבל מוצרי Firebase לא ידרשו שהאסימונים יהיו תקפים עד שתפעילו את האכיפה בקטע App Check במסוף Firebase.
מעקב אחרי המדדים והפעלת האכיפה
עם זאת, לפני שמפעילים את האכיפה, חשוב לוודא שהפעולה הזו לא תפריע למשתמשים החוקיים הקיימים. לעומת זאת, אם אתם רואים שימוש חשוד במשאבי האפליקציה, מומלץ להפעיל את האכיפה מוקדם יותר.
כדי לעזור לכם לקבל את ההחלטה הזו, תוכלו לעיין במדדים של App Check בשירותים שבהם אתם משתמשים:
- מעקב אחרי מדדי הבקשות של App Check עבור Realtime Database, Cloud Firestore, Cloud Storage, Authentication (בטא) ו-Vertex AI in Firebase.
- מעקב אחר מדדי הבקשות של App Check עבור Cloud Functions.
הפעלת אכיפה של App Check
אחרי שתבחנו את ההשפעה של App Check על המשתמשים ותהיה לכם כוונה להמשיך, תוכלו להפעיל את האכיפה של App Check:
- מפעילים את האכיפה של App Check עבור Realtime Database, Cloud Firestore, Cloud Storage, Authentication (בטא) ו-Vertex AI in Firebase.
- מפעילים את אכיפת App Check עבור Cloud Functions.
שימוש ב-App Check בסביבות ניפוי באגים
אם אחרי שרושמים את האפליקציה ל-App Check רוצים להריץ אותה בסביבה שבדרך כלל App Check לא מסווגת כתקינה, כמו אמולטור במהלך הפיתוח או מסביבת אינטגרציה רציפה (CI), אפשר ליצור גרסה לניפוי באגים של האפליקציה שמשתמשת בספק ניפוי הבאגים של App Check במקום בספק אימות אמיתי.
שימוש ב-App Check עם ספק ניפוי הבאגים ב-Android