Na tej stronie znajdziesz instrukcje włączania funkcji App Check w aplikacji internetowej przy użyciu dostawcy reCAPTCHA Enterprise. Gdy włączysz App Check, zapewnisz, że tylko Twoja aplikacja będzie mieć dostęp do zasobów Firebase w Twoim projekcie. Zapoznaj się z omówieniem tej funkcji.
Pamiętaj, że App Check używa kluczy witryny opartych na wyniku reCAPTCHA Enterprise, co powoduje, że są one niewidoczne dla użytkowników. Usługa reCAPTCHA Enterprise nie będzie wymagać od użytkowników rozwiązywania zadań w żadnym momencie.
Jeśli chcesz używać usługi App Check z własnym niestandardowym dostawcą, zapoznaj się z artykułem Wdrażanie niestandardowego dostawcy usługi App Check.
1. Konfigurowanie projektu Firebase
Dodaj Firebase do projektu JavaScriptu, 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 pole wyboru do weryfikacji” odznaczoną.
Zarejestruj aplikacje, aby używać usługi App Check u dostawcy reCAPTCHA Enterprise w sekcji App Check konsoli Firebase. Musisz podać klucz witryny uzyskany w poprzednim kroku.
Zwykle trzeba zarejestrować wszystkie aplikacje projektu, ponieważ po włączeniu egzekwowania zasad dotyczących 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 wydanych przez dostawcę. Wartość TTL możesz ustawić na dowolną wartość od 30 minut do 7 dni. Podczas zmiany tej wartości należy wziąć pod uwagę te kompromisy:
- Bezpieczeństwo: krótsze czasy TTL zapewniają większą ochronę, ponieważ zmniejszają czas, w którym atakujący może wykorzystać wyciek lub przechwycenie tokena.
- Wydajność: krótsze czasy TTL oznaczają, że aplikacja będzie częściej przeprowadzać weryfikację. Ponieważ proces uwierzytelniania aplikacji zwiększa opóźnienie żądań sieciowych przy każdym jego wykonaniu, krótki czas trwania TTL może mieć wpływ na działanie aplikacji.
- Limit i koszt: krótsze okresy ważności i częste ponowne uwierzytelnianie powodują szybsze wyczerpywanie limitu, a w przypadku płatnych usług mogą też zwiększać koszty. Zobacz Limity i kwoty.
Domyślna wartość TTL, czyli 1 godzina, jest odpowiednia w przypadku większości aplikacji. Pamiętaj, że biblioteka App Check odświeża tokeny co około połowę czasu trwania wartości TTL.
2. Dodawanie biblioteki App Check do aplikacji
Dodaj Firebase do swojej aplikacji internetowej, jeśli jeszcze tego nie zrobiono. Pamiętaj, aby zaimportować bibliotekę App Check.
3. Inicjowanie App Check
Zanim zaczniesz korzystać z usług Firebase, dodaj do aplikacji poniższy kod inicjalizacji. Musisz przekazać kluczowi activate()
klucz witryny reCAPTCHA Enterprise utworzony w konsoli Cloud.
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żdą prośbą wysyłaną do Firebase, ale usługi Firebase nie będą wymagać, aby tokeny były prawidłowe, dopóki nie włączysz wymuszania w sekcji App Check w konsoli Firebase.
Monitorowanie danych i włączanie egzekwowania
Zanim jednak włączysz egzekwowanie zasad, upewnij się, że nie zakłóci to działania dotychczasowych prawidłowych użytkowników. Jeśli jednak zauważysz podejrzane wykorzystanie zasobów aplikacji, możesz wcześniej włączyć egzekwowanie.
Aby ułatwić sobie podjęcie decyzji, możesz sprawdzić dane App Check dotyczące usług, których używasz:
- Monitorowanie danych o żądaniach App Check w przypadku interfejsów Data Connect, Vertex AI in Firebase, Realtime Database, Cloud Firestore, Cloud Storage, Authentication, Google Identity for iOS, Maps JavaScript API i Places API (nowy).
- Monitoruj dane App Check dotyczące żądań w przypadku Cloud Functions.
Włącz wymuszanie App Check
Gdy zrozumiesz, jak App Check wpłynie na użytkowników i będziesz gotowy do dalszych działań, możesz włączyć egzekwowanie App Check:
- Włącz wymuszanie App Check w przypadku interfejsów Data Connect, Vertex AI in Firebase, Realtime Database, Cloud Firestore, Cloud Storage, Authentication, Google Identity for iOS, Map JavaScript API i Places API (nowy).
- Włącz wymuszanie App Check w Cloud Functions.
Używanie App Check w środowiskach debugowania
Jeśli po zarejestrowaniu aplikacji w usłudze App Check chcesz uruchomić ją w środowisku, które App Check normalnie nie uzna za ważne, np. lokalnie podczas tworzenia lub w środowisku ciągłej integracji (CI), możesz utworzyć wersję debugową aplikacji, która używa dostawcy debugowania App Check zamiast prawdziwego dostawcy uwierzytelniania.
Zapoznaj się z artykułem Korzystanie z App Check w ramach usługi debugowania w aplikacjach internetowych.
Uwaga dotycząca kosztów
App Check tworzy ocenę w Twoim imieniu, aby weryfikować token odpowiedzi użytkownika za każdym razem, gdy przeglądarka uruchamiająca Twoją aplikację internetową odświeża token App Check. Za każdą ocenę utworzoną po przekroczeniu bezpłatnego limitu opłat zostanie naliczona opłata. Szczegółowe informacje znajdziesz w cenniku reCAPTCHA.
Domyślnie aplikacja internetowa odświeża ten token 2 razy na 1 godzinę. Aby kontrolować, jak często aplikacja odświeża tokeny App Check (a tym samym, jak często tworzy nowe oceny), skonfiguruj wartość TTL.