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, tragen Sie dazu bei, dass nur Ihre App auf die Firebase-Ressourcen Ihres Projekts zugreifen kann. Ü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 Betrugsrisiken zu analysieren.
Wenn Sie App Check mit Ihrem eigenen benutzerdefinierten Anbieter verwenden möchten, lesen Sie den Abschnitt Benutzerdefinierten App Check-Anbieter implementieren.
1. Das Firebase-Projekt einrichten
Sie benötigen Xcode 12.5 oder höher, um App Attest zu verwenden.
Fügen Sie Ihrem Apple-Projekt Firebase hinzu, falls noch nicht geschehen.
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 nach der Aktivierung der Erzwingung für ein Firebase-Produkt nur registrierte Apps auf die Backend-Ressourcen des Produkts zugreifen können.
Optional: Legen Sie in den Einstellungen für die App-Registrierung eine benutzerdefinierte Gültigkeitsdauer (Time to Live, 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 geleaktes oder abgefangenes Token von einem Angreifer missbraucht werden kann.
- Leistung: Bei kürzeren TTLs wird die Gerätebestätigung in Ihrer App häufiger ausgeführt. Da das App-Attestierungsverfahren bei jeder Ausführung die Latenz von Netzwerkanfragen erhöht, kann sich eine kurze TTL auf die Leistung Ihrer App auswirken.
- Kontingent und Kosten: Kürzere TTLs und häufige erneute Attestierungen verbrauchen Ihr Kontingent schneller und können bei kostenpflichtigen Diensten zu höheren Kosten führen. Weitere Informationen finden Sie unter Kontingente und Limits.
Die Standard-TTL von 1 Stunde ist für die meisten Apps angemessen. Die App Check-Bibliothek aktualisiert Tokens etwa nach der Hälfte der TTL-Dauer.
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 Swift Package Manager verwenden.
Achten Sie darauf, dass Sie auch die neueste Version aller anderen Firebase SDKs verwenden, von denen Sie abhängig sind.
Führen Sie
pod install
aus und öffnen Sie die erstellte Datei.xcworkspace
.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
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 nicht für watchOS-Ziele 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
Alternativ können Sie AppAttestProvider
-Objekte unter iOS 14 und höher erstellen und in 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 so, dass sie verwendet wird:
Swift
Hinweis:Dieses Firebase-Produkt ist nicht für watchOS-Ziele 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 Ihrer App installiert ist, können Sie die aktualisierte App an Ihre Nutzer verteilen.
Die aktualisierte Client-App sendet App Check-Tokens zusammen mit jeder Anfrage an Firebase. Bei Firebase-Produkten müssen die Tokens jedoch erst gültig sein, wenn Sie die Erzwingung im Bereich App Check der Firebase Console aktivieren.
Messwerte im Blick behalten und Durchsetzung aktivieren
Bevor Sie die Erzwingung aktivieren, sollten Sie jedoch sicherstellen, dass dadurch keine bestehenden legitimen Nutzer beeinträchtigt werden. Wenn Sie jedoch 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 von Ihnen verwendeten Dienste ansehen:
- App Check-Anfragemesswerte für Data Connect, Firebase AI Logic, Realtime Database, Cloud Firestore, Cloud Storage, Authentication, Google Identity für iOS, Maps JavaScript API und Places API (New) im Blick behalten.
- App Check-Anfragemesswerte für Cloud Functions überwachen:
App Check-Erzwingung aktivieren
Wenn Sie wissen, wie sich App Check auf Ihre Nutzer auswirkt, und Sie bereit sind, fortzufahren, können Sie die Erzwingung von App Check aktivieren:
- App Check-Durchsetzung aktivieren für Data Connect, Firebase AI Logic, Realtime Database, Cloud Firestore, Cloud Storage, Authentication, Google Identity for iOS, Maps JavaScript API und Places API (neu).
- Aktivieren Sie die Erzwingung von App Check für Cloud Functions.
App Check in Debugging-Umgebungen verwenden
Wenn Sie Ihre App nach der Registrierung für App Check in einer Umgebung ausführen möchten, die normalerweise nicht als gültig eingestuft wird, z. B. in einem Simulator während der Entwicklung oder in einer Continuous Integration-Umgebung (CI), können Sie einen Debug-Build Ihrer App erstellen, der anstelle eines echten Attestierungsanbieters den App Check-Debug-Anbieter verwendet.App Check
Weitere Informationen finden Sie unter App Check mit dem Debugging-Anbieter auf Apple-Plattformen verwenden.