אם אפליקציית Android שלכם משתמשת באחד מממשקי ה-API בענן של Firebase ML, לפני שאתם משיקים את האפליקציה בסביבת הייצור, כדאי לבצע כמה פעולות נוספות כדי למנוע גישה לא מורשית ל-API.
באפליקציות הייצור, תדאגו שרק לקוחות מאומתים יוכלו לגשת לשירותי הענן. (שימו לב: רק במכשירים ללא הרשאות בסיס אפשר לבצע אימות באמצעות השיטה שמתוארת כאן).
לאחר מכן, תיצרו מפתח API לניפוי באגים בלבד, שתוכלו להשתמש בו בקלות במהלך הבדיקה והפיתוח.
1. רישום אפליקציות לייצור ב-Firebase
קודם כול, צריך לרשום את אפליקציות הייצור ב-Firebase.
מוודאים שיש לכם את חתימות ה-SHA-1 של האפליקציה. כאן מוסבר איך מאמתים את הלקוח.
עוברים אל Firebase ובוחרים בכרטיסייה Settings (הגדרות).
Project settings (הגדרות הפרויקט) במסוףגוללים למטה לכרטיס האפליקציות שלך ובוחרים את אפליקציית Android.
מוסיפים את חתימת ה-SHA-1 של האפליקציה לפרטי האפליקציה.
2. הגבלת ההיקף של מפתחות ה-API
בשלב הבא, מגדירים את מפתחות ה-API הקיימים כך שלא תהיה להם גישה ל-Cloud Vision API:
פותחים את הדף Credentials במסוף Google Cloud. כשמוצגת בקשה לעשות זאת, בוחרים את הפרויקט.
פותחים את תצוגת העריכה של כל מפתח API קיים ברשימה.
בקטע API restrictions, בוחרים באפשרות Restrict key, ואז מוסיפים לרשימה את כל ממשקי ה-API שרוצים שלמפתח ה-API תהיה גישה אליהם. חשוב לא לכלול את Cloud Vision API.
כשמגדירים הגבלות על ממשקי API במפתח API, מציינים במפורש לאילו ממשקי API יש למפתח גישה. כברירת מחדל, אם בקטע API restrictions נבחרה האפשרות Don't restrict key, אפשר להשתמש במפתח API כדי לגשת לכל API שמופעל בפרויקט.
מעכשיו, מפתחות ה-API הקיימים לא יאפשרו גישה לשירותי ML בענן, אבל כל מפתח ימשיך לפעול עבור כל ממשקי ה-API שהוספתם לרשימת ההגבלות על API שלו.
חשוב לזכור שאם תפעילו בעתיד ממשקי API נוספים, תצטרכו להוסיף אותם לרשימה הגבלות על API של מפתח ה-API הרלוונטי.
3. יצירה ושימוש במפתח API לניפוי באגים בלבד
לבסוף, יוצרים מפתח API חדש לשימוש בפיתוח בלבד. Firebase ML יכול להשתמש במפתח ה-API הזה כדי לגשת לשירותי Google Cloud בסביבות שבהן אימות האפליקציה לא אפשרי, למשל כשהיא פועלת באמולטורים.
יוצרים מפתח API חדש לשימוש בפיתוח:
פותחים את הדף Credentials במסוף Google Cloud. כשמוצגת בקשה לעשות זאת, בוחרים את הפרויקט.
לוחצים על Create credentials > API key ורושמים את מפתח ה-API החדש. המפתח הזה מאפשר גישת API מאפליקציות לא מאומתות, ולכן חשוב לשמור על סודיות המפתח.
כדי לוודא שמפתח ה-API החדש לניפוי באגים לא ידלוף עם האפליקציה שפורסמה, צריך לציין את מפתח ה-API לניפוי באגים בקובץ מניפסט של Android שמשמש רק לבניית גרסאות לניפוי באגים:
אם עדיין אין לכם קובץ מניפסט לניפוי באגים, יוצרים אותו על ידי לחיצה על File > New > Other > Android Manifest File (קובץ > חדש > אחר > קובץ מניפסט של Android) ובחירה באפשרות
debug
מתוך קבוצות מקורות היעד.במניפסט של ניפוי הבאגים, מוסיפים את ההצהרה הבאה:
<application> <meta-data android:name="com.firebase.ml.cloud.ApiKeyForDebug" android:value="
your-debug-api-key " /> </application>
באפליקציה, מגדירים את Firebase ML כך שישתמש בהתאמה של טביעת האצבע של האישור כדי לאמת את הלקוח בסביבת הייצור, ושישתמש במפתחות API – מפתח הניפוי באגים – רק בגרסאות ניפוי באגים:
val optionsBuilder = FirebaseVisionCloudImageLabelerOptions.Builder() if (!BuildConfig.DEBUG) { // Requires physical, non-rooted device: optionsBuilder.enforceCertFingerprintMatch() } // Set other options. For example: optionsBuilder.setConfidenceThreshold(0.8f) // ... // And lastly: val options = optionsBuilder.build() FirebaseVision.getInstance().getCloudImageLabeler(options).processImage(myImage)
FirebaseVisionCloudImageLabelerOptions.Builder optionsBuilder = new FirebaseVisionCloudImageLabelerOptions.Builder(); if (!BuildConfig.DEBUG) { // Requires physical, non-rooted device: optionsBuilder.enforceCertFingerprintMatch(); } // Set other options. For example: optionsBuilder.setConfidenceThreshold(0.8f); // ... // And lastly: FirebaseVisionCloudImageLabelerOptions options = optionsBuilder.build(); FirebaseVision.getInstance().getCloudImageLabeler(options).processImage(myImage);
השלבים הבאים
ברשימת המשימות להשקה מפורט מידע על הכנת האפליקציה להשקה כשמשתמשים בתכונות אחרות של Firebase.