Catch up on highlights from Firebase at Google I/O 2023. Learn more

Beginnen Sie mit der Verwendung von App Check mit App Attest auf Apple-Plattformen

Auf dieser Seite wird gezeigt, wie Sie App Check in einer Apple-App mithilfe des integrierten App Attest-Anbieters aktivieren. Wenn Sie App Check aktivieren, tragen Sie dazu bei, dass nur Ihre App auf die Firebase-Ressourcen Ihres Projekts zugreifen kann. Sehen Sie sich eine Übersicht über diese Funktion an.

App Check verwendet App Attest , um zu überprüfen, ob Anfragen an Firebase-Dienste von Ihrer authentischen App stammen. App Check verwendet App Attest derzeit nicht zur Analyse des Betrugsrisikos .

Wenn Sie App Check mit Ihrem eigenen benutzerdefinierten Anbieter verwenden möchten, finden Sie weitere Informationen unter Implementieren eines benutzerdefinierten App Check-Anbieters .

1. Richten Sie Ihr Firebase-Projekt ein

  1. Sie benötigen Xcode 12.5+, um App Attest zu verwenden.

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

  3. Registrieren Sie Ihre Apps für die Verwendung von App Check beim App Attest-Anbieter im Abschnitt „App Check“ der Firebase-Konsole.

    Normalerweise müssen Sie alle Apps Ihres Projekts registrieren, denn sobald Sie die Erzwingung für ein Firebase-Produkt aktivieren, können nur registrierte Apps auf die Back-End-Ressourcen des Produkts zugreifen.

  4. Optional : Legen Sie in den App-Registrierungseinstellungen eine benutzerdefinierte Gültigkeitsdauer (Time-to-Live, TTL) für vom Anbieter ausgestellte App Check-Token fest. Sie können die TTL auf einen beliebigen Wert zwischen 30 Minuten und 7 Tagen einstellen. Beachten Sie beim Ändern dieses Werts die folgenden Kompromisse:

    • Sicherheit: Kürzere TTLs bieten mehr Sicherheit, da sie das Fenster verkleinern, in dem ein durchgesickertes oder abgefangenes Token von einem Angreifer missbraucht werden kann.
    • Leistung: Kürzere TTLs bedeuten, dass Ihre App die Bestätigung häufiger durchführt. Da der App-Bestätigungsprozess bei jeder Ausführung Latenz für Netzwerkanforderungen hinzufügt, kann eine kurze TTL die Leistung Ihrer App beeinträchtigen.
    • Kontingent und Kosten: Kürzere TTLs und häufige Neubescheinigungen erschöpfen Ihr Kontingent schneller und kosten bei kostenpflichtigen Diensten möglicherweise mehr. Siehe Kontingente und Limits .

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

2. Fügen Sie Ihrer App die App Check-Bibliothek hinzu

  1. Fügen Sie die Abhängigkeit für App Check zum Podfile Ihres Projekts hinzu:

    pod 'FirebaseAppCheck'

    Alternativ können Sie stattdessen den Swift Package Manager verwenden.

    Stellen Sie sicher, dass Sie auch die neueste Version aller anderen Firebase-SDKs verwenden, auf die Sie angewiesen sind.

  2. Führen Sie pod install und öffnen Sie die erstellte .xcworkspace Datei.

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

  4. Legen Sie in der .entitlements Datei 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 zunächst eine Implementierung von AppCheckProviderFactory . Die Besonderheiten Ihrer Implementierung hängen von Ihrem Anwendungsfall ab.

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

Schnell

Hinweis: Dieses Firebase-Produkt ist auf watchOS-Zielen nicht verfügbar.

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

Ziel c

Hinweis: Dieses Firebase-Produkt ist auf watchOS-Zielen nicht verfügbar.

@interface YourSimpleAppCheckProviderFactory : NSObject <FIRAppCheckProviderFactory>
@end

@implementation YourSimpleAppCheckProviderFactory

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

@end

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

Schnell

Hinweis: Dieses Firebase-Produkt ist auf watchOS-Zielen 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)
    }
  }
}

Ziel c

Hinweis: Dieses Firebase-Produkt ist auf watchOS-Zielen 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 für deren Verwendung:

Schnell

Hinweis: Dieses Firebase-Produkt ist auf watchOS-Zielen nicht verfügbar.

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

FirebaseApp.configure()

Ziel c

Hinweis: Dieses Firebase-Produkt ist auf watchOS-Zielen 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, beginnen Sie mit der Verteilung der aktualisierten App an Ihre Benutzer.

Die aktualisierte Client-App beginnt mit dem Senden von App-Check-Tokens zusammen mit jeder Anfrage, die sie an Firebase sendet, aber Firebase-Produkte verlangen nicht, dass die Tokens gültig sind, bis Sie die Erzwingung im Abschnitt „App-Check“ der Firebase-Konsole aktivieren.

Überwachen Sie Metriken und aktivieren Sie die Durchsetzung

Bevor Sie die Erzwingung aktivieren, sollten Sie jedoch sicherstellen, dass dadurch Ihre vorhandenen legitimen Benutzer nicht gestört werden. 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-Metriken für die von Ihnen verwendeten Dienste ansehen:

App-Check-Erzwingung aktivieren

Wenn Sie verstehen, wie sich App Check auf Ihre Benutzer auswirkt, und Sie fortfahren möchten, können Sie die Erzwingung von App Check aktivieren:

Verwenden Sie App Check in Debug-Umgebungen

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

Siehe Verwenden von App Check mit dem Debug-Anbieter auf Apple-Plattformen .