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 integrieren, können Sie sich vor schädlichen Anfragen schützen und werden nicht für nicht autorisierte API-Aufrufe in Rechnung gestellt.

Ist App Check für mich geeignet?

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.
  • Interne oder experimentelle Apps Wenn Ihre App nicht öffentlich zugänglich ist, ist App Check nicht erforderlich.
  • Wenn Ihre App nur serverübergreifend 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 stattdessen App Check zum Schutz dieses Servers verwenden.
  • Die von App Check empfohlenen Attestierungsanbieter funktionieren nicht auf Geräten, die von Ihrem Attestierungsanbieter als manipuliert oder nicht vertrauenswürdig eingestuft wurden. Wenn Sie solche Geräte unterstützen möchten, können Sie einen benutzerdefinierten Attestierungsservice bereitstellen. Weitere Informationen finden Sie in der Anleitung.

Implementierungsschritte im Überblick

So integrieren Sie Ihre App in App Check:

  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 die Fehlerbehebung.
  5. Überwachen Sie Ihre App-Anfragen und entscheiden Sie, ob Sie Maßnahmen ergreifen möchten.

Nach der Einbindung von App Check können Sie Back-End-Traffic-Messwerte in der Firebase Console sehen. Diese Messwerte geben Aufschluss darüber, ob Anfragen ein gültiges App Check-Token enthalten. 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 die neueste Version Ihrer App mit Ihrer App-Check-Implementierung 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

Bei der Planung Ihrer Integration sollten Sie Folgendes beachten:

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

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

  • Beim Starten Ihrer App kommt es zu einer gewissen Latenz. Danach erfolgt die regelmäßige Reattestierung jedoch im Hintergrund und Nutzer sollten keine Verzögerungen mehr feststellen. Die genaue Latenz beim Starten hängt vom ausgewählten Attestierungsanbieter ab.

    Die Häufigkeit der Wiederholung der Attestierung wird durch die Gültigkeitsdauer des App Check-Tokens (die Gültigkeitsdauer oder TTL) bestimmt. Diese Dauer kann in der Firebase Console konfiguriert werden. Die erneute Attestierung erfolgt, wenn etwa die Hälfte der TTL verstrichen 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 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 Firebase Ihrer App hinzuzufügen.

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

Informationen zur Verwendung von Play Integrity, dem Standardattestierungsanbieter, finden Sie unter Einstieg in App Check mit Play Integrity für Android.

  1. Wenn Sie das noch nicht getan haben, integrieren Sie das Places SDK in Ihre App.
  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 eine Beispielimplementierung der Token-Abruf-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: Debuggen 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, der ein Debug-Secret verwendet, um gültige App Check-Tokens zu erhalten. So können Sie echte Attestierungsanbieter in Ihrem Debug-Build vermeiden.

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

  • Fügen Sie der build.gradle-Datei die App Check-Bibliothek hinzu.
  • Konfigurieren Sie App Check so, dass die Debuganbieter-Fabrik in Ihrem Debug-Build 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 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 der build.gradle-Datei die App Check-Bibliothek hinzu.
  • Konfigurieren Sie Ihre CI-Buildvariante so, dass das Debug-Token verwendet wird.
  • 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 beobachten und Maßnahmen ergreifen

Bevor Sie mit der Erzwingung beginnen, sollten Sie sich vergewissern, dass Sie keine legitimen Nutzer Ihrer App beeinträchtigen. Rufen Sie dazu den Bildschirm mit den App Check-Messwerten auf, um zu sehen, welcher Prozentsatz der Zugriffe auf Ihre App bestätigt, veraltet oder nicht legitim 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.