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 blockiert wird, der nicht von legitimen Apps stammt. 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, damit Ihnen keine unbefugten API-Aufrufe in Rechnung gestellt werden.

Ist App Check das Richtige für mich?

App Check wird in den meisten Fällen empfohlen, ist aber in den folgenden Fällen nicht erforderlich oder wird nicht unterstützt:

  • Sie verwenden das ursprüngliche Places SDK. App Check wird nur für das Places SDK (New) 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 verwenden, um diesen Server zu schützen, anstatt GMP zu verwenden.
  • Die von App Check empfohlenen Attestierungsanbieter 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 finden Sie in der Anleitung.

Übersicht über die Implementierungsschritte

Auf übergeordneter Ebene sind die folgenden Schritte erforderlich, um Ihre App in App Check einzubinden:

  1. Fügen Sie Ihrer Anwendung Firebase hinzu.
  2. Fügen Sie die App Check-Bibliothek hinzu und initialisieren Sie sie.
  3. Fügen Sie den Tokenanbieter hinzu.
  4. Aktivieren Sie das Debugging.
  5. App-Anfragen im Blick behalten und über Maßnahmen entscheiden.

Nach der Integration von App Check können Sie in der Firebase Console Messwerte zum Backend-Traffic sehen. Diese Messwerte enthalten eine Aufschlüsselung der Anfragen danach, ob sie ein gültiges App Check-Token enthalten. Weitere Informationen finden Sie in der Dokumentation zu Firebase App Check.

Wenn Sie sicher sind, dass die meisten Anfragen von legitimen Quellen stammen und die Nutzer die aktuelle Version Ihrer App mit Ihrer Implementierung von App Check installiert haben, 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

Hier sind einige Punkte, die Sie bei der Planung Ihrer Integration berücksichtigen sollten:

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

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

  • Nutzer Ihrer App werden beim Start eine gewisse Latenz feststellen. Danach erfolgt jede regelmäßige erneute Bestätigung im Hintergrund und Nutzer sollten keine Latenz mehr bemerken. Die genaue Latenz beim Start hängt vom ausgewählten Attestierungsanbieter ab.

    Die Gültigkeitsdauer des App Check-Tokens (Time to Live, TTL) bestimmt, wie oft eine erneute Attestierung erforderlich ist. Diese Dauer kann in der Firebase Console konfiguriert werden. Die erneute Attestierung 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, in die das Places SDK Version 4.1 oder höher eingebunden ist.
  • Der SHA-256-Fingerprint für Ihre App.
  • Der Paketname Ihrer App.
  • Sie müssen der Inhaber der App in der Cloud Console sein.
  • Sie benötigen die Projekt-ID der App aus der Cloud Console.

Schritt 1: Firebase zur 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 Standard-Attestierungsanbieter, finden Sie unter Erste Schritte mit App Check mit Play Integrity für Android.

  1. Binden Sie das Places SDK in Ihre App ein, falls Sie dies noch nicht getan haben.
  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 die PlacesAppCheckTokenProvider festzulegen.

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

Hier ist eine Beispielimplementierung der Token-Abrufschnittstelle:

  /** 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 CI-Umgebung (Continuous Integration) ausführen möchten, können Sie einen Debug-Build Ihrer App erstellen, der ein Debug-Secret verwendet, um gültige App Check-Tokens abzurufen. So können Sie vermeiden, dass in Ihrem Debug-Build echte Attestierungsanbieter verwendet werden.

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 die Debug-Anbieter-Factory in Ihrem Debug-Build verwendet wird.
  • Starten Sie die App, um ein lokales Debug-Token zu erstellen. Fügen Sie dieses Token in der Firebase Console hinzu.
  • Weitere Informationen und Anleitungen finden Sie in der Dokumentation zu App Check.

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

  • Erstellen Sie in der Firebase Console ein Debug-Token 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 so, dass das Debug-Token verwendet wird.
  • Verpacken Sie Code in Ihren Testklassen, der ein App Check-Token benötigt, mit DebugAppCheckTestHelper.
  • Weitere Informationen und Anleitungen finden Sie in der Dokumentation zu App Check.

Schritt 5: App-Anfragen im Blick behalten und über Maßnahmen entscheiden

Bevor Sie mit der Erzwingung beginnen, sollten Sie sicherstellen, dass Sie legitime Nutzer Ihrer App nicht beeinträchtigen. Rufen Sie dazu den Bildschirm mit den App Check-Messwerten auf, um zu sehen, welcher Prozentsatz des Traffics Ihrer App verifiziert, veraltet oder illegitim ist. Sobald der Großteil Ihres Traffics verifiziert ist, können Sie die Erzwingung aktivieren.

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