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

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 może uzyskiwać dostęp do zasobów backendu projektu. 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 Twój przypadek użycia wymaga funkcji reCAPTCHA Enterprise, które nie są zaimplementowane przez App Check, lub 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

  1. Dodaj Firebase do projektu JavaScript, jeśli nie korzystasz w nim jeszcze z tej usługi.

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

    1. Jeśli pojawi się prośba o włączenie interfejsu 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 wyzwania z polem wyboru” niezaznaczoną.
  3. 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.

  4. 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 App Check biblioteka odświeża tokeny mniej więcej w połowie czasu trwania 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 w zakresie 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 związanego z aplikacją, dzięki czemu możesz dostosować tolerancję tego ryzyka.

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

Szczegóły

App Check używa skonfigurowanego progu ryzyka aplikacji jako minimalnej oceny reCAPTCHA Enterprise wymaganej, aby interakcja użytkownika została uznana za uzasadnioną. Wszystkie wyniki reCAPTCHA Enterprise, które są ściśle mniejsze od skonfigurowanego progu, zostaną odrzucone. Podczas dostosowywania progu ryzyka aplikacji pamiętaj o tych kwestiach:

  • Z 11 możliwych poziomów oceny reCAPTCHA Enterprise przed dodaniem do projektu konta rozliczeniowego Google Cloud 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 progowe ryzyka aplikacji wynoszące 0,1, 0,3, 0,5, 0,7 i 0,9. W większości przypadków nadal zalecana jest wartość progu ryzyka aplikacji wynosząca 0,5.

    • Aby włączyć wszystkie 11 poziomów wyników 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 progowych ryzyka aplikacji w zakresie od 0,0 do 1,0 z przyrostem co 0,1.

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

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

    • Nie zalecamy wartości 1,0, ponieważ to ustawienie może też potencjalnie odmawiać dostępu prawowitym użytkownikom, którzy nie spełniają tego wysokiego progu zaufania.
  • Jeśli masz wysoką tolerancję ryzyka związanego z aplikacjami, przesuń suwak w prawo, aby obniżyć próg ryzyka związanego z aplikacjami.

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

Więcej informacji znajdziesz w dokumentacji reCAPTCHA Enterprise.

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. 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:

Włączanie wymuszania App Check

Gdy zrozumiesz, jak App Check wpłynie na Twoich 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ć 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 czas życia.