Na tej stronie dowiesz się, jak włączyć App Check w aplikacji Apple za pomocą wbudowanego dostawcy App Attest. Gdy włączysz App Check, pomożesz zapewnić, że tylko Twoja aplikacja będzie miała dostęp do zasobów Firebase w projekcie. Zobacz przegląd tej funkcji.
App Check używa 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 aplikacji na urządzenia Apple, jeśli nie korzystasz w nim jeszcze z tej usługi.
W konsoli Firebase otwórz Zabezpieczenia > Sprawdzanie aplikacji.
Na karcie Aplikacje zarejestruj aplikacje, aby używać App Check z dostawcą App Attest.
Zwykle musisz zarejestrować wszystkie aplikacje w projekcie, ponieważ po włączeniu egzekwowania w przypadku usługi Firebase tylko zarejestrowane aplikacje będą mogły uzyskać dostęp do zasobów backendu usługi.
Opcjonalnie: ustaw czas życia danych (TTL) tokena.
W ustawieniach rejestracji aplikacji ustaw niestandardowy czas życia (TTL) tokenów App Check wydawanych przez dostawcę. Możesz ustawić TTL na dowolną wartość 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ą czas, w którym haker może wykorzystać przejęty lub przechwycony token.
- Wydajność: krótsze wartości TTL oznaczają, że aplikacja będzie częściej przeprowadzać atestację. Proces atestacji aplikacji zwiększa czas oczekiwania na żądania sieciowe przy każdym wykonaniu, więc krótki czas TTL może wpływać na wydajność aplikacji.
- Limit i koszt: krótsze wartości TTL i częste ponowne atestowanie szybciej wyczerpują limit, a w przypadku usług płatnych mogą potencjalnie kosztować więcej. Zobacz Limity i ograniczenia.
Domyślna wartość TTL wynosząca 1 godzinę jest odpowiednia dla większości aplikacji. Pamiętaj, że biblioteka App Check odświeża tokeny po upływie mniej więcej połowy czasu TTL.
2. Dodawanie biblioteki App Check do aplikacji
Do instalowania zależności Firebase i zarządzania nimi używaj Menedżera pakietów Swift.
W Xcode, gdy projekt aplikacji jest otwarty, kliknij 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. Zainicjuj App Check
Zanim zaczniesz korzystać z innych pakietów SDK Firebase, musisz zainicjować App Check.
Najpierw napisz implementację interfejsu AppCheckProviderFactory. Szczegóły implementacji zależą od konkretnego przypadku użycia.
Jeśli na przykład masz tylko użytkowników z iOS 14 lub nowszym, możesz po prostu zawsze tworzyć obiekty AppAttestProvider:
Swift
Uwaga: ta usługa Firebase nie jest dostępna na urządzeniach docelowych z systemem watchOS.
class YourSimpleAppCheckProviderFactory: NSObject, AppCheckProviderFactory { func createProvider(with app: FirebaseApp) -> AppCheckProvider? { return AppAttestProvider(app: app) } }
Objective-C
Uwaga: ta usługa Firebase nie jest dostępna na urządzeniach docelowych z systemem watchOS.
@interface YourSimpleAppCheckProviderFactory : NSObject <FIRAppCheckProviderFactory> @end @implementation YourSimpleAppCheckProviderFactory - (nullable id<FIRAppCheckProvider>)createProviderWithApp:(nonnull FIRApp *)app { return [[FIRAppAttestProvider alloc] initWithApp:app]; } @end
Możesz też utworzyć obiekty AppAttestProvider na urządzeniach z systemem iOS 14 lub nowszym i wrócić do DeviceCheckProvider we wcześniejszych wersjach:
Swift
Uwaga: ta usługa Firebase nie jest dostępna na urządzeniach docelowych z systemem 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: ta usługa Firebase jest niedostępna na urządzeniach docelowych z systemem 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, aby jej używać:
Swift
Uwaga: ta usługa Firebase nie jest dostępna na urządzeniach docelowych z systemem watchOS.
let providerFactory = YourAppCheckProviderFactory() AppCheck.setAppCheckProviderFactory(providerFactory) FirebaseApp.configure()
Objective-C
Uwaga: ta usługa Firebase nie jest dostępna na urządzeniach docelowych z systemem 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 prawidłowe, dopóki nie włączysz egzekwowania w sekcji App Check konsoli Firebase.
Monitorowanie wskaźników i włączanie egzekwowania zasad
Zanim jednak włączysz egzekwowanie, upewnij się, że nie zakłóci to działania obecnych, uprawnionych użytkowników. Jeśli jednak zauważysz podejrzane wykorzystanie zasobów aplikacji, możesz wcześniej włączyć egzekwowanie.
Aby podjąć tę decyzję, możesz sprawdzić dane App Check dotyczące usług, z których korzystasz:
- Monitorowanie danych o żądaniach App Check w przypadku Firebase AI Logic, SQL Connect, Realtime Database, Cloud Firestore, Cloud Storage, Authentication, Google Identity na iOS, Maps JavaScript API i Places API (nowego).
- Monitorowanie danych żądań App Check dla Cloud Functions.
Włącz egzekwowanie zasad App Check
Gdy zrozumiesz, jak App Check wpłynie na użytkowników, i będziesz gotowy(-a) do dalszych działań, możesz włączyć egzekwowanie App Check:
- Włącz egzekwowanie zasad App Check w przypadku: Firebase AI Logic, SQL Connect, Realtime Database, Cloud Firestore, Cloud Storage, Authentication, Google Identity na iOS, Maps JavaScript API i Places API (nowy).
- Włącz egzekwowanie App Check dla: 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 trybu ciągłej integracji (CI), możesz utworzyć kompilację do 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.