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 Bestätigungsanbieter wie Play Integrity gesucht. Wenn Sie Ihre Apps in App Check einbinden, können Sie sich vor schädlichen Anfragen schützen und müssen nicht für nicht autorisierte API-Aufrufe bezahlen.

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 Places SDK (neu) unterstützt.
  • Private 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 anstelle von GMP.
  • Die empfohlenen Bestätigungsanbieter von App Check funktionieren nicht auf Geräten, die von Ihrem Bestätigungsanbieter als kompromittiert oder nicht vertrauenswürdig eingestuft werden. Wenn Sie solche Geräte unterstützen müssen, können Sie einen benutzerdefinierten Bestätigungsdienst bereitstellen. Weitere Informationen finden Sie in der Anleitung.

Übersicht über die Implementierungsschritte

Im Wesentlichen 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. 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. Überwachen Sie Ihre App-Anfragen und entscheiden Sie sich für die Erzwingung.

Nachdem Sie App Check eingebunden haben, können Sie in der Firebase Console Backend-Traffic-Messwerte 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 dass die Nutzer auf die neueste Version Ihrer App aktualisiert haben, die Ihre Implementierung von App Check 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-Einbindung

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

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

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

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

    Die Gültigkeitsdauer des App Check-Tokens (Time to Live oder TTL) bestimmt die Häufigkeit der erneuten Bestätigungen. 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 Bestätigungsanbieter.

App in App Check einbinden

Voraussetzungen und Anforderungen

  • Eine App mit dem Places SDK Version 4.1 oder höher.
  • Der SHA-256-Fingerabdruck Ihrer 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 Ihrer App Firebase hinzuzufügen.

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

Informationen zur Verwendung von Play Integrity, dem Standard-Bestätigungsanbieter, finden Sie unter App Check mit Play Integrity für Android verwenden.

  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

Nachdem Sie die Places API initialisiert haben, rufen Sie setPlacesAppCheckTokenProvider() auf, um PlacesAppCheckTokenProvider festzulegen.

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

Hier ist eine Beispielimplementierung 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 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 zu erhalten. So können Sie in Ihrem Debug-Build auf echte Bestätigungsanbieter verzichten.

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

  • Fügen Sie die App Check-Bibliothek Ihrer Datei build.gradle 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 Debug-Token erstellt. Fügen Sie dieses Token der Firebase Console hinzu.
  • Weitere Informationen und eine Anleitung finden Sie in der App Check-Dokumentation.

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 Datei build.gradle hinzu.
  • Konfigurieren Sie Ihre CI-Build-Variante so, dass das Debug-Token verwendet wird.
  • Umschließen Sie Code in Ihren Testklassen, der ein App Check-Token benötigt, mit DebugAppCheckTestHelper.
  • Weitere Informationen und eine Anleitung finden Sie in der App Check-Dokumentation.

Schritt 5: App-Anfragen überwachen und Erzwingung festlegen

Bevor Sie die Erzwingung aktivieren, sollten Sie sicherstellen, dass Sie legitime Nutzer Ihrer App nicht stören. Rufen Sie dazu den Bildschirm mit den App Check-Messwerten auf, um zu sehen, welcher Prozentsatz des Traffics Ihrer App bestätigt, veraltet oder unzulässig ist. Sobald der Großteil des Traffics bestätigt ist, können Sie die Erzwingung aktivieren.

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