Hướng dẫn vận hành

Bạn đang xem tài liệu về Apigee Edge.
Truy cập vào tài liệu về Apigee X.
thông tin

Cách lấy khoá API

Ví dụ sau đây giải thích cách lấy khoá API mà bạn có thể dùng để xác thực các lệnh gọi API đến một dịch vụ mục tiêu được proxy thông qua Trình chuyển đổi Apigee cho Envoy.

1. Đăng nhập vào Apigee

  1. Mở giao diện người dùng Apigee trong trình duyệt.
  2. Sau khi chuyển đến giao diện người dùng, hãy chọn chính tổ chức mà bạn đã dùng để định cấu hình Bộ chuyển đổi Apigee cho Envoy.

2. Tạo nhà phát triển

Bạn có thể sử dụng một nhà phát triển hiện có để kiểm thử hoặc tạo một nhà phát triển mới như sau:

  1. Chọn Xuất bản > Nhà phát triển trong trình đơn điều hướng bên.
  2. Nhấp vào + Nhà phát triển.
  3. Điền vào hộp thoại để tạo một nhà phát triển mới. Bạn có thể sử dụng bất kỳ tên/email nhà phát triển nào mà bạn muốn.

3. Tạo một sản phẩm API

Hãy làm theo ví dụ về cách tạo sản phẩm ở bên dưới. Xem thêm nội dung Giới thiệu về cấu hình sản phẩm API.

  1. Chọn Xuất bản > Sản phẩm API trong trình đơn điều hướng bên.
  2. Nhấp vào + Sản phẩm API.
  3. Điền thông tin vào trang Chi tiết sản phẩm như sau. Đừng nhấp vào Lưu cho đến khi có hướng dẫn.
  4. Trường Giá trị
    Tên httpbin-product
    Tên hiển thị httpbin product
    Môi trường your_environment

    Đặt giá trị này thành môi trường mà bạn đã sử dụng khi bạn cấp phát Trình chuyển đổi Apigee cho Envoy bằng apigee-remote-service-cli.

    Quyền truy cập Private
    Hạn mức 5 yêu cầu mỗi 1 phút

    Xem thêm phần Tìm hiểu về hạn mức.

  5. Trong mục Mục tiêu dịch vụ từ xa của Apigee, hãy nhấp vào Thêm mục tiêu dịch vụ từ xa của Apigee.
  6. Trong hộp thoại mục tiêu dịch vụ từ xa Apigee, hãy thêm các giá trị sau:
    Thuộc tính Giá trị Mô tả
    Tên mục tiêu Nhập tên của dịch vụ mục tiêu. Ví dụ: httpbin.org Điểm cuối mục tiêu có proxy Envoy đặt trước.
    Đường dẫn Nhập /resource_path để so khớp một đường dẫn cụ thể. Ví dụ: /httpbin. Đường dẫn yêu cầu để so khớp trên điểm cuối mục tiêu. Các lệnh gọi proxy API đến đường dẫn này sẽ khớp với sản phẩm API này.
  7. Nhấp vào Lưu.

