Pierwsze kroki ze Sprawdzaniem aplikacji za pomocą reCAPTCHA Enterprise w aplikacjach internetowych

Z tej strony 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 może uzyskiwać dostęp do zasobów backendu projektu. Zobacz an Przegląd tej funkcji.

Pamiętaj, że App Check używa kluczy witryny opartych na wyniku reCAPTCHA Enterprise, które czynią je niewidocznymi dla użytkowników. Dostawca reCAPTCHA Enterprise nigdy nie będzie wymagać od użytkowników rozwiązania testu.

Jeśli Twój przypadek użycia wymaga funkcji reCAPTCHA Enterprise, które nie są zaimplementowane w App Check, lub jeśli chcesz używać App Check z własnym dostawcą niestandardowym , przeczytaj artykuł Implementowanie niestandardowego dostawcy App Check.

1. Skonfiguruj projekt w Firebase

  1. Jeśli jeszcze tego nie zrobisz, dodaj Firebase do projektu JavaScript.

  2. Otwórz sekcję reCAPTCHA Enterprise w konsoli Google Cloud i wykonaj te czynności:

    1. Jeśli pojawi się prośba o włączenie reCAPTCHA Enterprise API, zrób to.
    2. Utwórz klucz typu Witryna. Musisz określić domeny, w których hostujesz aplikację internetową. Pozostaw opcję „Użyj testu z polem wyboru” odznaczoną.
  3. W konsoli Firebase otwórz Zabezpieczenia > Sprawdzanie aplikacji.

  4. Na karcie Aplikacje zarejestruj aplikacje, aby używać App Check z dostawcą reCAPTCHA Enterprise. Musisz podać klucz witryny, który został uzyskany w konsoli Google Cloud.

    Zwykle musisz zarejestrować wszystkie aplikacje projektu, ponieważ po włączeniu egzekwowania w przypadku usługi Firebase tylko zarejestrowane aplikacje będą mogły uzyskiwać dostęp do zasobów backendu tej usługi.

  5. Opcjonalnie: w ustawieniach rejestracji aplikacji ustaw niestandardowy czas życia danych (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 czasy 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 czasy TTL oznaczają, że aplikacja będzie częściej przeprowadzać atestację. Ponieważ proces atestacji aplikacji dodaje opóźnienie do żądań sieciowych za każdym razem, gdy jest wykonywany, krótki czas TTL może wpłynąć na wydajność aplikacji.
    • Limit i koszt: krótsze czasy TTL i częste ponowne atestacje szybciej wyczerpują limit, a w przypadku płatnych usług mogą kosztować więcej. Zobacz Limity.

    Domyślny czas 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.

Skonfiguruj ustawienia zaawansowane (opcjonalnie)

Gdy użytkownik odwiedza Twoją aplikację internetową, reCAPTCHA Enterprise ocenia poziom ryzyka, jakie stwarza interakcja użytkownika, i zwraca wynik od 0,0 do 1,0 z przyrostem 0,1. Wynik 1,0 oznacza, że interakcja wiąże się z niewielkim ryzykiem i jest bardzo prawdopodobnie uzasadniona, natomiast wynik 0,0 oznacza wysokie ryzyko i duże prawdopodobieństwo oszustwa. App Check umożliwia skonfigurowanie progu ryzyka aplikacji , aby dostosować tolerancję na to ryzyko.

W większości przypadków zalecana jest domyślna wartość progu 0, 5. Jeśli Twój przypadek użycia wymaga dostosowania, możesz go skonfigurować w sekcji App Check w konsoli Firebase dla każdej aplikacji internetowej.

Szczegóły

App Check używa skonfigurowanego progu ryzyka aplikacji jako minimalnego wyniku reCAPTCHA Enterprise wymaganego, aby interakcja użytkownika została uznana za uzasadnioną. Wszystkie wyniki reCAPTCHA Enterprise ściśle mniejsze niż skonfigurowany próg zostaną odrzucone. Podczas dostosowywania progu ryzyka aplikacji pamiętaj o tych kwestiach:

  • Z 11 możliwych poziomów wyniku reCAPTCHA Enterprise przed dodaniem konta rozliczeniowego Cloud do projektu dostępne są tylko te 4 poziomy: 0,1, 0,3, 0,7 i 0,9. W tym czasie App Check będzie odpowiednio zezwalać tylko na wartości progu ryzyka aplikacji 0,1, 0,3, 0,5, 0,7, i 0,9. W większości przypadków nadal zalecana jest wartość progu ryzyka aplikacji 0,5.

    • Aby włączyć wszystkie 11 poziomów wyniku reCAPTCHA Enterprise, dodaj do projektu konto rozliczeniowe Google Cloud. Jednym ze sposobów jest przejście na abonament Blaze. Gdy to zrobisz, App Check umożliwi Ci skonfigurowanie dowolnych wartości progu ryzyka aplikacji z zakresu od 0,0 do 1,0 z przyrostem 0,1.

  • Aby monitorować rozkład wysokich i niskich wyników reCAPTCHA Enterprise w aplikacji internetowej, otwórz stronę reCAPTCHA Enterprise w Google Cloud konsoli i wybierz klucz witryny używany przez aplikację internetową.

  • Jeśli masz niską tolerancję ryzyka aplikacji, przesuń suwak w lewo , aby zwiększyć próg ryzyka aplikacji.

    • Nie zalecamy wartości 1,0, ponieważ to ustawienie może też uniemożliwić dostęp prawowitym użytkownikom, którzy nie spełniają tego wysokiego progu zaufania.
  • Jeśli masz wysoką tolerancję ryzyka aplikacji, przesuń suwak w prawo , aby zmniejszyć próg ryzyka aplikacji.

    • Nie zalecamy wartości 0,0, ponieważ to ustawienie wyłącza ochronę przed nadużyciami.

Więcej informacji znajdziesz w dokumentacji reCAPTCHA Enterprise.

2. Dodaj do aplikacji bibliotekę App Check

Jeśli jeszcze tego nie zrobisz, dodaj Firebase do swojej aplikacji internetowej. Pamiętaj, aby zaimportować bibliotekę App Check.

3. Zainicjuj App Check

Zanim uzyskasz dostęp do jakichkolwiek usług Firebase, dodaj do aplikacji ten kod inicjujący. Musisz przekazać do funkcji activate() klucz witryny reCAPTCHA Enterprise, który został 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

Gdy biblioteka App Check zostanie zainstalowana w aplikacji, wdróż ją.

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 pracy obecnych prawowitych 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:

Włącz egzekwowanie 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:

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. lokalnie podczas programowania lub w środowisku trybu ciągłej integracji (CI), możesz utworzyć kompilację do debugowania aplikacji, która zamiast prawdziwego dostawcy atestacji używa dostawcy debugowania App Check.

Zobacz Używanie App Check z dostawcą debugowania w aplikacjach internetowych.

Uwaga dotycząca kosztów

App Check tworzy ocenę w Twoim imieniu, aby zweryfikować token odpowiedzi użytkownika za każdym razem, gdy przeglądarka z uruchomioną aplikacją internetową odświeża token App Check. 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 będzie odświeżać ten token 2 razy na godzinę. Aby kontrolować, jak często aplikacja odświeża tokeny App Check (a tym samym, jak często tworzone są nowe oceny), skonfiguruj ich czas TTL.