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

Abilita App Check con SafetyNet su Android

Questa pagina mostra come abilitare App Check in un'app Android, utilizzando il provider SafetyNet integrato. Quando abiliti App Check, contribuisci a garantire che solo la tua app possa accedere alle risorse Firebase del tuo progetto. Vedere una panoramica di questa funzione.

Se si desidera utilizzare App Verificare con il proprio provider personalizzato, vedere Implementare un App Controllare provider personalizzato .

1. Configura il tuo progetto Firebase

  1. Aggiungere Firebase al progetto Android se non l'avete già fatto.

  2. Registrati tue app da usare App Verificare con il fornitore SafetyNet nelle Impostazioni progetto> App Controllare la sezione della console Firebase. Sarà necessario fornire lo SHA-256 impronte digitali di firma del certificato della tua app.

    Di solito devi registrare tutte le app del tuo progetto, perché una volta abilitata l'applicazione per un prodotto Firebase, solo le app registrate potranno accedere alle risorse di backend del prodotto.

  3. Opzionale: Nelle impostazioni di registrazione app, impostare una consuetudine time-to-live (TTL) per App Controllare gettoni emessi dal provider. Puoi impostare il TTL su qualsiasi valore compreso tra 30 minuti e 7 giorni. Quando si modifica questo valore, prestare attenzione ai seguenti compromessi:

    • Sicurezza: TTL più brevi forniscono una sicurezza maggiore, perché riduce la finestra in cui un token trapelato o intercettato può essere abusato da un utente malintenzionato.
    • Prestazioni: TTL più brevi significano che la tua app eseguirà l'attestazione più frequentemente. Poiché il processo di attestazione dell'app aggiunge latenza alle richieste di rete ogni volta che viene eseguito, un breve TTL può influire sulle prestazioni della tua app.
    • Quota e costo: TTL più brevi e riattestazioni frequenti riducono la quota più velocemente e, per i servizi a pagamento, potenzialmente costano di più. Vedere quote e limiti .

    Il TTL predefinito di 1 ora è ragionevole per la maggior parte delle applicazioni. Si noti che la libreria App Check aggiorna i token a circa la metà della durata TTL.

2. Aggiungi la libreria App Check alla tua app

Nel modulo (a livello di app) File Gradle (di solito app/build.gradle ), dichiarare la dipendenza per l'App di controllo Libreria Android:

Giava

dependencies {
    implementation 'com.google.firebase:firebase-appcheck-safetynet:16.0.0-beta04'
}

Kotlin+KTX

dependencies {
    implementation 'com.google.firebase:firebase-appcheck-safetynet:16.0.0-beta04'
}

3. Inizializza il controllo dell'app

Aggiungi il seguente codice di inizializzazione alla tua app in modo che venga eseguita prima di utilizzare qualsiasi altro SDK Firebase:

Giava

FirebaseApp.initializeApp(/*context=*/ this);
FirebaseAppCheck firebaseAppCheck = FirebaseAppCheck.getInstance();
firebaseAppCheck.installAppCheckProviderFactory(
        SafetyNetAppCheckProviderFactory.getInstance());

Kotlin+KTX

FirebaseApp.initializeApp(/*context=*/this)
val firebaseAppCheck = FirebaseAppCheck.getInstance()
firebaseAppCheck.installAppCheckProviderFactory(
    SafetyNetAppCheckProviderFactory.getInstance()
)

Una volta installata la libreria App Check nella tua app, inizia a distribuire l'app aggiornata ai tuoi utenti.

L'app client aggiornata inizierà a inviare token App Check insieme a ogni richiesta effettuata a Firebase, ma i prodotti Firebase non richiederanno che i token siano validi finché non abiliterai l'applicazione nella sezione App Check della console Firebase. Vedere le due sezioni successive per i dettagli.

4. Monitora le metriche delle richieste

Ora che la tua app aggiornata è nelle mani degli utenti, puoi abilitare l'applicazione di App Check per i prodotti Firebase che utilizzi. Prima di farlo, tuttavia, dovresti assicurarti che ciò non interrompa i tuoi utenti legittimi esistenti.

Database in tempo reale, Cloud Firestore e Cloud Storage

Uno strumento importante che puoi utilizzare per prendere questa decisione per Realtime Database, Cloud Firestore e Cloud Storage è la schermata delle metriche di richiesta di App Check.

