Google is committed to advancing racial equity for Black communities. See how.
Questa pagina è stata tradotta dall'API Cloud Translation.
Switch to English

Proteggi le credenziali cloud della tua app Firebase ML per Android

Se la tua app Android utilizza una delle API cloud di Firebase ML, prima di avviare la tua app in produzione, dovresti eseguire alcuni passaggi aggiuntivi per impedire l'accesso non autorizzato all'API.

Per le tue app di produzione, assicurerai che solo i client autenticati possano accedere ai servizi cloud. (Tieni presente che solo i dispositivi senza root possono eseguire l'autenticazione utilizzando il metodo descritto.)

Quindi, creerai una chiave API di solo debug che puoi utilizzare per comodità durante il test e lo sviluppo.

1. Registra le tue app di produzione con Firebase

Innanzitutto, registra le tue app di produzione con Firebase.

Il modo più veloce per farlo è collegare il tuo progetto Firebase al tuo progetto Google Play. Puoi farlo dalla sezione Integrazioni delle impostazioni del tuo progetto nella console Firebase.

Quando colleghi i tuoi progetti, le firme SHA-1 delle tue app di produzione vengono importate nel tuo progetto Firebase, che puoi confermare nella pagina Impostazioni . Tieni presente che il collegamento dei tuoi progetti Firebase e Google Play rende anche altri dati di Google Play, comprese le statistiche sugli arresti anomali e sulle entrate, accessibili a Firebase e i dati Firebase, inclusi gli analytics, accessibili a Google Play.

In alternativa, se non desideri condividere dati tra i tuoi progetti Firebase e Google Play, puoi specificare tu stesso le firme SHA-1 delle tue app nella pagina Impostazioni. Vedere Autenticazione del client per informazioni su come ottenere le firme SHA-1 delle app.

2. Limita l'ambito delle tue chiavi API

Successivamente, configura le tue chiavi API esistenti per non consentire l'accesso all'API Cloud Vision:

  1. Apri la pagina Credenziali della console Cloud.

  2. Per ogni chiave API nell'elenco, apri la visualizzazione di modifica e, nella sezione Restrizioni chiave, aggiungi all'elenco tutte le API disponibili tranne l'API Cloud Vision.

3. Creare e utilizzare una chiave API di solo debug

Infine, crea una nuova chiave API da utilizzare solo per lo sviluppo. Firebase ML può utilizzare questa chiave API per accedere ai servizi cloud in ambienti in cui l'autenticazione delle app non è possibile, ad esempio durante l'esecuzione su emulatori.

  1. Crea una nuova chiave API da utilizzare per lo sviluppo:

    1. Apri la pagina Credenziali della console Cloud.
    2. Fai clic su Crea credenziali> Chiave API e prendi nota della nuova chiave API. Questa chiave consente l'accesso API da app non autenticate, quindi mantienila riservata .
  2. Per assicurarti che la nuova chiave API di debug non venga trapelata con l'app rilasciata, specifica la chiave API di debug in un file manifest Android utilizzato solo per build di debug:

    1. Se non si dispone già di un manifest di debug, crearne uno facendo clic su File> Nuovo> Altro> File manifest di Android e selezionando debug dai set di origine di destinazione.

    2. Nel manifesto di debug, aggiungi la seguente dichiarazione:

      <application>
      <meta-data
          android:name="com.firebase.ml.cloud.ApiKeyForDebug"
          android:value="your-debug-api-key" />
      </application>
      
  3. Nella tua app, configura Firebase ML per utilizzare la corrispondenza dell'impronta digitale del certificato per autenticare il tuo client in produzione e per utilizzare le chiavi API, la chiave di debug, solo nelle build di debug:

    Giava

    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)

Prossimi passi

Consulta l' elenco di controllo per l' avvio per informazioni sulla preparazione dell'avvio della tua app quando utilizzi altre funzionalità di Firebase.