Dùng khóa API

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 với những nhà cung cấp cung cấp thông tin xác thực phù hợp. Các thông tin xác thực này có dạng khoá API – một chuỗi ký tự bao gồm chữ và số liên kết tài khoản thanh toá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 Maps JavaScript, bạn cần có một dự án có tài khoản thanh toán và Đã bật Maps JavaScript API. Để tìm hiểu thêm, hãy xem phần Thiết lập trong Cloud Console.

Tạo khoá API

Khoá API là giá trị nhận dạng duy nhất giúp xác thực các yêu cầu liên kết với dự án của bạn cho cho mục đích sử dụng và thanh toán. Bạn phải có ít nhất một khoá API 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

  1. Truy cập vào Nền tảng Google Maps > Thông tin đăng nhập.

    Truy cập trang Thông tin xác thực

  2. 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 đã được tạo sẽ hiển thị khoá API mới tạo của bạn.
  3. Nhấp vào Close (Đó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ế API trước khi sử dụng trong phiên bản chính thức).

SDK đám mây

gcloud alpha services api-keys create \
    --project "PROJECT" \
    --display-name "DISPLAY_NAME"

Đọc thêm về chính sách SDK Google Cloud , Cài đặt Cloud SDK , và các lệnh sau:

Hạn chế khoá API

Bạn nên hạn chế các khoá API của mình bằng cách chỉ sử dụng các khoá API đó Các API cần thiết cho ứng dụng của bạn. Việc hạn chế khoá API sẽ giúp tăng cường bảo mật cho ứng dụng của bạn bằng cách bảo vệ tài khoản trước các yêu cầu không hợp lệ. Để biết thêm thông tin, hãy xem 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

  1. Truy cập vào Nền tảng Google Maps > Thông tin đăng nhập.

    Truy cập trang Thông tin xác thực

  2. Chọn khoá API mà bạn muốn đặt hạn chế. Trang thuộc tính khoá API sẽ xuất hiện.
  3. Trong mục Key Restrictions (Hạn chế về khoá), hãy đặt các hạn chế sau:
    • Quy định hạn chế đối với ứng dụng:
      1. Để chấp nhận yêu cầu từ danh sách các trang web mà bạn cung cấp, hãy chọn HTTP tham chiếu (trang web) từ danh sách Ứng dụng hạn chế.
      2. Chỉ định một hoặc nhiều trang web liên kết giới thiệu. Bạn có thể dùng ký tự đại diện để cho phép tất cả miền con (ví dụ: https://*.google.com chấp nhận tất cả các trang web kết thúc bằng .google.com khi truy cập qua HTTPS). Lưu ý rằng nếu bạn chỉ định www.domain.com, miền này đóng vai trò là một ký tự đại diện www.domain.com/* và cho phép mọi đường dẫn con trên tên máy chủ đó. Chỉ định giao thức liên kết giới thiệu https://http:// theo nguyên trạng. Đối với các giao thức URL khác, bạn phải sử dụng bản trình bày đặc biệt. Cho Ví dụ: định dạng file:///path/to/ thành __file_url__//path/to/* Sau khi bật các trang web, hãy nhớ theo dõi mức sử dụng của bạn để đảm bảo đáp ứng mong đợi 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ế đối với API:
      1. Nhấp vào Hạn chế khoá.
      2. Chọn API JavaScript của Maps trong trình đơn thả xuống Chọn API. Nếu API JavaScript của Maps không được liệt kê, bạn cần bật tính năng đó.
      3. Nếu dự án của bạn sử dụng Thư viện địa điểm, hãy chọn cả API Địa điểm. 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.
  4. Để hoàn tất nội dung 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 tắc 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ề chính sách SDK Google Cloud , Cài đặt Cloud SDK , và các lệnh sau:

Thêm khoá API vào yêu cầu của bạn

Bạn phải cung cấp khoá API trong 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.

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