Plattform auswählen: Android iOS JavaScript

API-Schlüssel mit App Check schützen

Firebase App Check schützt Aufrufe von Ihrer App an die Google Maps Platform, indem Traffic von anderen Quellen als legitimen Apps blockiert wird. Dazu wird nach einem Token von einem Attestierungsanbieter wie Play Integrity gesucht. Wenn Sie Ihre Apps in App Check einbinden, können Sie sich vor schädlichen Anfragen schützen und vermeiden, dass Ihnen unbefugte API-Aufrufe in Rechnung gestellt werden.

Ist App Check das Richtige für mich?

App Check wird in den meisten Fällen empfohlen. In den folgenden Fällen ist App Check jedoch nicht erforderlich oder wird nicht unterstützt:

  • Sie verwenden das ursprüngliche Places SDK. App Check wird nur für das neue Places SDK unterstützt.
  • Interne oder experimentelle Apps. Wenn Ihre App nicht öffentlich zugänglich ist, ist App Check nicht erforderlich.
  • Wenn Ihre App nur für die Server-zu-Server-Kommunikation verwendet wird, ist App Check nicht erforderlich. Wenn der Server, der mit GMP kommuniziert, jedoch von öffentlichen Clients (z. B. mobilen Apps) verwendet wird, sollten Sie App Check zum Schutz dieses Servers anstelle von GMP verwenden.
  • Die empfohlenen Attestierungsanbieter von App Check funktionieren nicht auf Geräten, die von Ihrem Attestierungsanbieter als manipuliert oder nicht vertrauenswürdig eingestuft werden. Wenn Sie solche Geräte unterstützen müssen, können Sie einen benutzerdefinierten Attestierungsdienst bereitstellen. Weitere Informationen

Übersicht über die Implementierungsschritte

Im Großen und Ganzen sind das die Schritte, die Sie ausführen müssen, um Ihre App in App Check einzubinden:

  1. Fügen Sie Ihrer Anwendung Firebase hinzu.
  2. App Check-Bibliothek hinzufügen und initialisieren
  3. Fügen Sie den Tokenanbieter hinzu.
  4. Aktivieren Sie das Debugging.
  5. App-Anfragen überwachen und über die Durchsetzung entscheiden

Nachdem Sie App Check eingebunden haben, können Sie sich in der Firebase Console Messwerte zum Backend-Traffic ansehen. Diese Messwerte liefern eine Aufschlüsselung der Anfragen danach, ob sie von einem gültigen App Check-Token begleitet werden. Weitere Informationen finden Sie in der Firebase App Check-Dokumentation.

Wenn Sie sicher sind, dass die meisten Anfragen von legitimen Quellen stammen und dass Nutzer auf die neueste Version Ihrer App aktualisiert haben, die Ihre App Check-Implementierung enthält, können Sie die Erzwingung aktivieren. Wenn die Erzwingung aktiviert ist, lehnt App Check alle Zugriffe ohne gültiges App Check-Token ab.

Überlegungen bei der Planung einer App Check-Integration

Bei der Planung der Integration sollten Sie Folgendes beachten:

  • Der von uns empfohlene Attestierungsanbieter Play Integrity hat ein tägliches Anruflimit für die Standard-API-Nutzungsstufe. Weitere Informationen zu Anruflimits finden Sie in der Entwicklerdokumentation zu Google Play Integrity auf der Seite Einrichtung.

    Sie können auch einen benutzerdefinierten Attestierungsanbieter verwenden. Dies ist jedoch ein fortgeschrittener Anwendungsfall. Weitere Informationen finden Sie unter Benutzerdefinierten App Check-Anbieter implementieren.

  • Bei Nutzern Ihrer App kann es beim Start zu einer gewissen Latenz kommen. Danach erfolgt die regelmäßige erneute Bestätigung jedoch im Hintergrund und Nutzer sollten keine Latenz mehr feststellen. Die genaue Latenz beim Start hängt vom ausgewählten Attestierungsanbieter ab.

    Die Gültigkeitsdauer (Time-to-Live oder TTL) des App Check-Tokens bestimmt, wie oft eine erneute Attestierung erforderlich ist. Diese Dauer kann in der Firebase Console konfiguriert werden. Die erneute Bestätigung erfolgt, wenn etwa die Hälfte der TTL abgelaufen ist. Weitere Informationen finden Sie in der Firebase-Dokumentation für Ihren Attestierungsanbieter.

App in App Check einbinden

Voraussetzungen und Anforderungen

  • Eine App mit dem Places SDK in Version 4.1 oder höher.
  • Der SHA-256-Fingerabdruck für Ihre App.
  • Der Paketname Ihrer App.
  • Sie müssen Inhaber der App in der Cloud Console sein.
  • Sie benötigen die Projekt-ID der App aus der Cloud Console.

