Erste Schritte bei der Verwendung von App Check mit App Attest auf Apple-Plattformen

Auf dieser Seite wird beschrieben, wie Sie App Check in einer Apple-App mit dem integrierten App Attest-Anbieter aktivieren. Wenn Sie App Check aktivieren, können nur Ihre Apps auf die Firebase-Ressourcen Ihres Projekts zugreifen. Übersicht über diese Funktion

App Check verwendet App Attest um zu prüfen, ob Anfragen an Firebase-Dienste von Ihrer authentischen App stammen. App Check verwendet App Attest derzeit nicht, um das Betrugsrisiko zu analysieren.

Wenn Sie App Check mit einem eigenen benutzerdefinierten Anbieter verwenden möchten, lesen Sie Benutzerdefinierten App Check Anbieter implementieren.

1. Das Firebase-Projekt einrichten

  1. Sie benötigen Xcode 12.5 oder höher, um App Attest verwenden zu können.

  2. Fügen Sie Ihrem Apple-Projekt Firebase hinzu, falls noch nicht geschehen.

  3. Rufen Sie in der Firebase Konsole Sicherheit > App Check auf.

  4. Registrieren Sie auf dem Tab Apps Ihre Apps für die Verwendung von App Check mit dem App Attest-Anbieter.

    In der Regel müssen Sie alle Apps Ihres Projekts registrieren. Sobald Sie die Erzwingung für ein Firebase-Produkt aktivieren, können nur registrierte Apps auf die Backend-Ressourcen des Produkts zugreifen.

  5. Optional: Legen Sie in den App-Registrierungseinstellungen eine benutzerdefinierte Gültigkeitsdauer (TTL) für App Check Tokens fest, die vom Anbieter ausgestellt werden. Sie können die TTL auf einen beliebigen Wert zwischen 30 Minuten und 7 Tagen festlegen. Beachten Sie beim Ändern dieses Werts die folgenden Kompromisse:

    • Sicherheit: Kürzere TTLs bieten mehr Sicherheit, da sie das Zeitfenster verringern, in dem ein durchgesickertes oder abgefangenes Token von einem Angreifer missbraucht werden kann.
    • Leistung: Bei kürzeren TTLs führt Ihre App häufiger eine Bestätigung durch. Da der App-Bestätigungsprozess bei jeder Ausführung die Latenz von Netzwerkanfragen erhöht, kann eine kurze TTL die Leistung Ihrer App beeinträchtigen.
    • Kontingent und Kosten: Kürzere TTLs und häufige erneute Bestätigungen führen dazu, dass Ihr Kontingent schneller aufgebraucht wird. Bei kostenpflichtigen Diensten können dadurch auch höhere Kosten entstehen. Weitere Informationen finden Sie unter Kontingente und Limits.

    Die Standard-TTL von 1 Stunde ist für die meisten Apps angemessen. Beachten Sie, dass die App Check Bibliothek Tokens etwa nach der Hälfte der TTL-Dauer aktualisiert.

2. App Check-Bibliothek Ihrer App hinzufügen

  1. Verwenden Sie Swift Package Manager, um Firebase-Abhängigkeiten zu installieren und zu verwalten.

    Öffnen Sie Ihr App-Projekt und gehen Sie in Xcode zu File > Add Packages (Datei > Pakete hinzufügen). Fügen Sie das Firebase Apple Platforms SDK-Repository (https://github.com/firebase/firebase-ios-sdk) hinzu und wählen Sie die Bibliothek FirebaseAppCheck aus.

  2. Fügen Sie Ihrer App in Xcode die Funktion App Attest hinzu.

  3. Legen Sie in der Datei .entitlements Ihres Projekts die App Attest-Umgebung auf production fest.

3. App Check initialisieren

Sie müssen App Check initialisieren, bevor Sie andere Firebase SDKs verwenden.

Schreiben Sie zuerst eine Implementierung von AppCheckProviderFactory. Die Details Ihrer Implementierung hängen von Ihrem Anwendungsfall ab.

Wenn Sie beispielsweise nur Nutzer mit iOS 14 und höher haben, können Sie einfach immer AppAttestProvider-Objekte erstellen:

Swift

Hinweis:Dieses Firebase-Produkt ist für watchOS-Ziele nicht verfügbar.

class YourSimpleAppCheckProviderFactory: NSObject, AppCheckProviderFactory {
  func createProvider(with app: FirebaseApp) -> AppCheckProvider? {
    return AppAttestProvider(app: app)
  }
}

Objective-C

Hinweis:Dieses Firebase-Produkt ist für watchOS-Ziele nicht verfügbar.

@interface YourSimpleAppCheckProviderFactory : NSObject <FIRAppCheckProviderFactory>
@end

@implementation YourSimpleAppCheckProviderFactory

- (nullable id<FIRAppCheckProvider>)createProviderWithApp:(nonnull FIRApp *)app {
  return [[FIRAppAttestProvider alloc] initWithApp:app];
}

@end

Alternativ können Sie AppAttestProvider-Objekte unter iOS 14 und höher erstellen und auf früheren Versionen auf DeviceCheckProvider zurückgreifen:

Swift

Hinweis:Dieses Firebase-Produkt ist für watchOS-Ziele nicht verfügbar.

class YourAppCheckProviderFactory: NSObject, AppCheckProviderFactory {
  func createProvider(with app: FirebaseApp) -> AppCheckProvider? {
    if #available(iOS 14.0, *) {
      return AppAttestProvider(app: app)
    } else {
      return DeviceCheckProvider(app: app)
    }
  }
}

