Na tej stronie dowiesz się, jak włączyć App Check w aplikacji na urządzenia Apple przy użyciu wbudowanego dostawcy App Attest. Gdy włączysz App Check, będziesz mieć pewność, że tylko Twoja aplikacja będzie mieć dostęp do zasobów Firebase w projekcie. Zobacz omówienie tej funkcji.
App Check korzysta z App Attest, aby sprawdzać, czy żądania do usług Firebase pochodzą z Twojej autentycznej aplikacji. App Check obecnie nie używa App Attest do analizowania ryzyka oszustwa.
Jeśli chcesz używać App Check z własnym dostawcą niestandardowym, zapoznaj się z artykułem Implementowanie niestandardowego dostawcy App Check.
1. Konfigurowanie projektu Firebase
Aby korzystać z App Attest, musisz mieć Xcode w wersji 12.5 lub nowszej.
Dodaj Firebase do projektu Apple, jeśli jeszcze tego nie zrobiono.
Zarejestruj aplikacje, aby korzystać z App Check u dostawcy App Attest w sekcji App Check w konsoli Firebase.
Zwykle musisz zarejestrować wszystkie aplikacje w projekcie, ponieważ po włączeniu egzekwowania zasad w przypadku usługi Firebase tylko zarejestrowane aplikacje będą mogły uzyskiwać dostęp do zasobów backendu tej usługi.
Opcjonalnie: w ustawieniach rejestracji aplikacji ustaw niestandardowy czas życia danych (TTL) dla tokenów App Check wydawanych przez dostawcę. Możesz ustawić czas życia na dowolną wartość z zakresu od 30 minut do 7 dni. Zmieniając tę wartość, pamiętaj o tych kompromisach:
- Bezpieczeństwo: krótsze czasy TTL zapewniają większe bezpieczeństwo, ponieważ skracają okres, w którym wyciekły lub przechwycony token może zostać wykorzystany przez atakującego.
- Wydajność: krótsze czasy TTL oznaczają, że aplikacja będzie częściej przeprowadzać atestowanie. Proces potwierdzania aplikacji za każdym razem, gdy jest wykonywany, zwiększa opóźnienie w przypadku żądań sieciowych, dlatego krótki czas TTL może mieć wpływ na wydajność aplikacji.
- Limit i koszt: krótsze czasy TTL i częste ponowne potwierdzanie wyczerpują limit szybciej, a w przypadku usług płatnych mogą generować wyższe koszty. Zobacz Limity przydziału i limity systemu.
Domyślna wartość TTL wynosząca 1 godzinę jest odpowiednia w przypadku większości aplikacji. Pamiętaj, że App Check biblioteka odświeża tokeny mniej więcej w połowie czasu trwania TTL.
2. Dodawanie biblioteki App Check do aplikacji
Dodaj do pliku
Podfile
projektu zależność App Check:pod 'FirebaseAppCheck'
Możesz też użyć menedżera pakietów Swift.
Upewnij się też, że używasz najnowszej wersji wszystkich innych pakietów SDK Firebase, od których zależy Twoja aplikacja.
Uruchom
pod install
i otwórz utworzony plik.xcworkspace
.W Xcode dodaj do aplikacji funkcję App Attest.
W pliku
.entitlements
projektu ustaw środowisko App Attest naproduction
.
3. Zainicjuj App Check
Zanim zaczniesz korzystać z innych pakietów SDK Firebase, musisz zainicjować App Check.
Najpierw napisz implementację AppCheckProviderFactory
. Szczegóły implementacji zależą od konkretnego przypadku użycia.
Jeśli na przykład masz tylko użytkowników korzystających z iOS 14 lub nowszego, możesz zawsze tworzyć obiekty AppAttestProvider
:
Swift
Uwaga: ten produkt Firebase nie jest dostępny na urządzeniach z watchOS.
class YourSimpleAppCheckProviderFactory: NSObject, AppCheckProviderFactory { func createProvider(with app: FirebaseApp) -> AppCheckProvider? { return AppAttestProvider(app: app) } }
Objective-C
Uwaga: ten produkt Firebase nie jest dostępny na urządzeniach z watchOS.
@interface YourSimpleAppCheckProviderFactory : NSObject <FIRAppCheckProviderFactory> @end @implementation YourSimpleAppCheckProviderFactory - (nullable id<FIRAppCheckProvider>)createProviderWithApp:(nonnull FIRApp *)app { return [[FIRAppAttestProvider alloc] initWithApp:app]; } @end
Możesz też tworzyć obiekty AppAttestProvider
w systemie iOS 14 i nowszym, a w starszych wersjach używać DeviceCheckProvider
:
Swift
Uwaga: ten produkt Firebase nie jest dostępny na urządzeniach z watchOS.
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
Uwaga: ten produkt Firebase nie jest dostępny na urządzeniach z watchOS.
@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
Po zaimplementowaniu klasy AppCheckProviderFactory
skonfiguruj App Check tak, aby z niej korzystać:
Swift
Uwaga: ten produkt Firebase nie jest dostępny na urządzeniach z watchOS.
let providerFactory = YourAppCheckProviderFactory() AppCheck.setAppCheckProviderFactory(providerFactory) FirebaseApp.configure()
Objective-C
Uwaga: ten produkt Firebase nie jest dostępny na urządzeniach z watchOS.
YourAppCheckProviderFactory *providerFactory = [[YourAppCheckProviderFactory alloc] init]; [FIRAppCheck setAppCheckProviderFactory:providerFactory]; [FIRApp configure];
Dalsze kroki
Po zainstalowaniu biblioteki App Check w aplikacji zacznij rozpowszechniać zaktualizowaną aplikację wśród użytkowników.
Zaktualizowana aplikacja kliencka zacznie wysyłać tokeny App Check wraz z każdym żądaniem wysyłanym do Firebase, ale usługi Firebase nie będą wymagać, aby tokeny były ważne, dopóki nie włączysz egzekwowania w sekcji App Check konsoli Firebase.
Monitorowanie danych i włączanie egzekwowania
Zanim jednak włączysz egzekwowanie, upewnij się, że nie zakłóci to działania obecnych, legalnych użytkowników. Jeśli jednak zauważysz podejrzane wykorzystanie zasobów aplikacji, możesz włączyć egzekwowanie wcześniej.
Aby podjąć decyzję, możesz sprawdzić dane App Check dotyczące usług, z których korzystasz:
- Monitoruj App Check dane o żądaniach w przypadkuFirebase AI Logic, Data Connect, Realtime Database, Cloud Firestore, Cloud Storage, Authentication, Google Identity na iOS, interfejsu Maps JavaScript API i interfejsu Places API (nowy).
- Monitoruj dane żądań App Check dotyczące Cloud Functions.
Włączanie wymuszania weryfikacji dwuetapowej App Check
Gdy zrozumiesz, jak App Check wpłynie na użytkowników, i będziesz gotowy(-a) do kontynuowania, możesz włączyć egzekwowanie App Check:
- Włącz App Check egzekwowanie w przypadku tych usług:Firebase AI Logic, Data Connect, Realtime Database, Cloud Firestore, Cloud Storage, Authentication, Google Identity for iOS, Maps JavaScript API i Places API (New).
- Włącz wymuszanie App Check w jednostce organizacyjnej Cloud Functions.
Używanie App Check w środowiskach debugowania
Jeśli po zarejestrowaniu aplikacji w App Check chcesz uruchomić ją w środowisku, które App Check zwykle nie klasyfikuje jako prawidłowe, np. w symulatorze podczas programowania lub w środowisku ciągłej integracji (CI), możesz utworzyć wersję debugowania aplikacji, która używa dostawcy debugowania App Check zamiast prawdziwego dostawcy atestów.
Zobacz Korzystanie z App Check z dostawcą debugowania na platformach Apple.