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

Bạn đang xem tài liệu về Apigee Edge.
Chuyển đến 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 lệnh gọi API tới một dịch vụ mục tiêu được gửi qua proxy thông qua Bộ 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 mở 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 nhà phát triển mới. Bạn có thể sử dụng bất kỳ tên/email nào của nhà phát triển mà bạn muốn.

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

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

  1. Chọn Publish > API Products (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 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 thực hiện.
  4. Trường Giá trị
    Tên httpbin-product
    Tên hiển thị httpbin product
    Môi trường your_environment

    Đặt thuộc tính này thành môi trường mà bạn đã dùng khi cung cấp Bộ 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

    Hãy xem thêm bài viết Tìm hiểu về hạn mức.

  5. Trong phần Apigee từ xa service Target (Mục tiêu dịch vụ từ xa API), hãy nhấp vào Add an Apigee service target (Thêm một mục tiêu dịch vụ từ xa 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ị Nội dung 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 đích được proxy Envoy đứng trước.
    Proxy API remote-service Proxy remote-service được cấp phép trên Apigee trong quá trình cài đặt Bộ chuyển đổi Envoy.
    Đường dẫn Nhập /resource_path để khớp với một đường dẫn cụ thể. Ví dụ: /httpbin. Đường dẫn yêu cầu khớp trên điểm cuối đích. 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.

    Edge Public hoặc Private Cloud: Ảnh chụp màn hình sau đây cho thấy các chế độ cài đặt hộp thoại được định cấu hình đúng cách cho mục tiêu httpbin.org, một cấu hình phù hợp cho Apigee Edge Public hoặc Private Cloud.

  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 của nhà phát triển như sau. Đừng Lưu cho đến khi được hướng dẫn thực hiện việc này.
  4. Tên httpbin-app
    Tên hiển thị httpbin app
    Nhà phát triển Chọn nhà phát triển 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. Trước tiên, 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 mà bạn vừa thiết lập: httpbin-product.
    2. Sau đó, hãy thêm sản phẩm dịch vụ từ xa. Sản phẩm này được tạo tự động khi bạn cấp phép Apigee.
  6. Nhấp vào Tạo.
  7. Trong phần Thông tin xác thực, hãy nhấp vào Hiển thị bên cạnh Khoá.
  8. 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 cho 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 mà sẽ áp dụng cho mọi yêu cầu mà bạn định cấu hình Bộ chuyển đổi Apigee dành 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ẽ dùng để đánh giá 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 về 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 một 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 với danh sách các mục tiêu. Tuy nhiên, bạn có thể định cấu hình tiêu đề này để 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:

  • Chỉ một dấu gạch chéo (/) khớp với đường dẫn bất kỳ.
  • * 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 giá trị ở cuối dòng.

Hạn mức

Hạn mức cho biết số lượng thông báo yêu cầu mà một ứng dụng được phép gửi đến API trong khoảng thời gian một giờ, ngày, tuần hoặc tháng. Khi một ứng dụng đạt đến 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à ứng dụng 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 các hợp đồng kinh doanh hoặc SLA với các 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ụ: bạn có thể dùng một hạn mức để giới hạn lưu lượng truy cập cho một dịch vụ miễn phí, đồng thời vẫn cho phép những khách hàng trả phí có toàn quyền truy cập.

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

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

Vì khoá API ánh xạ trở lại các sản phẩm API, nên mỗi khi một khoá API được xác minh, bộ đếm hạn mức thích hợp có thể được giảm đi (nếu một 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 đã nhập trong phần định nghĩa sản phẩm được Dịch vụ từ xa Apigee tự động thực thi. Nếu yêu cầu được uỷ quyền, yêu cầu sẽ được tính vào hạn mức cho 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 Apigee Runtime. Điều này có nghĩa là hạn mức không được chính xác và có thể bị vượt quá một số nếu bạn có nhiều Dịch vụ từ xa duy trì hạn mức đó. Nếu việc kết nối với Apigee Runtime bị gián đoạn, 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 Apigee Runtime.

Phạm vi OAuth

Nếu đang dùng mã thông báo JWT, bạn có thể hạn chế mã thông báo ở những nhóm nhỏ trong 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 sẽ được kiểm tra dựa trên 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 Nhà phát triển. Ứng dụng cho phép ứng dụng 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 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 vòng mã thông báo JWT.

Tổng quan

Quá trình xác minh và xác thực JWT do Envoy xử lý bằng cách sử dụng Bộ lọc xác thực JWT.

Sau khi 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. API này khớp với các tuyên bố của api_product_listscope của JWT đối với các Sản phẩm API của Apigee để cho phép ứng dụng chống lại mục tiêu của yêu cầu.

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

Bạn có thể tạo mã thông báo Apigee JWT 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 của 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ã đó đến Envoy trong tiêu đề Uỷ quyền. Ví dụ:

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

Mã thông báo JWT không thành công

Từ chối đại diện

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

Jwks remote fetch is failed

Nếu có, hãy đảm bảo cấu hình Envoy của bạn chứa một URI hợp lệ trong phần remote_jwks, rằng Envoy có thể truy cập vào cấu hình đó, cũng như đã đặt các chứng chỉ đúng cá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 được phản hồi JSON hợp lệ.

Ví dụ:

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

Các thư khác từ Envoy có thể có dạng như sau:

  • "Đối tượng trong Jwt không được phép"
  • "Chưa định cấu hình công ty 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 của mình. 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ệ không thành công.

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. Mọi nhật ký đều được gửi đến stderr.

Phần tử Bắt buộc Nội dung 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: thông tin
-j, --json-nhật ký 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 sau đây đến tài liệu của Envoy:

Sử dụng proxy mạng

Bạn có thể chèn proxy HTTP bằng cách sử dụng các 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 những biến môi trường này, bạn cũng có thể dùng biến môi trường NO_PROXY để loại trừ việc gửi một số máy chủ cụ thể 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 proxy phải truy cập được từ apigee-remote-service-envoy.

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

Có đ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.

Phân tích đại diện

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:

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 đến Apigee để xử lý phân tích. Apigee báo cáo những yêu cầu này bằng 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 Apigee, hãy xem bài viết Tổng quan về các dịch vụ Analytics.