Objective-C

Hinweis:Dieses Firebase-Produkt ist für watchOS-Ziele nicht verfügbar.

@interface YourAppCheckProviderFactory : NSObject <FIRAppCheckProviderFactory>
@end

@implementation YourAppCheckProviderFactory

- (nullable id<FIRAppCheckProvider>)createProviderWithApp:(nonnull FIRApp *)app {
  if (@available(iOS 14.0, *)) {
    return [[FIRAppAttestProvider alloc] initWithApp:app];
  } else {
    return [[FIRDeviceCheckProvider alloc] initWithApp:app];
  }
}

@end

Nachdem Sie eine AppCheckProviderFactory-Klasse implementiert haben, konfigurieren Sie App Check, um sie zu verwenden:

Swift

Hinweis:Dieses Firebase-Produkt ist für watchOS-Ziele nicht verfügbar.

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

FirebaseApp.configure()

Objective-C

Hinweis:Dieses Firebase-Produkt ist für watchOS-Ziele nicht verfügbar.

YourAppCheckProviderFactory *providerFactory =
        [[YourAppCheckProviderFactory alloc] init];
[FIRAppCheck setAppCheckProviderFactory:providerFactory];

[FIRApp configure];

Nächste Schritte

Sobald die App Check Bibliothek in Ihrer App installiert ist, können Sie die aktualisierte App für Ihre Nutzer bereitstellen.

Die aktualisierte Client-App sendet mit jeder Anfrage an Firebase App Check Tokens. Die Firebase-Produkte erfordern jedoch erst dann gültige Tokens, wenn Sie die Erzwingung im App Check Bereich der Firebase-Konsole aktivieren.

Messwerte beobachten und Erzwingung aktivieren

Bevor Sie die Erzwingung aktivieren, sollten Sie prüfen, ob dies Ihre bestehenden legitimen Nutzer nicht beeinträchtigt. Wenn Sie andererseits eine verdächtige Nutzung Ihrer App-Ressourcen feststellen, sollten Sie die Erzwingung möglicherweise früher aktivieren.

Um diese Entscheidung zu treffen, können Sie sich die App Check Messwerte für die Dienste ansehen, die Sie verwenden:

Erzwingung aktivierenApp Check

Wenn Sie wissen, wie sich App Check auf Ihre Nutzer auswirkt, und bereit sind, fortzufahren, können Sie die App Check Erzwingung aktivieren:

App Check in Debug-Umgebungen verwenden

Wenn Sie Ihre App nach der Registrierung für App Check in einer Umgebung ausführen möchten, die von App Check normalerweise nicht als gültig eingestuft wird, z. B. in einem Simulator während der Entwicklung oder in einer CI-Umgebung (Continuous Integration), können Sie einen Debug-Build Ihrer App erstellen, der anstelle eines echten Bestätigungsanbieters den App Check Debug-Anbieter verwendet.

Weitere Informationen finden Sie unter Verwenden Sie App Check mit dem Debug-Anbieter auf Apple-Plattformen.