Auf dieser Seite erfahren Sie, wie Sie App Check in einer Android-App mithilfe Ihres benutzerdefinierten App Check-Anbieters aktivieren. Wenn Sie App Check aktivieren, können nur Ihre App und keine anderen Apps auf die Firebase-Ressourcen Ihres Projekts zugreifen.
Wenn Sie App Check mit dem Standardanbieter von Play Integrity verwenden möchten, lesen Sie den Hilfeartikel App Check mit Play Integrity auf Android-Geräten aktivieren.
Hinweis
Fügen Sie Ihrem Android-Projekt Firebase hinzu, falls Sie das noch nicht getan haben.
Implementiere die serverseitige Logik deines benutzerdefinierten App Check-Anbieters.
1. App Check-Bibliothek zur App hinzufügen
Fügen Sie in der Gradle-Datei des Moduls (auf Anwendungsebene) (in der Regel<project>/<app-module>/build.gradle.kts
oder <project>/<app-module>/build.gradle
) die Abhängigkeit für die App Check-Bibliothek für Android hinzu. Wir empfehlen, die Firebase Android BoM zu verwenden, um die Versionierung der Bibliothek zu steuern.
dependencies { // Import the BoM for the Firebase platform implementation(platform("com.google.firebase:firebase-bom:33.7.0")) // Add the dependency for the App Check library // When using the BoM, you don't specify versions in Firebase library dependencies implementation("com.google.firebase:firebase-appcheck") }
Mit der Firebase Android BoM haben Sie immer eine kompatible Version der Firebase Android-Bibliotheken in Ihrer App.
Alternative: Firebase-Bibliotheksabhängigkeiten ohne BoM hinzufügen
Wenn Sie Firebase BoM nicht verwenden, müssen Sie jede Firebase-Bibliotheksversion in der entsprechenden Abhängigkeitszeile angeben.
Wenn Sie in Ihrer App mehrere Firebase-Bibliotheken verwenden, empfehlen wir Ihnen dringend, die Bibliotheksversionen mithilfe der BoM zu verwalten. So wird sichergestellt, dass alle Versionen kompatibel sind.
dependencies { // Add the dependency for the App Check library // When NOT using the BoM, you must specify versions in Firebase library dependencies implementation("com.google.firebase:firebase-appcheck:18.0.0") }
2. App Check-Schnittstellen implementieren
Zuerst müssen Sie Klassen erstellen, die die Schnittstellen AppCheckProvider
und AppCheckProviderFactory
implementieren.
Deine AppCheckProvider
-Klasse muss eine getToken()
-Methode haben, die alle Informationen sammelt, die dein benutzerdefinierter App Check-Anbieter als Authentifizierungsnachweis benötigt, und sie im Austausch gegen ein App Check-Token an deinen Token-Akquisitionsdienst sendet. Das App Check SDK kümmert sich um das Token-Caching. Daher solltest du in deiner Implementierung von getToken()
immer ein neues Token abrufen.
Kotlin+KTX
class YourCustomAppCheckToken( private val token: String, private val expiration: Long, ) : AppCheckToken() { override fun getToken(): String = token override fun getExpireTimeMillis(): Long = expiration } class YourCustomAppCheckProvider(firebaseApp: FirebaseApp) : AppCheckProvider { override fun getToken(): Task<AppCheckToken> { // Logic to exchange proof of authenticity for an App Check token and // expiration time. // ... // Refresh the token early to handle clock skew. val expMillis = expirationFromServer * 1000L - 60000L // Create AppCheckToken object. val appCheckToken: AppCheckToken = YourCustomAppCheckToken(tokenFromServer, expMillis) return Tasks.forResult(appCheckToken) } }
Java
public class YourCustomAppCheckToken extends AppCheckToken { private String token; private long expiration; YourCustomAppCheckToken(String token, long expiration) { this.token = token; this.expiration = expiration; } @NonNull @Override public String getToken() { return token; } @Override public long getExpireTimeMillis() { return expiration; } } public class YourCustomAppCheckProvider implements AppCheckProvider { public YourCustomAppCheckProvider(FirebaseApp firebaseApp) { // ... } @NonNull @Override public Task<AppCheckToken> getToken() { // Logic to exchange proof of authenticity for an App Check token and // expiration time. // ... // Refresh the token early to handle clock skew. long expMillis = expirationFromServer * 1000L - 60000L; // Create AppCheckToken object. AppCheckToken appCheckToken = new YourCustomAppCheckToken(tokenFromServer, expMillis); return Tasks.forResult(appCheckToken); } }
Implementieren Sie außerdem eine AppCheckProviderFactory
-Klasse, die Instanzen Ihrer AppCheckProvider
-Implementierung erstellt:
Kotlin+KTX
class YourCustomAppCheckProviderFactory : AppCheckProviderFactory { override fun create(firebaseApp: FirebaseApp): AppCheckProvider { // Create and return an AppCheckProvider object. return YourCustomAppCheckProvider(firebaseApp) } }
Java
public class YourCustomAppCheckProviderFactory implements AppCheckProviderFactory { @NonNull @Override public AppCheckProvider create(@NonNull FirebaseApp firebaseApp) { // Create and return an AppCheckProvider object. return new YourCustomAppCheckProvider(firebaseApp); } }
3. App Check initialisieren
Fügen Sie Ihrer App den folgenden Initialisierungscode hinzu, damit er ausgeführt wird, bevor Sie andere Firebase SDKs verwenden:
Kotlin+KTX
Firebase.initialize(context) Firebase.appCheck.installAppCheckProviderFactory( YourCustomAppCheckProviderFactory(), )
Java
FirebaseApp.initializeApp(/*context=*/ context); FirebaseAppCheck firebaseAppCheck = FirebaseAppCheck.getInstance(); firebaseAppCheck.installAppCheckProviderFactory( new YourCustomAppCheckProviderFactory());
Nächste Schritte
Sobald die App Check-Bibliothek in Ihrer App installiert ist, können Sie die aktualisierte App für Ihre Nutzer bereitstellen.
Die aktualisierte Client-App sendet dann mit jeder Anfrage an Firebase App Check-Token. Für Firebase-Produkte müssen die Token jedoch erst dann gültig sein, wenn Sie die Erzwingung im Bereich App Check der Firebase Console aktivieren.
Messwerte überwachen und Erzwingung aktivieren
Bevor Sie die Erzwingung aktivieren, sollten Sie jedoch prüfen, ob dies die Nutzung für Ihre bestehenden rechtmäßigen Nutzer nicht beeinträchtigt. Wenn Sie jedoch eine verdächtige Nutzung Ihrer App-Ressourcen feststellen, sollten Sie die Erzwingung früher aktivieren.
Bei der Entscheidung können Sie sich App Check Messwerte für die von Ihnen verwendeten Dienste ansehen:
- App Check-Anfragemesswerte für Data Connect, Vertex AI in Firebase, Realtime Database, Cloud Firestore, Cloud Storage, Authentication, Google Identity for iOS, Maps JavaScript API und Places API (neu) überwachen
- App Check-Anfragemesswerte für Cloud Functions überwachen
App Check-Erzwingung aktivieren
Wenn Sie wissen, wie sich App Check auf Ihre Nutzer auswirkt, und bereit sind, fortzufahren, können Sie die Durchsetzung von App Check aktivieren:
- Aktivieren Sie die Durchsetzung von App Check für Data Connect, Vertex AI in Firebase, Realtime Database, Cloud Firestore, Cloud Storage, Authentication, Google Identity für iOS, Maps JavaScript API und Places API (neu).
- Aktivieren Sie die App Check-Erzwingung für Cloud Functions.
App Check in Debug-Umgebungen verwenden
Wenn Sie Ihre App nach der Registrierung für App Check in einer Umgebung ausführen möchten, die von App Check normalerweise nicht als gültig eingestuft wird, z. B. in einem Emulator während der Entwicklung oder in einer CI-Umgebung (Continuous Integration), können Sie einen Debug-Build Ihrer App erstellen, der den App Check-Debuganbieter anstelle eines echten Attestierungsanbieters verwendet.
Weitere Informationen finden Sie unter App Check mit dem Debug-Anbieter auf Android-Geräten verwenden.