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 w 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.
W konsoli Firebase otwórz Zabezpieczenia > Sprawdzanie aplikacji.
Na karcie Aplikacje zarejestruj aplikacje, które mają korzystać z usługi App Check u dostawcy App Attest.
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 wartości 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 wartości TTL oznaczają, że aplikacja będzie częściej przeprowadzać atestowanie. Ponieważ proces atestowania aplikacji za każdym razem, gdy jest przeprowadzany, zwiększa opóźnienie w przypadku żądań sieciowych, krótki czas TTL może wpływać na wydajność aplikacji.
- Limit i koszt: krótsze wartości 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 TTL.
2. Dodawanie biblioteki App Check do aplikacji
Do instalacji zależności Firebase i do zarządzania nimi możesz używać menedżera pakietów Swift.
Po otwarciu projektu aplikacji wybierz w Xcode opcję File > Add Packages (Plik > Dodaj pakiety), dodaj repozytorium pakietu SDK Firebase na platformy Apple (
https://github.com/firebase/firebase-ios-sdk) i wybierz bibliotekę FirebaseAppCheck.W Xcode dodaj do aplikacji funkcję App Attest.
W pliku
.entitlementsprojektu ustaw środowisko App Attest naproduction.
3. Inicjowanie 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. Z drugiej strony, jeśli zauważysz podejrzane wykorzystanie zasobów aplikacji, możesz wcześniej włączyć egzekwowanie.
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, SQL Connect, Realtime Database, Cloud Firestore, Cloud Storage, Authentication, Google Identity na iOS, interfejsu Maps JavaScript API i interfejsu Places API (nowego).
- Monitoruj dane żądań App Check dotyczące Cloud Functions.
Włączanie egzekwowania 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 Firebase AI Logic, SQL Connect, Realtime Database, Cloud Firestore, Cloud Storage, Authentication, Google Identity for iOS, interfejsu Maps JavaScript API i interfejsu Places API (nowy).
- Włącz egzekwowanie 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.