Dowiedz się więcej o używaniu kluczy interfejsu API dla Firebase i zarządzaniu nimi

Klucz interfejsu API to unikalny ciąg znaków używany do kierowania żądań do Firebase przy interakcji z Firebase i usługami Google. Na tej stronie opisujemy podstawowe informacje o kluczach interfejsu API oraz o sprawdzonych metodach korzystania i zarządzanie kluczami interfejsu API za pomocą aplikacji Firebase.

Ogólne informacje o kluczach interfejsu API i Firebase

Klucze interfejsu API dla Firebase różnią się od typowych kluczy interfejsu API

W przeciwieństwie do typowego zastosowania kluczy API klucze interfejsu API dla usług Firebase są nie służy do kontrolowania dostępu do zasobów backendu; jest to możliwe tylko w przypadku, za pomocą reguł zabezpieczeń Firebase (aby kontrolować, którzy użytkownicy mają dostęp do zasobów), oraz Sprawdzanie aplikacji Firebase (do kontrolowania, które aplikacje mają dostęp do zasobów).

Zwykle musisz szybko zabezpieczyć klucze interfejsu API (na przykład za pomocą usługi Vault lub ustawiając klucze jako zmienne środowiskowe); jednak Klucze interfejsu API usług Firebase można uwzględnić w kodzie lub w konfiguracji meldowanej .

Chociaż klucze interfejsu API usług Firebase można bezpiecznie umieszczać w kodzie, sprawdzać i stosować odpowiednie ograniczenia i ograniczenia.

Tworzę klucze interfejsu API

Projekt Firebase może mieć wiele kluczy interfejsu API, ale każdy z nich może być powiązane z jednym projektem Firebase.

Klucze interfejsu API utworzone automatycznie przez Firebase dla aplikacji Firebase

Firebase automatycznie tworzy klucze interfejsu API dla Twojego projektu, gdy wykonasz dowolną z :

  • Utwórz projekt Firebase > Browser key utworzony automatycznie
  • Utwórz aplikację Firebase Apple > iOS key utworzony automatycznie
  • Utwórz aplikację Firebase na Androida > Android key utworzony automatycznie
.

Możesz też utworzyć własne klucze interfejsu API w Google Cloud Console, np. do programowania lub debugowania. Więcej informacji o , kiedy możemy ją zalecić w dalszej części tej strony.

Znajdowanie kluczy interfejsu API

Wszystkie klucze interfejsu API projektu możesz wyświetlać i zarządzać nimi w Interfejsy API Usługi > Dane logowania w konsoli Google Cloud.

Możesz też sprawdzić, który klucz interfejsu API jest automatycznie dopasowywany do aplikacji Firebase. Według wszystkie aplikacje Firebase działające na tej samej platformie (Apple – Android lub internet) będą używać tego samego klucza interfejsu API.

  • Aplikacje Apple Apple – znajdź w Firebase automatycznie dopasowany klucz interfejsu API .config, GoogleService-Info.plist, w API_KEY.

  • Aplikacje Firebase na Androida – znajdź automatycznie dopasowany klucz interfejsu API w pliku konfiguracyjnego Firebase google-services.json w current_key.

  • Aplikacje internetowe Firebase – znajdź automatycznie dopasowany klucz interfejsu API w Firebase config w polu apiKey.

Używanie klucza API

Klucze interfejsu API służą do identyfikowania projektu Firebase podczas interakcji z usługą usług Firebase/Google. Służą one do powiązania żądań do interfejsu API w ramach Twojego projektu na potrzeby limitów i płatności. Przydają się też, do danych publicznych.

Możesz na przykład bezpośrednio użyć klucza interfejsu API, przesyłając jego wartość do funkcji REST wywołanie interfejsu API jako parametr zapytania, Ten przykład pokazuje, jak możesz wysłać żądanie do Dynamic Links API Shortener:

POST https://firebasedynamiclinks.googleapis.com/v1/shortLinks?key=API_KEY

Gdy aplikacja wywołuje interfejs Firebase API, który wymaga podania klucza interfejsu API. przez klienta mobilnego/internetowego, aplikacja automatycznie Plik lub obiekt konfiguracyjny Firebase dla klucza interfejsu API projektu. Możesz jednak dostarczania kluczy interfejsu API aplikacji za pomocą innego mechanizmu, w tym środowiska zmiennych.

Przejrzyj klucze interfejsu API i zastosuj do nich odpowiednie ograniczenia (zalecane)

Chociaż nie trzeba traktować klucza interfejsu API usług Firebase jako tajne, użytkownik powinien sprawdzić i zastosować ograniczenia zgodnie z .

.

Sprawdź interfejsy API automatycznie dodane do listy dozwolonych kluczy interfejsu Firebase API

