Usługi Google Maps Platform są zabezpieczane przed nieautoryzowanym użyciem przez ograniczenie wywołań interfejsu API do tych, którzy podają odpowiednie dane uwierzytelniające. Dane logowania mają postać klucz interfejsu API – niepowtarzalny ciąg alfanumeryczny, który wiąże konto rozliczeniowe Google z projektu i za pomocą określonego interfejsu API lub pakietu SDK.
Z tego przewodnika dowiesz się, jak utworzyć klucz interfejsu API dla Google Maps Platform, jak ograniczyć do niego dostęp i jak go używać.
Zanim zaczniesz
Zanim zaczniesz korzystać z Maps JavaScript API, potrzebujesz projektu z kontem rozliczeniowym i Interfejs Maps JavaScript API został włączony. Więcej informacji znajdziesz w artykule Konfiguracja w konsoli Cloud.
Tworzenie kluczy interfejsu API
Klucz interfejsu API to unikalny identyfikator, który uwierzytelnia żądania powiązane z projektem w: użytkowania i rozliczeń. Musisz mieć co najmniej 1 klucz interfejsu API powiązany z projektem.
Aby utworzyć klucz interfejsu API:
Konsola
-
Otwórz Google Maps Platform > Dane logowania.
-
Na stronie Dane logowania kliknij Utwórz dane logowania > API.
W oknie Utworzono klucz interfejsu API pojawi się nowo utworzony klucz interfejsu API. -
Kliknij Zamknij.
Nowy klucz interfejsu API znajdziesz na stronie Dane logowania w sekcji Klucze interfejsu API.
(Pamiętaj o ograniczeniu dostępu do interfejsu API przed użyciem w środowisku produkcyjnym).
Pakiet SDK Cloud
gcloud alpha services api-keys create \ --project "PROJECT" \ --display-name "DISPLAY_NAME"
Przeczytaj więcej na temat Pakiet SDK Google Cloud , Instalacja pakietu SDK Cloud oraz tych poleceń:
Ogranicz klucze interfejsu API
Zdecydowanie zalecamy ograniczenie użycia kluczy API do tych, które Interfejsy API potrzebne do aplikacji. Ograniczenie kluczy interfejsu API zwiększa bezpieczeństwo aplikacji przez i chronić je przed nieuzasadnionymi żądaniami. Więcej informacji: Sprawdzone metody zabezpieczania interfejsów API
Aby ograniczyć klucz interfejsu API:
Konsola
-
Otwórz Google Maps Platform > Dane logowania.
- Wybierz klucz interfejsu API, dla którego chcesz zastosować ograniczenie. Pojawi się strona właściwości klucza interfejsu API.
- W sekcji Ograniczenia kluczy ustaw te ograniczenia:
- Ograniczenia aplikacji:
- Aby akceptować żądania z listy dostarczanych przez Ciebie witryn, wybierz opcję HTTP strony odsyłające (witryny internetowe) z listy aplikacji, ograniczenia.
- Podaj co najmniej jedną witrynę odsyłającą. Możesz użyć symbolu wieloznacznego
do autoryzowania wszystkich subdomen (na przykład
https://*.google.com
akceptuje wszystkie witryny zakończone na.google.com
w przypadku dostępu przez HTTPS). Pamiętaj, że jeśli podasz www.domena.com, jest to symbol wieloznaczny www.domena.com/*, a autoryzuje ścieżkę podrzędną tej nazwy hosta. Określ schematy stron odsyłającychhttps://
ihttp://
w obecnym stanie. W przypadku innych protokołów adresów URL musisz użyć specjalnego reprezentacji. Dla: przykład, formatfile:///path/to/
jako__file_url__//path/to/*
Po włączeniu witryn pamiętaj, aby sprawdzać czas użytkowania, odpowiada Twoim oczekiwaniom. Obsługiwane są te protokoły:about://
,app://
,applewebdata://
asset://
,chrome://
,content://
,file://
,ftp://
,ionic://
,local://
,ms-appx://
,ms-appx-web://
ms-local-stream://
,prism://
,qrc://
res://
,saphtmlp://
. - Ograniczenia interfejsów API:
- Kliknij Ogranicz klucz.
- Wybierz Maps JavaScript API z menu Wybierz interfejsy API. Jeśli interfejsu Maps JavaScript API nie ma na liście, musisz: włącz ją.
- Jeśli Twój projekt korzysta z Biblioteki miejsc, wybierz też Places API. Podobnie, jeśli Twój projekt używa innych usług w interfejsie JavaScript API (Usługa wskazówek dojazdu, Usługa macierzy odległości, Usługa wysokości względnej lub usługa geokodowania), musisz też włączyć i wybrać odpowiedni interfejs API z tej listy.
- Aby zastosować zmiany, kliknij Zapisz.
Pakiet SDK Cloud
Wyświetl listę istniejących kluczy.
gcloud services api-keys list --project="PROJECT"
Usuń ograniczenia dotyczące istniejącego klucza.
gcloud alpha services api-keys update "projects/PROJECT/keys/KEY_ID" \ --clear-restrictions
Ustaw nowe ograniczenia dla istniejącego klucza.
gcloud alpha services api-keys update "projects/PROJECT/keys/KEY_ID" \ --api-target="maps-backend.googleapis.com" --allowed-referrers="referer"
Przeczytaj więcej na temat Pakiet SDK Google Cloud , Instalacja pakietu SDK Cloud oraz tych poleceń:
Dodaj klucz interfejsu API do żądania
Do każdego żądania interfejsu Maps JavaScript API musisz dołączyć klucz interfejsu API.
W przykładzie poniżej zastąp YOUR_API_KEY
swoją nazwą
klucz interfejsu API.
<script> (g=>{var h,a,k,p="The Google Maps JavaScript API",c="google",l="importLibrary",q="__ib__",m=document,b=window;b=b[c]||(b[c]={});var d=b.maps||(b.maps={}),r=new Set,e=new URLSearchParams,u=()=>h||(h=new Promise(async(f,n)=>{await (a=m.createElement("script"));e.set("libraries",[...r]+"");for(k in g)e.set(k.replace(/[A-Z]/g,t=>"_"+t[0].toLowerCase()),g[k]);e.set("callback",c+".maps."+q);a.src=`https://maps.${c}apis.com/maps/api/js?`+e;d[q]=f;a.onerror=()=>h=n(Error(p+" could not load."));a.nonce=m.querySelector("script[nonce]")?.nonce||"";m.head.append(a)}));d[l]?console.warn(p+" only loads once. Ignoring:",g):d[l]=(f,...n)=>r.add(f)&&u().then(()=>d[l](f,...n))})({ key: "YOUR_API_KEY", v: "weekly", // Use the 'v' parameter to indicate the version to use (weekly, beta, alpha, etc.). // Add other bootstrap parameters as needed, using camel case. }); </script>