Na tej stronie dowiesz się, jak włączyć App Check w aplikacji Apple przy użyciu wbudowanego dostawcy App Attest. Gdy włączysz App Check, pomożesz zapewnić , że tylko Twoja aplikacja będzie mieć dostęp do zasobów Firebase w Twoim projekcie. Zobacz przegląd tej funkcji.
App Check korzysta z App Attest aby sprawdzić, czy żądania do usług Firebase pochodzą z Twojej autentycznej aplikacji. App Check nie używa obecnie App Attest do analizowania ryzyka oszustwa.
Jeśli chcesz używać App Check z własnym dostawcą niestandardowym, przeczytaj artykuł Implementowanie niestandardowego dostawcy App Check.
1. Konfigurowanie projektu w Firebase
Aby korzystać z App Attest, musisz mieć Xcode w wersji 12.5 lub nowszej.
Jeśli jeszcze tego nie zrobisz, dodaj Firebase do projektu Apple.
W konsoli Firebase otwórz Zabezpieczenia > Sprawdzanie aplikacji.
Na karcie Aplikacje zarejestruj aplikacje, aby korzystać z 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ą mieć dostęp do zasobów backendu tej usługi.
Opcjonalnie: w ustawieniach rejestracji aplikacji ustaw niestandardowy czas życia (TTL) tokenów wydawanych przez dostawcę.App Check Możesz ustawić TTL na dowolną wartość od 30 minut do 7 dni. Podczas zmiany tej wartości pamiętaj o tych kompromisach:
- Bezpieczeństwo: krótsze TTL zapewniają większe bezpieczeństwo, ponieważ zmniejszają okno, w którym wyciekły lub przechwycony token może zostać wykorzystany przez atakującego.
- Wydajność: krótsze TTL oznaczają, że aplikacja będzie częściej przeprowadzać atestowanie. Ponieważ proces atestowania aplikacji dodaje opóźnienie do żądań sieciowych za każdym razem, gdy jest wykonywany, krótki TTL może wpłynąć na wydajność aplikacji.
- Limit i koszt: krótsze TTL i częste ponowne atestowanie szybciej wyczerpują limit, a w przypadku płatnych usług mogą kosztować więcej. Zobacz Limity.
Domyślny TTL wynoszący 1 godzinę jest odpowiedni dla większości aplikacji. Pamiętaj, że biblioteka App Check 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 Apple platforms (
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 używać 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 po prostu zawsze tworzyć obiekty AppAttestProvider:
Swift
Uwaga: ta usługa Firebase nie jest dostępna w przypadku celów 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 w przypadku celów 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 iOS 14 i nowszych wersjach oraz wracać do DeviceCheckProvider w starszych wersjach:
Swift
Uwaga: ta usługa Firebase nie jest dostępna w przypadku celów 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 nie jest dostępna w przypadku celów 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ło:
Swift
Uwaga: ta usługa Firebase nie jest dostępna w przypadku celów watchOS.
let providerFactory = YourAppCheckProviderFactory() AppCheck.setAppCheckProviderFactory(providerFactory) FirebaseApp.configure()
Objective-C
Uwaga: ta usługa Firebase nie jest dostępna w przypadku celów watchOS.
YourAppCheckProviderFactory *providerFactory = [[YourAppCheckProviderFactory alloc] init]; [FIRAppCheck setAppCheckProviderFactory:providerFactory]; [FIRApp configure];
Dalsze kroki
Gdy biblioteka App Check zostanie zainstalowana w aplikacji, zacznij rozpowszechniać zaktualizowaną aplikację wśród użytkowników.
Zaktualizowana aplikacja kliencka zacznie wysyłać App Check tokeny 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 w konsoli Firebase.
Monitorowanie danych i włączanie egzekwowania
Zanim włączysz egzekwowanie, upewnij się, że nie zakłóci to działania dotychczasowych użytkowników. Z drugiej strony, jeśli zauważysz podejrzane korzystanie z zasobów aplikacji, możesz włączyć egzekwowanie wcześniej.
Aby ułatwić podjęcie decyzji, możesz sprawdzić dane App Check dotyczące używanych usług:
- Monitoruj dane żądań w przypadku Firebase AI Logic, SQL Connect, Realtime Database, Cloud Firestore, Cloud Storage, Authentication, Google Identity for iOS, Maps JavaScript API i Places API (nowa wersja).App Check
- Monitoruj dane żądań App Check w przypadku 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 egzekwowanie w przypadku Firebase AI Logic, SQL Connect, Realtime Database, Cloud Firestore, Cloud Storage, Authentication, Google Identity for iOS, Maps JavaScript API i Places API (nowa wersja).App Check
- Włącz egzekwowanie w przypadku Cloud Functions.App Check
Używanie App Check w środowiskach debugowania
Jeśli po zarejestrowaniu aplikacji w App Check chcesz uruchomić swoją aplikację 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ć kompilację debugowania aplikacji, która zamiast prawdziwego dostawcy atestowania używa dostawcy debugowania App Check.
Zobacz Używanie App Check z dostawcą debugowania na platformach Apple.