4. Tạo ứng dụng dành cho nhà phát triển

  1. Chọn Xuất bản > Ứng dụng trong trình đơn điều hướng bên.
  2. Nhấp vào + Ứng dụng.
  3. Điền vào trang Ứng dụng dành cho nhà phát triển như sau. Đừng Lưu cho đến khi có hướng dẫn.
  4. Tên httpbin-app
    Tên hiển thị httpbin app
    Nhà phát triển Chọn nhà phát triển mà bạn đã tạo trước đó hoặc chọn bất kỳ nhà phát triển nào bạn muốn trong danh sách.
  5. Tiếp theo, hãy thêm hai sản phẩm vào ứng dụng:
    1. Trong phần Thông tin xác thực, hãy nhấp vào + Thêm sản phẩm rồi chọn sản phẩm bạn vừa định cấu hình: httpbin-product.
    2. Nhấp vào Tạo.
    3. Trong phần Thông tin xác thực, hãy nhấp vào Hiện bên cạnh Khoá.
    4. Sao chép giá trị của Khoá người dùng. Giá trị này là khoá API mà bạn sẽ sử dụng để thực hiện lệnh gọi API đến dịch vụ httpbin.

    Giới thiệu về các sản phẩm API

    Sản phẩm API là điểm kiểm soát chính của Dịch vụ từ xa Apigee. Khi tạo một Sản phẩm API và liên kết sản phẩm đó với một dịch vụ mục tiêu, bạn đang tạo một chính sách sẽ được áp dụng cho mọi yêu cầu mà bạn định cấu hình Trình chuyển đổi Apigee cho Envoy để xử lý.

    Định nghĩa sản phẩm API

    Khi xác định một Sản phẩm API trong Apigee, bạn có thể đặt một số tham số sẽ được dùng để đánh giá các yêu cầu:

    • Mục tiêu
    • Đường dẫn yêu cầu
    • Hạn mức
    • Phạm vi OAuth

    Mục tiêu dịch vụ từ xa

    Định nghĩa Sản phẩm API sẽ áp dụng cho một yêu cầu nếu yêu cầu đó khớp với cả liên kết mục tiêu (ví dụ: httpbin.org) và đường dẫn yêu cầu (ví dụ: /httpbin). Danh sách các mục tiêu tiềm năng được lưu trữ dưới dạng thuộc tính trên Sản phẩm API.

    Theo mặc định, Dịch vụ từ xa Apigee sẽ kiểm tra tiêu đề :authority (host) đặc biệt của Envoy dựa trên danh sách mục tiêu của Envoy; tuy nhiên, bạn có thể định cấu hình để sử dụng các tiêu đề khác.

    Đường dẫn tài nguyên API

    Đường dẫn đã nhập khớp theo các quy tắc sau:

    • Một dấu gạch chéo (/) riêng lẻ sẽ khớp với mọi đường dẫn.
    • * hợp lệ ở mọi nơi và khớp trong một phân đoạn (giữa các dấu gạch chéo).
    • ** hợp lệ ở cuối và khớp với mọi nội dung ở cuối dòng.

    Hạn mức

    Hạn mức chỉ định số lượng thông báo yêu cầu mà một ứng dụng được phép gửi đến một API trong một giờ, ngày, tuần hoặc tháng. Khi một ứng dụng đạt đến hạn mức hạn mức, các lệnh gọi API tiếp theo sẽ bị từ chối.

    Các trường hợp sử dụng hạn mức

    Hạn mức cho phép bạn thực thi số lượng yêu cầu mà một ứng dụng khách có thể gửi đến một dịch vụ trong một khoảng thời gian nhất định. Hạn mức thường được dùng để thực thi hợp đồng kinh doanh hoặc Thoả thuận mức độ cung cấp dịch vụ (SLA) với nhà phát triển và đối tác, thay vì để quản lý lưu lượng truy cập hoạt động. Ví dụ: hạn mức có thể được dùng để giới hạn lưu lượng truy cập cho một dịch vụ miễn phí, đồng thời cấp quyền truy cập đầy đủ cho những khách hàng trả tiền.

    Hạn mức được xác định trong Sản phẩm API

    Thông số hạn mức được định cấu hình trong các sản phẩm API. Ví dụ: khi tạo Sản phẩm API, bạn có thể tuỳ ý đặt hạn mức hạn mức, đơn vị thời gian và khoảng thời gian được phép.

    Vì khoá API liên kết lại với Sản phẩm API, nên mỗi khi một khoá API được xác minh, bạn có thể giảm bộ đếm hạn mức thích hợp (nếu Hạn mức được xác định trong Sản phẩm được liên kết).

    Không giống như trong thời gian chạy Apigee, Hạn mức được nhập trong định nghĩa Sản phẩm sẽ được Dịch vụ từ xa của Apigee tự động thực thi. Nếu được uỷ quyền, yêu cầu sẽ được tính vào hạn mức được phép.

    Nơi duy trì hạn mức

    Hạn mức được duy trì và kiểm tra cục bộ bằng quy trình Dịch vụ từ xa và được duy trì không đồng bộ bằng Thời gian chạy Apigee. Điều này có nghĩa là hạn mức không chính xác và có thể bị vượt quá nếu bạn có nhiều Dịch vụ từ xa đang duy trì hạn mức. Nếu kết nối với Thời gian chạy Apigee bị gián đoạn, thì hạn mức cục bộ sẽ tiếp tục ở dạng hạn mức độc lập cho đến khi có thể kết nối lại với Thời gian chạy Apigee.

    Phạm vi OAuth

    Nếu đang sử dụng mã thông báo JWT, bạn có thể hạn chế mã thông báo ở một số tập hợp con của các phạm vi OAuth được phép. Các phạm vi được chỉ định cho mã thông báo JWT mà bạn đã phát hành sẽ được kiểm tra theo phạm vi của Sản phẩm API.

    Giới thiệu về Ứng dụng của nhà phát triển

    Sau khi định cấu hình Sản phẩm API, bạn sẽ tạo một Ứng dụng liên kết với một Nhà phát triển. Ứng dụng cho phép ứng dụng khách truy cập vào các Sản phẩm API được liên kết bằng Khoá API hoặc Mã thông báo JWT.

    Sử dụng phương thức xác thực dựa trên JWT

    Bạn có thể sử dụng mã thông báo JWT để thực hiện các lệnh gọi proxy API đã xác thực thay vì sử dụng khoá API. Phần này giải thích cách dùng lệnh apigee-remote-service-cli token để tạo, kiểm tra và xoay mã thông báo JWT.

    Tổng quan

    Tính năng xác minh và xác thực JWT do Envoy xử lý bằng Bộ lọc xác thực JWT.

    Sau khi được xác thực, bộ lọc Envoy ext-authz sẽ gửi tiêu đề của yêu cầu và JWT đến apigee-remote-service-envoy. Mã này khớp với các thông báo xác nhận api_product_listscope của JWT với các Sản phẩm API Apigee để uỷ quyền cho mã này đối với mục tiêu của yêu cầu.

    Tạo mã thông báo JWT của Apigee

    Bạn có thể tạo Mã thông báo JWT của Apigee bằng CLI:

    apigee-remote-service-cli token create -c config.yaml --id $KEY --secret $SECRET

    Hoặc bằng cách sử dụng điểm cuối mã thông báo OAuth tiêu chuẩn. Ví dụ về Curl:

    curl https://org-env.apigee.net/remote-service/token -d '{"client_id":"myclientid","client_secret":"myclientsecret","grant_type":"client_credentials"}' -H "Content-type: application/json"

    Sử dụng mã thông báo JWT

    Sau khi có mã thông báo, bạn chỉ cần chuyển mã đó cho Envoy trong tiêu đề Uỷ quyền. Ví dụ:

    curl localhost:8080/httpbin/headers -i -H "Authorization:Bearer $TOKEN"

    Lỗi mã thông báo JWT

    Từ chối Envoy

    Nếu Envoy từ chối mã thông báo, bạn có thể thấy thông báo như sau:

    Jwks remote fetch is failed

    Nếu có, hãy đảm bảo rằng cấu hình Envoy của bạn chứa một URI hợp lệ trong phần remote_jwks, Envoy có thể truy cập được URI đó và bạn đã thiết lập đúng cách các chứng chỉ khi cài đặt proxy Apigee. Bạn có thể gọi trực tiếp URI bằng lệnh gọi GET và nhận phản hồi JSON hợp lệ.

    Ví dụ:

    curl https://myorg-eval-test.apigee.net/remote-service/certs

    Các thông báo khác của Envoy có thể có dạng như sau:

    • "Không được phép sử dụng đối tượng trong Jwt"
    • "Chưa định cấu hình trình phát hành Jwt"

    Đây là những yêu cầu trong cấu hình Envoy mà bạn có thể cần sửa đổi.

    Kiểm tra mã thông báo

    Bạn có thể sử dụng CLI để kiểm tra mã thông báo. Ví dụ:

    apigee-remote-service-cli -c config.yaml token inspect -f path/to/file

    hoặc

    apigee-remote-service-cli -c config.yaml token inspect <<< $TOKEN

    Gỡ lỗi

    Xem phần Khoá API hợp lệ bị lỗi.

    Ghi nhật ký

    Bạn có thể điều chỉnh cấp độ ghi nhật ký trên dịch vụ $REMOTE_SERVICE_HOME/apigee-remote-service-envoy. Tất cả hoạt động ghi nhật ký đều được gửi đến stderr.

    Phần tử Bắt buộc Mô tả
    -l, --cấp nhật ký Các cấp độ hợp lệ: gỡ lỗi, thông tin, cảnh báo, lỗi. Điều chỉnh cấp độ ghi nhật ký. Mặc định: info
    -j, --json-log Phát ra đầu ra nhật ký dưới dạng bản ghi JSON.

    Envoy cung cấp tính năng ghi nhật ký. Để biết thêm thông tin, hãy xem các đường liên kết đến tài liệu dưới đây của Envoy:

    Sử dụng proxy mạng

    Bạn có thể chèn proxy HTTP bằng cách sử dụng biến môi trường HTTP_PROXY và HTTPS_PROXY trong môi trường của tệp nhị phân apigee-remote-service-envoy. Khi sử dụng các thuộc tính này, bạn cũng có thể dùng biến môi trường NO_PROXY để loại trừ các máy chủ cụ thể khỏi việc gửi qua proxy.

    HTTP_PROXY=http://[user]:[pass]@[proxy_ip]:[proxy_port]
    HTTPS_PROXY=http://[user]:[pass]@[proxy_ip]:[proxy_port]
    NO_PROXY=127.0.0.1,localhost

    Hãy nhớ rằng bạn phải truy cập được proxy từ apigee-remote-service-envoy.

    Giới thiệu về chỉ số và số liệu phân tích

    Bạn có thể truy cập điểm cuối chỉ số Prometheus tại :5001/metrics. Bạn có thể định cấu hình số cổng này. Xem phần Tệp cấu hình.

    Số liệu phân tích Envoy

    Các đường liên kết sau đây cung cấp thông tin về cách lấy dữ liệu phân tích proxy của Envoy:

    Số liệu phân tích Istio

    Các đường liên kết sau đây cung cấp thông tin về cách lấy dữ liệu phân tích proxy Envoy:

    Số liệu phân tích của Apigee

    Dịch vụ từ xa Apigee dành cho Envoy gửi số liệu thống kê về yêu cầu cho Apigee để xử lý số liệu phân tích. Apigee báo cáo các yêu cầu này trong tên Sản phẩm API được liên kết.

    Để biết thông tin về số liệu phân tích của Apigee, hãy xem bài viết Tổng quan về dịch vụ phân tích.