Google is committed to advancing racial equity for Black communities. See how.
Ta strona została przetłumaczona przez Cloud Translation API.
Switch to English

Chroń dane uwierzytelniające w chmurze aplikacji Firebase ML iOS

Jeśli Twoja aplikacja na iOS korzysta z jednego z interfejsów API w chmurze Firebase ML, przed uruchomieniem aplikacji w środowisku produkcyjnym należy podjąć dodatkowe kroki, aby zapobiec nieautoryzowanemu dostępowi do interfejsu API.

1. Zmniejsz zakres istniejących kluczy API

Najpierw skonfiguruj istniejące klucze API, aby uniemożliwić dostęp do interfejsu Cloud Vision API:

  1. Otwórz stronę Credentials w konsoli Cloud. Po wyświetleniu monitu wybierz projekt o tej samej nazwie co projekt Firebase.

  2. Dla każdego klucza API na liście otwórz widok edycji, a w sekcji Ograniczenia dotyczące kluczy dodaj do listy wszystkie dostępne interfejsy API z wyjątkiem interfejsu API Cloud Vision.

    Podczas konfigurowania ograniczeń interfejsu API klucza API jawnie deklarujesz interfejsy API, do których klucz przyznaje dostęp. Domyślnie, gdy sekcja Ograniczenia interfejsu API jest pusta, można użyć klucza interfejsu API, aby uzyskać dostęp do dowolnego interfejsu API, który jest włączony dla projektu.

Teraz Twoje istniejące klucze API nie będą zapewniać dostępu do usług ML w chmurze, ale będą nadal działać dla wszystkich interfejsów API, które zostały przez Ciebie włączone lub zostały włączone automatycznie podczas konfigurowania Firebase.

Należy pamiętać, że jeśli w przyszłości włączysz dodatkowe interfejsy API, musisz je również dodać do listy ograniczeń interfejsu API klucza API.

2. Utwórz nowy klucz API do użytku z Firebase ML

Następnie utwórz nowy klucz API dla Firebase ML, który zezwala tylko na wywołania interfejsu Cloud Vision API:

  1. Wróć do strony Poświadczenia . Upewnij się, że projekt Firebase jest nadal wybrany.

  2. Kliknij Utwórz dane logowania> Klucz API . Zanotuj nowy klucz API, a następnie kliknij Ogranicz klucz .

  3. W sekcji Key Restrictions dodaj do listy tylko Cloud Vision API.

Ten klucz API zapewnia dostęp tylko do interfejsu API Cloud Vision i może być używany przez Firebase ML do uzyskiwania dostępu do modeli w chmurze.

Aby pomóc złagodzić konsekwencje złamania klucza, należy zmniejszyć przydział Cloud Vision API na użytkownika z jego domyślnego ustawienia. Aby to zrobić:

  1. Otwórz stronę Cloud Vision API Quotas w konsoli Cloud. Po wyświetleniu monitu wybierz projekt o tej samej nazwie co projekt Firebase.

  2. W sekcji Żądania ustaw limit żądań na minutę na użytkownika na wartość rozsądną dla Twojej aplikacji. Na przykład, jeśli Twoja aplikacja wymaga przesłania obrazu dokumentu, aby odzyskać jego tekst, jest mało prawdopodobne, że użytkownik zrobi to częściej niż raz na kilka sekund, więc limit 30-40 prawdopodobnie byłby bezpieczny.

    Należy zauważyć, że w tym kontekście „żądania na użytkownika” odnoszą się do żądań z jednego adresu IP. Może być konieczne rozważenie tego, jeśli spodziewasz się, że wielu użytkowników będzie korzystać z Twojej aplikacji w tym samym czasie zza NAT.

4. Wywołaj Cloud API za pomocą klucza Firebase ML API

Na koniec skonfiguruj w aplikacji Firebase ML, aby używał nowego klucza API.

Ponieważ klucz Firebase ML API umożliwia nieuwierzytelniony dostęp do Cloud Vision API, ważne jest, aby zachować go w tajemnicy, aby zapobiec nieautoryzowanemu użyciu i obciążeniom konta rozliczeniowego. Aby to zrobić, nie należy umieszczać klucza API w pliku binarnym aplikacji. Zamiast tego w czasie wykonywania aplikacji sprawdź, czy znany dobry użytkownik jest zalogowany, a dopiero potem pobierz klucz interfejsu API z serwera.

Nawet jeśli te praktyki są przestrzegane, może dojść do złamania zabezpieczeń klucza API. Powinieneś podjąć kroki, aby złagodzić konsekwencje złamanego klucza, takie jak zmniejszenie przydziału interfejsu API na użytkownika, jak opisano powyżej, wdrożenie zasad rotacji kluczy i wydawanie różnych kluczy różnym grupom użytkowników.

Gdy Twoja aplikacja bezpiecznie uzyska klucz API, jeśli chcesz wywołać interfejs Firebase ML Cloud API, określ klucz:

Szybki

 if let cloudVisionKey = getYourApiKey() {  // See note above about securing your API key
    let options = VisionCloudDetectorOptions()
    options.apiKeyOverride = cloudVisionKey
    let cloudDetector = Vision.vision().cloudLandmarkDetector(options: options)
}
 

Cel C

 NSString *cloudVisionKey = [self getYourApiKey];  // See note above about securing your API key
if (cloudVisionKey != nil) {
    FIRVisionCloudDetectorOptions *options =
            [[FIRVisionCloudDetectorOptions alloc] init];
    options.APIKeyOverride = cloudVisionKey;
    FIRVisionCloudLandmarkDetector *landmarkDetector =
            [vision cloudLandmarkDetectorWithOptions:options];
}
 

Ponadto należy postępować zgodnie z ogólnymi wskazówkami dotyczącymi zabezpieczania klucza interfejsu API .

Następne kroki

Zapoznaj się z listą kontrolną uruchamiania, aby dowiedzieć się, jak przygotować aplikację do uruchomienia podczas korzystania z innych funkcji Firebase.