Na tej stronie dowiesz się, jak włączyć App Check w aplikacji internetowej za pomocą dostawcy reCAPTCHA Enterprise. 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.
Pamiętaj, że App Check używa kluczy witryny opartych na wyniku reCAPTCHA Enterprise, które są niewidoczne dla użytkowników. Dostawca reCAPTCHA Enterprise nigdy nie będzie wymagać od użytkowników rozwiązywania testu.
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
Dodaj Firebase do projektu JavaScript, jeśli jeszcze tego nie zrobiono.
Otwórz sekcję reCAPTCHA Enterprise w konsoli Cloud i wykonaj te czynności:
- Jeśli pojawi się prośba o włączenie interfejsu reCAPTCHA Enterprise API, zrób to.
- Utwórz klucz typu Witryna. Musisz określić domeny, w których hostujesz aplikację internetową. Pozostaw opcję „Użyj wyzwania z polem wyboru” niezaznaczoną.
Zarejestruj aplikacje, aby używać App Check z dostawcą reCAPTCHA Enterprise w sekcji App Check w konsoli Firebase. Musisz podać klucz witryny uzyskany w poprzednim kroku.
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 biblioteka App Check odświeża tokeny mniej więcej w połowie czasu trwania TTL.
2. Dodawanie biblioteki App Check do aplikacji
Dodaj Firebase do aplikacji internetowej, jeśli jeszcze tego nie zrobiono. Pamiętaj, aby zaimportować bibliotekę App Check.
3. Zainicjuj App Check
Dodaj do aplikacji poniższy kod inicjalizacji, zanim uzyskasz dostęp do jakichkolwiek usług Firebase. Musisz przekazać klucz witryny reCAPTCHA Enterprise, który został utworzony w konsoli Cloud, do activate()
.
Web
import { initializeApp } from "firebase/app"; import { initializeAppCheck, ReCaptchaEnterpriseProvider } from "firebase/app-check"; const app = initializeApp({ // Your Firebase configuration object. }); // Create a ReCaptchaEnterpriseProvider instance using your reCAPTCHA Enterprise // site key and pass it to initializeAppCheck(). const appCheck = initializeAppCheck(app, { provider: new ReCaptchaEnterpriseProvider(/* reCAPTCHA Enterprise site key */), isTokenAutoRefreshEnabled: true // Set to true to allow auto-refresh. });
Web
firebase.initializeApp({ // Your Firebase configuration object. }); // Create a ReCaptchaEnterpriseProvider instance using your reCAPTCHA Enterprise // site key and pass it to activate(). const appCheck = firebase.appCheck(); appCheck.activate( new firebase.appCheck.ReCaptchaEnterpriseProvider( /* reCAPTCHA Enterprise site key */ ), true // Set to true to allow auto-refresh. );
Dalsze kroki
Po zainstalowaniu biblioteki App Check w aplikacji wdróż ją.
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 przypadkuData Connect, Firebase AI Logic, 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 wymuszania 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:Data Connect, Firebase AI Logic, 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. lokalnie 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 Używanie funkcji App Check z dostawcą debugowania w aplikacjach internetowych.
Uwaga dotycząca kosztów
App Check tworzy w Twoim imieniu ocenę, aby weryfikować token odpowiedzi użytkownika za każdym razem, gdy przeglądarka, w której działa Twoja aplikacja internetowa, odświeża swój App Checktoken. Za każdą ocenę utworzoną powyżej bezpłatnego limitu zostanie naliczona opłata. Szczegółowe informacje znajdziesz w cenniku reCAPTCHA.
Domyślnie aplikacja internetowa odświeża ten token 2 razy na godzinę. Aby kontrolować, jak często aplikacja odświeża App Check tokeny (a tym samym jak często tworzone są nowe oceny), skonfiguruj ich TTL.