Per visualizzare l'applicazione Verificare richiesta metriche per un prodotto, aprire l'Impostazioni progetto> App Controllare la sezione della console Firebase. Per esempio:

Screenshot della pagina delle metriche di App Check

Le metriche di richiesta per ogni prodotto sono suddivise in quattro categorie:

  • Richieste verificati sono quelli che hanno un App valida Controllare token. Dopo aver abilitato l'applicazione di App Check, solo le richieste in questa categoria avranno esito positivo.

  • Le richieste dei client obsoleti sono quelli che mancano un App Controllare token. Queste richieste potrebbero provenire da una versione precedente dell'SDK Firebase prima che App Check fosse incluso nell'app.

  • Le richieste di origine sconosciuta sono quelli che mancano un App Controllare token e non sembrano provengono dalla Firebase SDK. Questi potrebbero provenire da richieste effettuate con chiavi API rubate o richieste contraffatte effettuate senza l'SDK Firebase.

  • Richieste non valide sono quelle che hanno un'App non valida Controllare token, che potrebbe essere da un client non autentica di tentare di impersonare la vostra applicazione, o da ambienti emulati.

La distribuzione di queste categorie per la tua app dovrebbe informare quando decidi di abilitare l'applicazione. Ecco alcune linee guida:

  • Se quasi tutte le richieste recenti provengono da client verificati, considera di abilitare l'applicazione per iniziare a proteggere le tue risorse di backend.

  • Se una parte significativa delle richieste recenti proviene da client probabilmente obsoleti, per evitare di disturbare gli utenti, valuta di attendere che più utenti aggiornino la tua app prima di abilitare l'applicazione. L'applicazione di App Check su un'app rilasciata interromperà le versioni precedenti dell'app che non sono integrate con App Check SDK.

  • Se la tua app non è stata ancora avviata, dovresti abilitare immediatamente l'applicazione di App Check, poiché non ci sono client obsoleti in uso.

Funzioni cloud

Per Cloud Functions, puoi ottenere le metriche di App Check esaminando i log delle tue funzioni. Ogni invocazione di una funzione richiamabile emette una voce di log strutturata come il seguente esempio:

{
  "severity": "INFO",    // INFO, WARNING, or ERROR
  "logging.googleapis.com/labels": {"firebase-log-type": "callable-request-verification"},
  "jsonPayload": {
    "message": "Callable header verifications passed.",
    "verifications": {
      // ...
      "app": "MISSING",  // VALID, INVALID, or MISSING
    }
  }
}

È possibile analizzare queste metriche nel Cloud Console di Google per la creazione di un log-based contatore metrica con il seguente filtro metrica:

resource.type="cloud_function"
resource.labels.function_name="YOUR_CLOUD_FUNCTION"
resource.labels.region="us-central1"
labels.firebase-log-type="callable-request-verification"

Etichettare la metrica utilizzando il campo jsonPayload.verifications.appCheck .

5. Abilita l'applicazione

Per abilitare l'applicazione, seguire le istruzioni per ciascun prodotto, di seguito. Una volta abilitata l'applicazione per un prodotto, tutte le richieste non verificate a quel prodotto verranno respinte.

Database in tempo reale, Cloud Firestore e Cloud Storage

Per abilitare l'applicazione per Realtime Database, Cloud Firestore (iOS e Android) e Cloud Storage:

  1. Aprire il Controllo Impostazioni progetto> App sezione della console Firebase.

  2. Espandi la visualizzazione delle metriche del prodotto per il quale desideri abilitare l'applicazione.

  3. Fare clic su Applica e confermare la scelta.

Tieni presente che possono essere necessari fino a 10 minuti dopo l'attivazione dell'applicazione affinché abbia effetto.

Funzioni cloud

Vedere Abilita App Verificare l'applicazione per le funzioni cloud .

Prossimi passi

Se, dopo aver registrato la tua app per App Check, desideri eseguire la tua app in un ambiente che App Check normalmente non classificherebbe come valido, ad esempio un emulatore durante lo sviluppo, o da un ambiente di integrazione continua (CI), puoi crea una build di debug della tua app che usi il provider di debug di App Check invece di un vero provider di attestazione.

Vedere Utilizzare App Verificare con il provider di debug su Android .