Schritt 1: Firebase zu Ihrer App hinzufügen

Folgen Sie der Anleitung in der Firebase-Entwicklerdokumentation, um Firebase zu Ihrer App hinzuzufügen.

Schritt 2: App Check-Bibliothek hinzufügen und App Check initialisieren

Informationen zur Verwendung von Play Integrity, dem Standardanbieter für die Gerätebestätigung, finden Sie unter App Check mit Play Integrity für Android verwenden.

  1. Falls noch nicht geschehen, binden Sie das Places SDK in Ihre App ein.
  2. Initialisieren Sie als Nächstes App Check und den Places-Client.

    // Initialize App Check FirebaseApp.initializeApp(/* context= */ this); FirebaseAppCheck firebaseAppCheck = FirebaseAppCheck.getInstance(); firebaseAppCheck.installAppCheckProviderFactory(         PlayIntegrityAppCheckProviderFactory.getInstance());    // Initialize Places SDK Places.initializeWithNewPlacesApiEnabled(context, API_KEY); PlacesClient client = Places.createClient(context);.

Schritt 3: Tokenanbieter hinzufügen

Rufen Sie nach der Initialisierung der Places API setPlacesAppCheckTokenProvider() auf, um PlacesAppCheckTokenProvider festzulegen.

Places.initializeWithNewPlacesApiEnabled(context, API_KEY); Places.setPlacesAppCheckTokenProvider(new TokenProvider()); PlacesClient client = Places.createClient(context);.

Hier ist ein Beispiel für die Implementierung der Token-Fetcher-Schnittstelle:

  /** Sample client implementation of App Check token fetcher interface. */   static class TokenProvider implements PlacesAppCheckTokenProvider {     @Override     public ListenableFuture<String> fetchAppCheckToken() {       SettableFuture<String> future = SettableFuture.create();       FirebaseAppCheck.getInstance()           .getAppCheckToken(false)           .addOnSuccessListener(               appCheckToken -> {                 future.set(appCheckToken.getToken());               })           .addOnFailureListener(               ex -> {                 future.setException(ex);               });        return future;     }   }

Schritt 4: Debugging aktivieren (optional)

Wenn Sie Ihre App lokal entwickeln und testen oder in einer Continuous Integration-Umgebung (CI) ausführen möchten, können Sie einen Debug-Build Ihrer App erstellen, in dem ein Debug-Secret verwendet wird, um gültige App Check-Tokens zu erhalten. So können Sie vermeiden, dass Sie in Ihrem Debug-Build echte Attestierungsanbieter verwenden.

So führen Sie Ihre App in einem Emulator oder auf einem Testgerät aus:

  • Fügen Sie die App Check-Bibliothek Ihrer build.gradle-Datei hinzu.
  • Konfigurieren Sie App Check so, dass in Ihrem Debug-Build die Debug-Anbieter-Factory verwendet wird.
  • Starten Sie die App. Dadurch wird ein lokales Fehlerbehebungstoken erstellt. Fügen Sie dieses Token in der Firebase Console hinzu.
  • Weitere Informationen und Anleitungen finden Sie in der App Check-Dokumentation.

So führen Sie Ihre App in einer CI-Umgebung aus:

  • Erstellen Sie ein Debug-Token in der Firebase Console und fügen Sie es dem sicheren Schlüsselspeicher Ihres CI-Systems hinzu.
  • Fügen Sie die App Check-Bibliothek Ihrer build.gradle-Datei hinzu.
  • Konfigurieren Sie Ihre CI-Build-Variante für die Verwendung des Debug-Tokens.
  • Umschließen Sie Code in Ihren Testklassen, für den ein App Check-Token erforderlich ist, mit DebugAppCheckTestHelper.
  • Weitere Informationen und Anleitungen finden Sie in der App Check-Dokumentation.

Schritt 5: App-Anfragen überwachen und über die Durchsetzung entscheiden

Bevor Sie mit der Erzwingung beginnen, sollten Sie sicherstellen, dass Sie keine legitimen Nutzer Ihrer App stören. Rufen Sie dazu den Bildschirm mit den App Check-Messwerten auf, um zu sehen, welcher Prozentsatz des Traffics Ihrer App verifiziert, veraltet oder unrechtmäßig ist. Sobald der Großteil Ihrer Zugriffe bestätigt wurde, können Sie die Erzwingung aktivieren.

Weitere Informationen und Anleitungen finden Sie in der Firebase App Check-Dokumentation.