Auf dieser Seite erfahren Sie, wie Sie App Check in einer Apple-App mit dem integrierten App Attest-Anbieter aktivieren. Wenn Sie App Check aktivieren, können nur Ihre App und keine anderen Apps auf die Firebase-Ressourcen Ihres Projekts zugreifen. Hier finden Sie eine Übersicht.
App Check verwendet App Attest um zu überprüfen, ob Anfragen an Firebase-Dienste von Ihrer echten App stammen. App Check verwendet App Attest derzeit nicht, um Betrugsrisiko analysieren.
Wenn Sie App Check mit einem eigenen benutzerdefinierten Anbieter verwenden möchten, lesen Sie den Hilfeartikel Benutzerdefinierten App Check-Anbieter implementieren.
1. Das Firebase-Projekt einrichten
Sie benötigen Xcode 12.5 oder höher, um App Attest verwenden zu können.
Fügen Sie Ihrem Apple-Projekt Firebase hinzu, falls Sie das noch nicht getan haben.
Registrieren Sie Ihre Apps für die Verwendung von App Check mit dem App Attest-Anbieter im Bereich App Check der Firebase-Konsole.
Normalerweise müssen Sie alle Apps Ihres Projekts registrieren, da nur registrierte Apps auf die Backend-Ressourcen eines Firebase-Produkts zugreifen können, wenn Sie die Erzwingung für ein Firebase-Produkt aktivieren.
Optional: Legen Sie in den Einstellungen für die App-Registrierung eine benutzerdefinierte Gültigkeitsdauer (Time to Live, TTL) für vom Anbieter ausgestellte App Check-Tokens fest. Sie können die TTL festlegen auf einen beliebigen Wert zwischen 30 Minuten und 7 Tagen. Wenn Sie diesen Wert ändern, ist sich der folgenden Vor- und Nachteile bewusst:
- Sicherheit: Kürzere TTLs bieten mehr Sicherheit, da sie Fenster, in dem ein gehacktes oder abgefangenes Token von einem Angreifer.
- Leistung: Kürzere TTLs bedeuten, dass deine App die Attestierung mehr ausführt. häufig auftreten. Weil der Anwendungsattestierungsprozess die Latenz im Netzwerk erhöht Anfragen bei jeder Ausführung kann eine kurze TTL die Leistung beeinträchtigen Ihrer App.
- Kontingent und Kosten: Kürzere TTLs und häufige Neuattestierungen verringern Ihr Kontingent schneller und können bei kostenpflichtigen Diensten zu höheren Kosten führen. Siehe Kontingente und .
Die Standard-TTL von 1 Stunde ist für die meisten Apps sinnvoll. Die App Check-Bibliothek wird aktualisiert mit etwa der Hälfte der TTL-Dauer ein.
2. App Check-Bibliothek zur App hinzufügen
Fügen Sie die Abhängigkeit für App Check der
Podfile
Ihres Projekts hinzu:pod 'FirebaseAppCheck'
Alternativ können Sie auch den Swift Package Manager verwenden.
Achten Sie außerdem darauf, dass Sie die neueste Version aller anderen Firebase SDKs verwenden, die Sie benötigen.
Führen Sie
pod install
aus und öffnen Sie die erstellte.xcworkspace
-Datei.Fügen Sie Ihrer App in Xcode die Funktion App Attest hinzu.
Legen Sie in der Datei
.entitlements
Ihres Projekts die App Attest-Umgebung aufproduction
.
3. App Check initialisieren
Sie müssen App Check initialisieren, bevor Sie andere Firebase SDKs verwenden können.
Schreiben Sie zuerst eine Implementierung von AppCheckProviderFactory
. Die Besonderheiten von
Ihre Implementierung hängt
vom Anwendungsfall ab.
Wenn Sie beispielsweise nur Nutzer mit iOS 14 und höher haben, können Sie einfach immer
Erstellen Sie AppAttestProvider
-Objekte:
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 nicht für WatchOS-Ziele verfügbar.
@interface YourSimpleAppCheckProviderFactory : NSObject <FIRAppCheckProviderFactory> @end @implementation YourSimpleAppCheckProviderFactory - (nullable id<FIRAppCheckProvider>)createProviderWithApp:(nonnull FIRApp *)app { return [[FIRAppAttestProvider alloc] initWithApp:app]; } @end
Sie können auch AppAttestProvider
-Objekte unter iOS 14 und höher erstellen und bei früheren Versionen auf DeviceCheckProvider
zurückgreifen:
Swift
Hinweis: Dieses Firebase-Produkt ist nicht für WatchOS-Ziele 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 nicht für WatchOS-Ziele 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 die Verwendung:
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 nicht für WatchOS-Ziele verfügbar.
YourAppCheckProviderFactory *providerFactory = [[YourAppCheckProviderFactory alloc] init]; [FIRAppCheck setAppCheckProviderFactory:providerFactory]; [FIRApp configure];
Nächste Schritte
Sobald die App Check-Bibliothek in deiner App installiert ist, kannst du mit dem Verteilen der eine aktualisierte App für Ihre Nutzer bereitzustellen.
Die aktualisierte Client-App sendet dann jeweils App Check Tokens an Firebase gesendet, aber für Firebase-Produkte sind die Tokens nicht erforderlich. so lange gültig sein, bis Sie die Erzwingung im Abschnitt App Check der Firebase Console
Messwerte beobachten und Erzwingung aktivieren
Bevor Sie die Erzwingung aktivieren, sollten Sie jedoch prüfen, ob dies die Nutzung für Ihre bestehenden rechtmäßigen Nutzer nicht beeinträchtigt. Wenn Sie jedoch eine verdächtige Nutzung Ihrer App-Ressourcen feststellen, sollten Sie die Erzwingung früher aktivieren.
Als Entscheidungshilfe können Sie sich die App Check-Messwerte für die Dienste, die Sie nutzen:
- App Check-Anfragemesswerte für Realtime Database, Cloud Firestore, Cloud Storage, Firebase Data Connect (Vorabversion), Authentication (Beta) und Vertex AI in Firebase (Vorabversion) überwachen
- Überwachen Sie die Anfragemesswerte von App Check für Cloud Functions.
Erzwingung für App Check aktivieren
Wenn Sie die Auswirkungen von App Check auf Ihre Nutzer verstanden haben und bereit sind, können Sie die Erzwingung von App Check aktivieren:
- App Check-Erzwungene Einhaltung aktivieren für Realtime Database, Cloud Firestore, Cloud Storage, Firebase Data Connect (Vorabversion), Authentication (Beta) und Vertex AI in Firebase (Vorabversion).
- Aktivieren Sie die App Check-Erzwingung für Cloud Functions.
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 Umgebung für kontinuierliche Integration (CI), können Sie einen Debug-Build Ihrer App erstellen, der den App Check-Debuganbieter anstelle eines echten Attestierungsanbieters verwendet.
Weitere Informationen finden Sie unter App Check mit dem Debugging-Anbieter auf Apple-Plattformen verwenden.