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 đến một dịch vụ mục tiêu được xử lý qua proxy thông qua Bộ chuyển đổi Apigee for Envoy.
1. Đăng nhập vào Apigee
- Mở giao diện người dùng Apigee trong trình duyệt.
- Sau khi truy cập vào 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 một 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:
- Chọn Xuất bản > Nhà phát triển trong trình đơn điều hướng bên.
- Nhấp vào + Nhà phát triển.
- Đ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 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 Giới thiệu về Cấu hình sản phẩm API.
- Chọn Xuất bản > Sản phẩm API trong trình đơn điều hướng bên.
- Nhấp vào + Sản phẩm API.
- Điền vào trang Chi tiết sản phẩm như sau.
- Trong phần Mục tiêu dịch vụ từ xa Apigee, hãy nhấp vào Thêm mục tiêu dịch vụ từ xa Apigee.
- 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 đường dẫn tài nguyên trên dịch vụ để so khớp. Cho ví dụ: /headers
.Đường dẫn yêu cầu để so khớp trên điểm cuối mục tiêu. Lệnh gọi proxy API đến đường dẫn này sẽ khớp với sản phẩm API này. - Nhấp vào Lưu.
Trường | Giá trị |
---|---|
Tên | httpbin-product
|
Tên hiển thị | httpbin product
|
Môi trường | your_environment
Hãy đặt tuỳ chọn này thành môi trường bạn đã dùng khi cung cấp Bộ chuyển đổi Apigee cho Envoy. |
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 về Hạn mức. |
4. Tạo ứng dụng dành cho nhà phát triển
- Chọn Xuất bản > Ứng dụng trong trình đơn điều hướng bên.
- Nhấp vào + Ứng dụng.
- Điền vào trang Ứng dụng dành cho nhà phát triển như sau. Không Lưu cho đến khi được hướng dẫn thực hiện việc này.
- Tiếp theo, hãy thêm sản phẩm API vào ứng dụng:
- 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.
- Nhấp vào Tạo.
- Trong phần Thông tin xác thực, hãy nhấp vào Hiển thị bên cạnh Khoá.
- Sao chép giá trị của Khoá người dùng. Giá trị này là khoá API
mà bạn 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à yếu tố kiểm soát chính điểm cho Dịch vụ từ xa Apigee. Khi bạn tạo một Sản phẩm API và liên kết sản phẩm đó với một bạn đang tạo một chính sách sẽ áp dụng cho mọi yêu cầu mà bạn thiết lập Bộ 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ố thông số sẽ được sử 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 của 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ả hai mục tiêu liên kết (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 tiêu đề đặc biệt của Envoy danh sách mục tiêu; tuy nhiên, bạn có thể định cấu hình thẻ để 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:
- Dấu gạch chéo đơn (
/
) 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 dòng và khớp với mọi giá trị ở cuối dòng.
Hạn mức
Hạn mức quy định số lượng tin nhắn 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 giới hạ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ứcHạn mức cho phép bạn thực thi số lượng yêu cầu mà khách hàng có thể đưa ra đối với 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) bằng 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ụ: một hạn mức này có thể được dùng để giới hạn lưu lượng truy cập cho dịch vụ miễn phí, đồng thời cấp quyền truy cập đầy đủ cho khách hàng trả phí.
Hạn mức được xác định trong một sản phẩm APIThông số hạn mức được định cấu hình trong các sản phẩm API. Ví dụ: khi bạn tạo một API Sản phẩm, bạn có thể tuỳ ý đặt giới hạn, đơn vị thời gian và khoảng thời gian cho phép.
Do khoá API ánh xạ trở lại Sản phẩm API, nên mỗi lần khoá API được xác minh có thể giảm hạn mức phù hợp (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 được nhập trong định nghĩa Sản phẩm là tự động được Dịch vụ từ xa Apigee 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 áp dụng hạn mứcCá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à không đồng bộ được duy trì bằng Apigee Runtime. Điều này có nghĩa là hạn mức không chính xác và có thể có một số dịch vụ 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, hạn mức cục bộ sẽ vẫn tiếp tục hoạt động độc lập cho đến thời điểm đó để có thể kết nối lại với Thời gian chạy Apigee.
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 tập hợp con trong 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 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. Chiến dịch này giải thích cách sử 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
Quy 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 được xác thực, bộ lọc Envoy
ext-authz
sẽ gửi tiêu đề của yêu cầu và JWT đếnapigee-remote-service-envoy
Kết quả này khớp với thông báo xác nhận quyền sở hữuapi_product_list
vàscope
của JWT đối với các Sản phẩm API Apigee để cấp quyền cho các ứng dụng đó đạt được mục tiêu của yêu cầu.Tạo mã thông báo JWT Apigee
Bạn có thể tạo mã thông báo JWT Apigee bằng CLI:
$CLI_HOME/apigee-remote-service-cli token create -c config.yaml --id $KEY --secret $SECRET
Hoặc bằng cách 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-token/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 của phái viên
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 URI hợp lệ trong
remote_jwks
, trong đó Envoy có thể truy cập vào và bạn hiểu đúng cách đặt chứng chỉ khi bạn cài đặt proxy Apigee. Bạn sẽ 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 tin nhắn khác của Envoy có thể có dạng như sau:
- "Không cho phép các đối tượng trong Jwt"
- "Nhà phát hành Jwt chưa được định cấu hình"
Đâ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ụ:
$CLI_HOME/apigee-remote-service-cli -c config.yaml token inspect -f path/to/file
hoặc
$CLI_HOME/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ả dữ liệu nhật ký sẽ được gửi đến stdout và 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: thông tin -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 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 các mã này, NO_PROXY biến môi trường cũng có thể được dùng để loại trừ máy chủ cụ thể đượ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 qua 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 của Envoy
Các đường liên kết sau đây cung cấp thông tin về cách lấy số liệu phân tích proxy của Envoy dữ liệu:
Analytics Istio
Các đường liên kết sau đây cung cấp thông tin về cách lấy số liệu phân tích proxy của Envoy dữ liệu:
Số liệu phân tích 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 dưới 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ề các dịch vụ của Analytics.
Hỗ trợ môi trường nhiều người thuê
Giờ đây, bạn có thể bật bộ chuyển đổi để phục vụ nhiều trong một tổ chức Apigee. Tính năng này cho phép bạn sử dụng một Apigee Bộ chuyển đổi cho Envoy liên kết với một tổ chức Apigee để phục vụ nhiều môi trường. Trước thay đổi này, một bộ chuyển đổi luôn liên kết với một môi trường Apigee.
Để định cấu hình hỗ trợ nhiều môi trường, hãy thay đổi giá trị của
tenant:env_name
thành*
trongconfig.yaml
. Ví dụ:- Mở tệp
config.yaml
trong trình chỉnh sửa. - Thay đổi giá trị của
tenant.env_name
thành*
. Ví dụ:apiVersion: v1 kind: ConfigMap metadata: name: apigee-remote-service-envoy namespace: apigee data: config.yaml: | tenant: remote_service_api: https://myorg-myenv.apigee.net/remote-service org_name: apigee-docs-hybrid-a env_name: * allow_unverified_ssl_cert: true analytics: collection_interval: 10s auth: jwt_provider_key: https://myorg-myenv.apigee.net.net/remote-token/token
- Lưu tệp.
- Áp dụng tệp:
kubectl apply -f $CLI_HOME/config.yaml
Khi định cấu hình chế độ nhiều môi trường, bạn cũng phải định cấu hình Envoy để gửi một vào bộ chuyển đổi bằng cách thêm siêu dữ liệu sau đây vào Phần
virtual_hosts:routes
của tệpenvoy-config.yaml
. Ví dụ:- Tạo tệp
envoy-config.yaml
bằng CLI. Ví dụ:$CLI_HOME/apigee-remote-service-cli samples create \ -t envoy-1.16 -c ./config.yaml --out myconfigs
- Mở tệp đã tạo (tệp này có tên là
envoy-config.yaml
). - Thêm siêu dữ liệu sau vào
virtual_host
hoặc Phầnroutes
của tệp:typed_per_filter_config: envoy.filters.http.ext_authz: "@type": type.googleapis.com/envoy.extensions.filters.http.ext_authz.v3.ExtAuthzPerRoute check_settings: context_extensions: apigee_environment: test
Ví dụ sau đây minh hoạ cấu hình của một
virtual_host
có nhiều tuyến xác định, nơi mỗi tuyến sẽ gửi lưu lượng truy cập đến một môi trường cụ thể:filter_chains: - filters: - name: envoy.filters.network.http_connection_manager typed_config: "@type": type.googleapis.com/envoy.extensions.filters.network.http_connection_manager.v3.HttpConnectionManager stat_prefix: ingress_http route_config: virtual_hosts: - name: default domains: "*" routes: - match: { prefix: /test } route: cluster: httpbin typed_per_filter_config: envoy.filters.http.ext_authz: "@type": type.googleapis.com/envoy.extensions.filters.http.ext_authz.v3.ExtAuthzPerRoute check_settings: context_extensions: apigee_environment: test - match: { prefix: /prod } route: cluster: httpbin typed_per_filter_config: envoy.filters.http.ext_authz: "@type": type.googleapis.com/envoy.extensions.filters.http.ext_authz.v3.ExtAuthzPerRoute check_settings: context_extensions: apigee_environment: prod
- Lặp lại bước cuối cùng để thêm các môi trường khác nếu cần.
- Lưu tệp và áp dụng tệp đó.
Định cấu hình mTLS giữa bộ chuyển đổi và thời gian chạy Apigee
Bạn có thể cung cấp chứng chỉ TLS phía máy khách trong phần
tenant
của tệpconfig.yaml
của bộ chuyển đổi để dùng mTLS giữa bộ chuyển đổi và thời gian chạy Apigee. Chiến dịch này thay đổi này sẽ áp dụng cho tất cả nền tảng Apigee được hỗ trợ. Giao thức này cũng bật mTLS để phân tích cho dịch vụ Apigee Edge dành cho nền tảng Đám mây riêng tư. Ví dụ:tenant: tls: ca_file: path/ca.pem cert_file: path/cert.pem key_file: path/key.pem allow_unverified_ssl_cert: false
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 đây hoặc chọn bất kỳ nhà phát triển nào mà bạn muốn trong danh sách. |