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 App Attest 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 Ihrer App den Tokenanbieter hinzu.
  4. Initialisieren Sie die Places API und die App Check API.
  5. Aktivieren Sie das Debugging.
  6. 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 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 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:

  • Die von uns empfohlenen Attestierungsanbieter Device Check oder App Attest unterliegen von Apple festgelegten Kontingenten und Einschränkungen.

    Sie können auch einen benutzerdefinierten Attestierungsanbieter verwenden. Dies ist jedoch ein fortgeschrittener Anwendungsfall. Weitere Informationen finden Sie in der Firebase App Check-Dokumentation.

  • 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 die Häufigkeit der erneuten Attestierungen. 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 9.2 oder höher.
  • Die Bundle-ID der App.
  • Ihre Team-ID aus dem Apple Member Center unter „Membership“ (Mitgliedschaft).
  • Wenn Sie Device Check verwenden möchten, benötigen Sie Ihre Datei mit dem privaten Schlüssel und die Schlüssel-ID.
  • 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.

Wenn Sie Ihre App registrieren, erhalten Sie eine Konfigurationsdatei, GoogleService-Info.plist. Fügen Sie diese Datei unverändert auf der Stammebene Ihrer App hinzu.

Places Swift SDK for iOS

import FirebaseCore
import FirebaseAppCheck
import GooglePlacesSwift

Swift

import FirebaseCore
import FirebaseAppCheck
import GooglePlaces

Objective-C

@import FirebaseCore;      
@import FirebaseAppCheck;
@import GooglePlaces;

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

Firebase bietet Anleitungen für jeden Standardanbieter für die Geräteattestierung. In dieser Anleitung erfahren Sie, wie Sie ein Firebase-Projekt einrichten und die App Check-Bibliothek zu Ihrer App hinzufügen. Folgen Sie den bereitgestellten Codebeispielen, um App Check zu initialisieren.

  1. Folgen Sie der Firebase-Anleitung, um die App Check-Bibliothek hinzuzufügen:
  2. App Check initialisieren
    • Wenn Sie App Attest verwenden, folgen Sie der Firebase-Entwicklerdokumentation für App Attest.

      Folgen Sie der Anleitung zu Firebase App Check, um eine Implementierung von AppCheckProviderFactory zu erstellen und sie Ihrer Datei AppDelegate hinzuzufügen.

      Places Swift SDK for iOS

      let providerFactory = YourAppCheckProviderFactory()
      AppCheck.setAppCheckProviderFactory(providerFactory)

      Swift

      let providerFactory = YourAppCheckProviderFactory()
      AppCheck.setAppCheckProviderFactory(providerFactory)

      Objective-C

      YourAppCheckProviderFactory *providerFactory =
          [[YourAppCheckProviderFactory alloc] init];
      [FIRAppCheck setAppCheckProviderFactory:providerFactory];
         
    • Wenn Sie Device Check verwenden, fügen Sie Folgendes zu Ihrer AppDelegate hinzu:

      Places Swift SDK for iOS

      AppCheck.setAppCheckProviderFactory(DeviceCheckProviderFactory())

      Swift

      AppCheck.setAppCheckProviderFactory(DeviceCheckProviderFactory())

      Objective-C

      [FIRAppCheck setAppCheckProviderFactory:providerFactory];
            

Schritt 3: Tokenanbieter hinzufügen

Erstellen Sie im Stammverzeichnis Ihrer App eine Datei namens AppCheckTokenProvider (oder, wenn Sie Objective-C verwenden, zwei Dateien namens AppCheckTokenProvider.h und AppCheckTokenProvider.m). Fügen Sie die folgenden Importanweisungen und die Klassendefinition hinzu:

Places Swift SDK for iOS

// AppCheckTokenProvider.swift

import FirebaseAppCheck
import Foundation
import GooglePlacesSwift
      
struct TokenProvider: AppCheckTokenProvider {
  func fetchAppCheckToken() async throws -> String {
    return try await AppCheck.appCheck().token(forcingRefresh: false).token
  }
}
      

Swift

// AppCheckTokenProvider.swift

import FirebaseAppCheck
import Foundation
import GooglePlaces

class AppCheckTokenProvider: NSObject, GMSPlacesAppCheckTokenProvider {
  func fetchAppCheckToken() async throws -> String {
    return try await AppCheck.appCheck().token(forcingRefresh: false).token
  }
}

Objective-C

// AppCheckTokenProvider.h

@import Foundation;
@import GooglePlaces;

@interface AppCheckTokenProvider : NSObject <GMSPlacesAppCheckTokenProvider>
@end

