Catch up on everything announced at Firebase Summit, and learn how Firebase can help you accelerate app development and run your app with confidence. Learn More

הגן על אישורי הענן של אפליקציית Firebase ML Android שלך

קל לארגן דפים בעזרת אוספים אפשר לשמור ולסווג תוכן על סמך ההעדפות שלך.

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

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

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

1. רשום את אפליקציות הייצור שלך ב-Firebase

ראשית, רשום את אפליקציות הייצור שלך ב-Firebase.

  1. ודא שיש לך את חתימות SHA-1 של האפליקציה שלך. עיין באימות הלקוח שלך כדי ללמוד כיצד.

  2. עבור הפרויקט שלך במסוף Firebase ולאחר מכן בחר בכרטיסייה הגדרות .

  3. גלול מטה אל כרטיס האפליקציות שלך , ולאחר מכן בחר את אפליקציית Android שלך.

  4. הוסף את חתימת ה-SHA-1 של האפליקציה שלך לפרטי האפליקציה שלך.

2. הגבל את היקף מפתחות ה-API שלך

לאחר מכן, הגדר את מפתחות ה-API הקיימים שלך כדי לא לאפשר גישה ל-Cloud Vision API:

  1. פתח את דף האישורים של Google Cloud Console. כאשר תתבקש, בחר את הפרויקט שלך.

  2. עבור כל מפתח API קיים ברשימה, פתח את תצוגת העריכה.

  3. במקטע הגבלות API , בחר הגבל מפתח ולאחר מכן הוסף לרשימה את כל ממשקי ה-API שאליהם תרצה שתהיה למפתח ה-API גישה. הקפד לא לכלול את Cloud Vision API.

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

כעת, מפתחות ה-API הקיימים שלך לא יעניקו גישה לשירותי ML בענן, אך כל מפתח ימשיך לעבוד עבור כל ממשקי ה-API שהוספת לרשימת מגבלות ה-API שלו.

שים לב שאם תפעיל APIs נוספים בעתיד, עליך להוסיף אותם לרשימת מגבלות ה-API עבור מפתח ה-API הרלוונטי.

3. צור והשתמש במפתח API לניפוי באגים בלבד

לבסוף, צור מפתח API חדש שישמש רק לפיתוח. Firebase ML יכול להשתמש במפתח API זה כדי לגשת לשירותי Google Cloud בסביבות שבהן אימות אפליקציה אינו אפשרי, כגון בעת ​​הפעלה על אמולטורים.

  1. צור מפתח API חדש שישמש לפיתוח:

    1. פתח את דף האישורים של Google Cloud Console. כאשר תתבקש, בחר את הפרויקט שלך.

    2. לחץ על צור אישורים > מפתח API ושם לב למפתח ה-API החדש. מפתח זה מאפשר גישה ל-API מיישומים לא מאומתים, אז שמור על מפתח זה בסודיות .

  2. כדי להבטיח שמפתח ה-API החדש לאיפוי באגים לא ידלוף עם האפליקציה שפורסמה, ציין את מפתח ה-API לניפוי באגים בקובץ מניפסט של Android המשמש רק לבניית באגים:

    1. אם עדיין אין לך מניפסט ניפוי באגים, צור אחד על ידי לחיצה על קובץ > חדש > אחר > קובץ מניפסט אנדרואיד ובחירה debug מתוך ערכות מקור היעד.

    2. במניפסט ניפוי הבאגים, הוסף את ההצהרה הבאה:

      <application>
      <meta-data
          android:name="com.firebase.ml.cloud.ApiKeyForDebug"
          android:value="your-debug-api-key" />
      </application>
      
  3. באפליקציה שלך, הגדר את Firebase ML להשתמש בהתאמת טביעת אצבע של אישור כדי לאמת את הלקוח שלך בייצור ולהשתמש במפתחות API - מפתח ניפוי הבאגים - רק בבניית ניפוי באגים:

    Java

    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);

    Kotlin+KTX

    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)

הצעדים הבאים

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