Các sản phẩm trên Nền tảng Google Maps được bảo vệ khỏi hành vi sử dụng trái phép bằng cách hạn chế các lệnh gọi API chỉ dành cho những lệnh cung cấp thông tin xác thực phù hợp. Thông tin xác thực này ở dạng khoá API – một chuỗi ký tự và số duy nhất liên kết tài khoản thanh toán của bạn trên Google với dự án và với API hoặc SDK cụ thể.
Hướng dẫn này trình bày cách tạo, hạn chế và sử dụng Khoá API cho Nền tảng Google Maps.
Trước khi bắt đầu
Trước khi bắt đầu sử dụng API JavaScript của Maps, bạn cần có một dự án có tài khoản thanh toán và đã bật API JavaScript của Maps. Để tìm hiểu thêm, hãy xem bài viết Thiết lập trong Cloud Console.
Tạo khoá API
Khoá API là giá trị nhận dạng duy nhất xác thực các yêu cầu liên kết với dự án của bạn cho mục đích sử dụng và thanh toán. Bạn phải có ít nhất một khoá API được liên kết với dự án của mình.
Cách tạo khoá API:
Giao diện dòng lệnh
-
Chuyển đến trang Nền tảng Google Maps > Thông tin xác thực.
-
Trên trang Thông tin xác thực, hãy nhấp vào Tạo thông tin xác thực > Khoá API.
Hộp thoại API key created (Khoá API đã tạo) hiển thị khoá API mới tạo. -
Nhấp vào Đóng.
Khoá API mới được liệt kê trên trang Thông tin xác thực trong phần Khoá API.
(Hãy nhớ hạn chế khoá API trước khi sử dụng khoá đó trong môi trường sản xuất.)
SDK đám mây
gcloud alpha services api-keys create \ --project "PROJECT" \ --display-name "DISPLAY_NAME"
Đọc thêm về Google Cloud SDK , cách cài đặt Cloud SDK , và các lệnh sau:
Hạn chế khoá API
Bạn nên hạn chế khoá API bằng cách giới hạn việc sử dụng khoá API ở những API cần thiết cho ứng dụng của mình. Việc hạn chế khoá API sẽ tăng cường bảo mật cho ứng dụng của bạn bằng cách bảo vệ ứng dụng khỏi các yêu cầu không hợp lệ. Để biết thêm thông tin, hãy xem phần Các phương pháp hay nhất về bảo mật API.
Cách hạn chế khoá API:
Giao diện dòng lệnh
-
Chuyển đến trang Nền tảng Google Maps > Thông tin xác thực.
- Chọn khoá API mà bạn muốn đặt quy tắc hạn chế. Trang thuộc tính khoá API sẽ xuất hiện.
- Trong mục Key restrictions (Hạn chế đối với khoá), hãy đặt các hạn chế sau:
- Hạn chế về ứng dụng:
- Để chấp nhận các yêu cầu từ danh sách trang web mà bạn cung cấp, hãy chọn Trình giới thiệu HTTP (trang web) trong danh sách Hạn chế ứng dụng.
- Chỉ định một hoặc nhiều trang web giới thiệu. Bạn có thể sử dụng ký tự đại diện để uỷ quyền cho tất cả miền con (ví dụ:
https://*.google.com
chấp nhận tất cả trang web có đuôi.google.com
khi truy cập qua HTTPS). Xin lưu ý rằng nếu bạn chỉ định www.domain.com, thì miền này sẽ hoạt động như một ký tự đại diện www.domain.com/* và uỷ quyền mọi đường dẫn con trên tên máy chủ đó. Chỉ định các giao thức liên kết giới thiệuhttps://
vàhttp://
như hiện có. Đối với các giao thức URL khác, bạn phải sử dụng một cách trình bày đặc biệt. Ví dụ: định dạngfile:///path/to/
thành__file_url__//path/to/*
. Sau khi bật trang web, hãy nhớ theo dõi mức sử dụng để đảm bảo mức sử dụng đó phù hợp với kỳ vọng của bạn. Các giao thức sau được hỗ trợ:about://
,app://
,applewebdata://
,asset://
,chrome://
,content://
,file://
,ftp://
,ionic://
,local://
,ms-appx://
,ms-appx-web://
,ms-local-stream://
,prism://
,qrc://
,res://
,saphtmlp://
. - Các quy định hạn chế về API:
- Nhấp vào Hạn chế khoá.
- Chọn Maps JavaScript API trong trình đơn thả xuống Chọn API. Nếu API JavaScript của Maps không có trong danh sách, bạn cần bật API đó.
- Nếu dự án của bạn sử dụng Thư viện địa điểm, hãy chọn cả Places API. Tương tự, nếu dự án của bạn sử dụng các dịch vụ khác trong API JavaScript (Dịch vụ chỉ đường, Dịch vụ ma trận khoảng cách, Dịch vụ độ cao và/hoặc Dịch vụ mã hoá địa lý), bạn cũng phải bật và chọn API tương ứng trong danh sách này.
- Để hoàn tất các thay đổi, hãy nhấp vào Lưu.
SDK đám mây
Liệt kê các khoá hiện có.
gcloud services api-keys list --project="PROJECT"
Xoá các quy định hạn chế hiện có đối với khoá hiện có.
gcloud alpha services api-keys update "projects/PROJECT/keys/KEY_ID" \ --clear-restrictions
Đặt các quy định hạn chế mới đối với khoá hiện có.
gcloud alpha services api-keys update "projects/PROJECT/keys/KEY_ID" \ --api-target="maps-backend.googleapis.com" --allowed-referrers="referer"
Đọc thêm về Google Cloud SDK , cách cài đặt Cloud SDK , và các lệnh sau:
Thêm khoá API vào yêu cầu
Bạn phải thêm khoá API vào mọi yêu cầu API JavaScript của Maps.
Trong ví dụ sau, hãy thay thế YOUR_API_KEY
bằng khoá API của bạn.
<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>