Catch up on everthing we announced at this year's Firebase Summit. Learn more

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

אם אפליקציית Android שלך משתמשת באחד מממשקי ה- API בענן של 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. כשתתבקש, בחר את הפרויקט שלך.

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

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

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

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

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

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

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

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

    1. פתח את האישורים בדף של קונסולת הענן של Google. כשתתבקש, בחר את הפרויקט שלך.

    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 - מפתח באגים - רק בבניית באגים:

    ג'אווה

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

    קוטלין+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)

הצעדים הבאים

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