Gdy Firebase utworzy klucz interfejsu API w projekcie, automatycznie dodamy do niego klucz „Ograniczenia interfejsów API” do danego klucza. Interfejsy API dodane do tej listy dozwolonych to interfejsy API Firebase, które wymaga od klienta podania klucza interfejsu API wraz z wywołaniem. Pamiętaj, że większość Interfejsy API wymagane do korzystania z usług Firebase nie muszą być do listy dozwolonych dla kluczy interfejsu API.

Ponieważ Firebase dodaje potrzebne interfejsy API do wszystkich usług Firebase, lista dozwolonych dla klucza interfejsu API może zawierać interfejsy API usług, których nie używasz. Możesz usunąć interfejsy API z listy dozwolonych, ale musisz bardzo uważać, aby nie usuń interfejsy API wymagane przez Firebase i usługi Firebase, których używasz (zobacz lista interfejsów API związanych z Firebase które muszą znajdować się na liście dozwolonych w przypadku poszczególnych usług / produktów). W przeciwnym razie będzie zwracał błędy przy wykonywaniu wywołań usług Firebase.

Zmniejsz limit, jeśli korzystasz z uwierzytelniania opartego na haśle

Jeśli używasz uwierzytelniania Firebase opartego na haśle i ktoś przejmie dostęp do Twojego interfejsu API klucza dostępu, nie będą mieli dostępu do żadnej bazy danych projektu Firebase lub z Cloud Storage, jeśli są one chronione przez Reguły zabezpieczeń Firebase. Może jednak użyć Twojego klucza interfejsu API, aby uzyskać dostęp punktów końcowych uwierzytelniania Firebase i wysyłać żądania uwierzytelniania do do swojego projektu.

Aby zminimalizować ryzyko, że ktoś niewłaściwie użyje klucza interfejsu API do możesz podjąć próbę ataku brute-force, możesz zwiększyć domyślny limit identitytoolkit.googleapis.com punktów końcowych do odzwierciedlenia normalnego ruchu oczekiwania wobec aplikacji. Pamiętaj, że jeśli zmniejszysz ten limit, a aplikacja nagle pozyskuje użytkowników, mogą występować błędy logowania, dopóki nie zwiększysz limitu. Limity interfejsu API w projekcie możesz zmienić w Konsola Google Cloud.

Używanie osobnych, ograniczonych kluczy interfejsu API w przypadku każdej usługi spoza Firebase

Mimo że klucze interfejsu API używane przez usługi Firebase zwykle nie muszą być traktowane jako obiektu tajnego, zastosuj dodatkowe środki ostrożności związane z używanymi kluczami interfejsu API z innymi interfejsami API Google Cloud.

Jeśli używasz interfejsu Google Cloud API (na dowolnej platformie), który nie jest przeznaczony dla Firebase usługi / produktu, zdecydowanie zalecamy utworzenie osobnych, ograniczonych kluczy interfejsu API do użytku z tymi interfejsami API. Jest to szczególnie ważne, jeśli interfejs API jest przeznaczony do płatna usługa Google Cloud.

Jeśli na przykład korzystasz z Firebase ML i interfejsów Cloud Vision API w iOS, należy utworzyć oddzielne klucze API, których używasz tylko dostępu do Cloud Vision API.

Korzystając z oddzielnych, ograniczonych kluczy API dla interfejsów API spoza Firebase, możesz wykonywać rotację lub w razie potrzeby zastępuj klucze i dodaj dodatkowe ograniczenia do interfejsu API Klucze bez zakłócania korzystania z usług Firebase.

Użyj kluczy interfejsu API odpowiednich dla środowiska (zalecane)

Jeśli skonfigurujesz różne projekty Firebase dla różnych środowisk, takich jak między środowiskami testowymi i produkcyjnymi, ważne jest, aby każda instancja aplikacji współpracowała odpowiadającego mu projektu Firebase. Na przykład instancja aplikacji testowej powinna nigdy nie rozmawiać z produkcyjnym projektem Firebase. Oznacza to również, że Twoja aplikacja przejściowa musi używać kluczy interfejsu API powiązanych z przejściowym projektem Firebase.

Aby ograniczyć problemy z promowaniem zmian w kodzie z procesu programowania na etap przejściowy w środowisku produkcyjnym, zamiast umieszczać klucze interfejsu API w samym kodzie, ustaw je jako lub uwzględnij je w pliku konfiguracji.

Pamiętaj, że jeśli używasz Pakietu emulatorów lokalnych Firebase do programowania jeśli korzystasz z Firebase ML, musisz utworzyć klucz interfejsu API przeznaczony tylko do debugowania i używać go. Instrukcje do utworzenia tego rodzaju klucza znajdują się w Dokumentacja Firebase ML.

Najczęstsze pytania i rozwiązywanie problemów

Najczęstsze pytania

Rozwiązywanie problemów