// AppCheckTokenProvider.m

#import "AppCheckTokenProvider.h"

@import FirebaseAppCheck;

@implementation AppCheckTokenProvider

- (void)fetchAppCheckTokenWithCompletion:(nonnull GMSAppCheckTokenCompletion)completion {
  [[FIRAppCheck appCheck]
      tokenForcingRefresh:NO
               completion:^(FIRAppCheckToken *_Nullable token, NSError *_Nullable error) {
                 if (token) {
                   completion(token.token, nil);
                 } else {
                   completion(nil, error);
                 }
               }];
}

@end

Schritt 4: Places API und App Check API initialisieren

  1. Initialisieren Sie die Places API in Ihrer AppDelegate-Datei:

    Places Swift SDK for iOS

    PlacesClient.provideAPIKey("YOUR_API_KEY")

    Swift

    GMSPlacesClient.provideAPIKey("YOUR_API_KEY")

    Objective-C

    [GMSPlacesClient provideAPIKey:@"YOUR_API_KEY"];
  2. Initialisieren Sie dann die App Check API:

    Places Swift SDK for iOS

    PlacesClient.setAppCheckTokenProvider(AppCheckTokenProvider())

    Swift

    GMSPlacesClient.setAppCheckTokenProvider(AppCheckTokenProvider())

    Objective-C

    [GMSPlacesClient setAppCheckTokenProvider:[[AppCheckTokenProvider alloc] init]];

Schritt 5: 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 testen Sie Ihre App im Simulator oder auf einem Testgerät:

  • App Check-Debug-Anbieter-Factory erstellen und festlegen

    Dieses Codebeispiel deckt sowohl das Debugging als auch die Produktionsszenarien ab:

    Places Swift SDK for iOS

    #if targetEnvironment(simulator)
          let providerFactory = AppCheckDebugProviderFactory()
    #else
          let providerFactory = YourAppCheckProviderFactory()
    #endif

    Swift

    #if targetEnvironment(simulator)
          let providerFactory = AppCheckDebugProviderFactory()
    #else
          let providerFactory = YourAppCheckProviderFactory()
    #endif

    Objective-C

    if (targetEnvironment == simulator){
    
    FIRAppCheckDebugProviderFactory *providerFactory =
          [[FIRAppCheckDebugProviderFactory alloc] init];
    [FIRAppCheck setAppCheckProviderFactory:providerFactory];
    }
    
    else {
    
    YourAppCheckProviderFactory *providerFactory =
          [[YourAppCheckProviderFactory alloc] init];
    [FIRAppCheck setAppCheckProviderFactory:providerFactory];
    }
        
  • Aktivieren Sie die Protokollierung in Ihrem Xcode-Projekt, starten Sie die App und suchen Sie im Log nach dem lokalen Debug-Token.
  • 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 in Xcode eine Umgebungsvariable zu Ihrem Testschema mit dem Namen FIRAAppCheckDebugToken und $(APP_CHECK_DEBUG_TOKEN) (oder einem ähnlichen Wert) hinzu.
  • Übergeben Sie das Debug-Token in Ihrem CI-Testskript als Umgebungsvariable.
  • App Check-Debug-Anbieter-Factory erstellen und festlegen

    Dieses Codebeispiel deckt sowohl das Debugging als auch die Produktionsszenarien ab:

    Places Swift SDK for iOS

    #if DEBUG
      let providerFactory = AppCheckDebugProviderFactory()
    #else
      let providerFactory = YourAppCheckProviderFactory()
    #endif
    AppCheck.setAppCheckProviderFactory(providerFactory)
      

    Swift

    #if DEBUG
      let providerFactory = AppCheckDebugProviderFactory()
    #else
      let providerFactory = YourAppCheckProviderFactory()
    #endif
    AppCheck.setAppCheckProviderFactory(providerFactory)
      

    Objective-C

    #if DEBUG
    id<FIRAppCheckProviderFactory> providerFactory =
        [[FIRAppCheckDebugProviderFactory alloc] init];
    #else  // DEBUG
    id<FIRAppCheckProviderFactory> providerFactory =
        [[YourAppCheckProviderFactory alloc] init];
    #endif  // DEBUG
    AppCheck.setAppCheckProviderFactory(providerFactory)
  • Weitere Informationen und Anleitungen finden Sie in der App Check-Dokumentation.

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

Bevor Sie mit der Durchsetzung beginnen, sollten Sie sicherstellen, 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 des Traffics Ihrer App verifiziert, veraltet oder unzulässig 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.