Bạn đang xem tài liệu về Apigee Edge.
Hãy xem tài liệu về Apigee X.
Kiến thức bạn sẽ học được
Thông qua hướng dẫn này, bạn sẽ học cách:
- Tạo proxy API yêu cầu khóa API.
- Thêm một sản phẩm API.
- Thêm nhà phát triển và đăng ký ứng dụng.
- Gọi API bằng khoá API.
Điều quan trọng là phải bảo vệ API của bạn khỏi bị truy cập trái phép. Có một cách để thực hiện việc đó là sử dụng khoá API (còn gọi là khoá công khai, khoá người dùng hoặc khoá ứng dụng).
Khi yêu cầu API, ứng dụng phải cung cấp khóa hợp lệ. Trong thời gian chạy, chính sách Xác minh khoá API sẽ kiểm tra để đảm bảo khoá API được cung cấp:
- Là hợp lệ
- Chưa bị thu hồi
- Khớp khoá API cho sản phẩm API cho thấy các tài nguyên được yêu cầu
Nếu khoá hợp lệ, thì yêu cầu sẽ được phép. Nếu khoá không hợp lệ thì yêu cầu sẽ dẫn đến việc uỷ quyền không thành công.
Trong hướng dẫn này, bạn sẽ tạo một proxy API yêu cầu phải có khoá API hợp lệ để truy cập vào API đó.
Bạn cần có
- Một tài khoản Apigee Edge. Nếu chưa có tài khoản, bạn có thể đăng ký bằng cách làm theo hướng dẫn trong bài viết Tạo tài khoản Apigee Edge.
- Trình duyệt web để thực hiện lệnh gọi API.
- (Đối với phần tín dụng bổ sung, không bắt buộc) cURL đã được cài đặt trên máy của bạn để thực hiện lệnh gọi API từ dòng lệnh.
Tạo proxy API
- Truy cập vào https://apigee.com/edge rồi đăng nhập.
Chuyển sang tổ chức mà bạn muốn bằng cách nhấp vào tên người dùng ở đầu thanh điều hướng bên để hiển thị trình đơn hồ sơ người dùng, rồi chọn tổ chức đó từ danh sách.
-
Nhấp vào API Proxy trên trang đích để hiển thị danh sách API API.
- Nhấp vào + Proxy.
- Trên trang Tạo proxy, chọn Proxy ngược (phổ biến nhất).
- Trên trang Chi tiết proxy, hãy định cấu hình proxy như sau:
Trong trường này làm điều này Tên proxy Nhập: helloworld_apikey
Đường dẫn cơ sở của dự án Thay đổi thành:
/helloapikey
Đường dẫn cơ sở của dự án là một phần của URL dùng để gửi yêu cầu đến proxy API.
Lưu ý: Để biết các đề xuất của Apigee về việc tạo phiên bản API, hãy xem Tạo phiên bản trong sách điện tử Thiết kế API Web: Đường liên kết bị thiếu.
API hiện có Nhập:
http://mocktarget.apigee.net
Điều này xác định URL mục tiêu mà Apigee Edge gọi trong một yêu cầu đến proxy API.
Nội dung mô tả Nhập: hello world protected by API key
- Nhấp vào Tiếp theo.
- Trên trang Các chính sách chung, đối với Bảo mật: Ủy quyền, hãy chọn Khóa API rồi nhấp vào Tiếp theo. Thao tác này sẽ thêm hai chính sách vào proxy API.
- Trên trang Virtual Hosts (Máy chủ ảo), hãy chọn default (mặc định) và secure (bảo mật) rồi nhấp vào Next (Tiếp theo). Khi chọn mặc định, bạn có thể
gọi API bằng
http://
. Khi chọn an toàn, bạn sẽ có thể gọi API bằnghttps://
. - Trên trang Tóm tắt, hãy nhớ chọn môi trường triển khai thử nghiệm, sau đó nhấp vào Tạo và triển khai.
- Bạn sẽ thấy thông báo xác nhận rằng proxy API mới và một sản phẩm API đã được tạo thành công và proxy API đã được triển khai cho môi trường thử nghiệm.
- Nhấp vào Edit proxy (Chỉnh sửa proxy) để hiển thị trang Overview (Tổng quan) về proxy API.
Xem các chính sách
- Trong trình chỉnh sửa proxy API, hãy nhấp vào thẻ Phát triển. Bạn sẽ thấy hai chính sách đã được thêm vào luồng yêu cầu của proxy API:
- Xác minh khoá API: Kiểm tra lệnh gọi API để đảm bảo có khoá API hợp lệ (được gửi dưới dạng tham số truy vấn).
- Xoá khoá truy vấn thông số truy vấn: Chính sáchassignMessage sẽ xoá khoá API sau khi được đánh dấu, để khoá này không bị truyền đi và hiển thị khi không cần thiết.
-
Nhấp vào biểu tượng Xác minh chính sách khóa API trong chế độ xem quy trình và xem cấu hình XML của chính sách trong chế độ xem mã thấp hơn. Phần tử
<APIKey>
cho chính sách biết vị trí cần tìm khoá API khi thực hiện lệnh gọi. Theo mặc định, hệ thống sẽ tìm khoá dưới dạng tham số truy vấn có tên làapikey
trong yêu cầu HTTP:<APIKey ref="request.queryparam.apikey" />
Tên
apikey
là tuỳ ý và có thể là bất kỳ thuộc tính nào chứa khoá API.
Thử gọi API
Ở bước này, bạn sẽ thực hiện lệnh gọi API thành công trực tiếp đến dịch vụ đích, sau đó, bạn sẽ thực hiện lệnh gọi API không thành công để xem trạng thái bảo vệ của proxy theo các chính sách.
-
Thành công
Trong trình duyệt web, hãy chuyển đến địa chỉ sau. Đây là dịch vụ mục tiêu mà proxy API được định cấu hình để chuyển tiếp yêu cầu, nhưng bạn sẽ được chuyển trực tiếp vào lúc này:
http://mocktarget.apigee.net
Bạn sẽ nhận được phản hồi thành công sau:
Hello, Guest!
-
Không thành công
Bây giờ, hãy thử gọi proxy API của bạn:
http://ORG_NAME-test.apigee.net/helloapikey
thay thế
ORG_NAME
bằng tên của tổ chức Edge.Nếu không có chính sách Xác minh khoá API, lệnh gọi này sẽ cung cấp cho bạn phản hồi giống như lệnh gọi trước. Nhưng trong trường hợp này, bạn sẽ nhận được phản hồi lỗi như sau:
{"fault":{"faultstring":"Failed to resolve API Key variable request.queryparam.apikey","detail":{"errorcode":"steps.oauth.v2.FailedToResolveAPIKey"}}}
có nghĩa là bạn đã không chuyển khoá API hợp lệ (dưới dạng tham số truy vấn).
Trong các bước tiếp theo, bạn sẽ thêm một sản phẩm API.
Thêm một sản phẩm API
Cách thêm một sản phẩm API thông qua giao diện người dùng Apigee:
- Chọn Xuất bản > Sản phẩm API.
- Nhấp vào +Sản phẩm API.
Nhập Chi tiết sản phẩm cho sản phẩm API.
Trường Mô tả Tên Tên nội bộ của sản phẩm API. Không chỉ định các ký tự đặc biệt trong tên.
Lưu ý: Bạn không thể chỉnh sửa tên sau khi tạo sản phẩm API. Ví dụ:helloworld_apikey-Product
.Tên hiển thị Tên hiển thị của sản phẩm API. Tên hiển thị được sử dụng trong giao diện người dùng và bạn có thể chỉnh sửa tên đó bất cứ lúc nào. Nếu bạn không chỉ định, Giá trị tên sẽ được sử dụng. Trường này được điền tự động bằng cách sử dụng Giá trị tên; bạn có thể chỉnh sửa hoặc xóa nội dung trong trường. Tên hiển thị có thể bao gồm các ký tự đặc biệt. Ví dụ: helloworld_apikey-Product
Mô tả Mô tả của sản phẩm API. Ví dụ: Test product for tutorial
.Môi trường Các môi trường mà sản phẩm API cho phép truy cập. Ví dụ: test
hoặcprod
.Quyền truy cập Chọn Công khai. Tự động phê duyệt yêu cầu truy cập Bật chế độ tự động phê duyệt các yêu cầu chính đối với sản phẩm API này trên bất kỳ ứng dụng nào. Định mức Bỏ qua phần hướng dẫn này. Phạm vi OAuth được phép Bỏ qua phần hướng dẫn này. - Trong phần tài nguyên API, hãy chọn proxy API mà bạn vừa tạo. Ví dụ:
helloworld_apikey
. - Nhấp vào Thêm.
- Trong phần Đường dẫn, hãy thêm đường dẫn "/".
- Nhấp vào Thêm.
- Nhấp vào Lưu.
Trong các bước tiếp theo, bạn sẽ nhận được khóa API bắt buộc.
Thêm nhà phát triển và ứng dụng vào tổ chức của bạn
Tiếp theo, chúng tôi sẽ mô phỏng quy trình làm việc của một nhà phát triển đăng ký sử dụng các API của bạn. Nhà phát triển sẽ có một hoặc nhiều ứng dụng gọi API của bạn và mỗi ứng dụng sẽ nhận được một khóa API duy nhất. Nhờ đó, nhà cung cấp API có thể kiểm soát chi tiết hơn quyền truy cập vào API của bạn và báo cáo chi tiết hơn về lưu lượng truy cập API theo ứng dụng.
Tạo nhà phát triển
Cách tạo nhà phát triển:
- Chọn Xuất bản > Nhà phát triển trong menu.
- Nhấp vào + Nhà phát triển.
Nhập nội dung sau vào cửa sổ Nhà phát triển mới:
Trong trường này enter Tên Keyser
Họ Soze
Tên người dùng keyser
Email keyser@example.com
- Nhấp vào Tạo.
Đăng ký ứng dụng
Để đăng ký ứng dụng dành cho nhà phát triển:
- Chọn Xuất bản > Ứng dụng.
- Nhấp vào + Ứng dụng.
Nhập nội dung sau vào cửa sổ Ứng dụng mới:
pTrong trường này làm điều này Tên và Tên hiển thị Nhập: keyser_app
Công ty / Nhà phát triển Chọn: Developer
Nhà phát triển Chọn: Keyser Soze (keyser@example.com)
URL gọi lại và Ghi chú Để trống - Trong phần Credentials (Thông tin xác thực), hãy chọn Never (Không bao giờ) trên trình đơn Expiry (Hết hạn). Thông tin đăng nhập cho ứng dụng này sẽ không bao giờ hết hạn.
- Trong phần Sản phẩm, hãy nhấp vào Thêm sản phẩm.
- Chọn helloworld_apikey-Product.
- Nhấp vào Thêm.
- Nhấp vào Tạo ở trên cùng bên phải của phần Chi tiết ứng dụng để lưu công việc của bạn.
Lấy khoá API
Cách lấy khoá API:
- Trên trang Ứng dụng (Xuất bản > Ứng dụng), hãy nhấp vào keyser_app.
Trên trang keyser_app, hãy nhấp vào Show (Hiển thị) bên cạnh Key (Khoá) trong phần Credentials (Thông tin xác thực). Trong phần Product, hãy lưu ý rằng khoá này liên kết với helloworld_apikey
- Chọn và sao chép Khóa. Bạn sẽ sử dụng nó trong bước tiếp theo.
Gọi API bằng khoá
Giờ đây, khi đã có khoá API, bạn có thể sử dụng khoá này để gọi proxy API. Nhập nội dung sau vào trình duyệt web. Thay tên tổ chức Edge của bạn bằng ORG_NAME và khoá API cho API_KEY dưới đây. Hãy đảm bảo không có khoảng trống thừa trong tham số truy vấn.
http://ORG_NAME-test.apigee.net/helloapikey?apikey=API_KEY
Bây giờ, khi gọi đến proxy API, bạn sẽ nhận được phản hồi này: Hello, Guest!
Xin chúc mừng! Bạn đã tạo một proxy API và bảo vệ proxy này bằng cách yêu cầu bao gồm một khóa API hợp lệ trong lệnh gọi.
Lưu ý rằng nói chung, bạn không nên chuyển khóa API dưới dạng tham số truy vấn. Thay vào đó, bạn nên cân nhắc việc chuyển phương thức này trong tiêu đề HTTP.
Phương pháp hay nhất: Truyền khóa vào tiêu đề HTTP
Ở bước này, bạn sẽ sửa đổi proxy để tìm khoá API trong một tiêu đề có tên là x-apikey
.
- Chỉnh sửa proxy API. Chọn Phát triển > Proxy API > helloworld_apikey và chuyển đến chế độ xem Phát triển.
-
Chọn chính sách Verify API Key (Xác minh khoá API) và sửa đổi XML chính sách để cho biết chính sách này nên tìm trong
header
thay vì trongqueryparam
:<APIKey ref="request.header.x-apikey"/>
- Lưu proxy API để triển khai thay đổi.
-
Thực hiện lệnh gọi API sau đây bằng cURL để chuyển khoá API dưới dạng tiêu đề có tên là
x-apikey
. Đừng quên thay thế tên tổ chức của bạn.curl -v -H "x-apikey: API_KEY" http://ORG_NAME-test.apigee.net/helloapikey
Xin lưu ý rằng để hoàn tất toàn bộ thay đổi, bạn cũng cần định cấu hình chính sáchassignMessage để xóa tiêu đề thay vì tham số truy vấn. Ví dụ:
<Remove> <Headers> <Header name="x-apikey"/> </Headers> </Remove>
Chủ đề có liên quan
Dưới đây là một số chủ đề liên quan trực tiếp đến hướng dẫn này:
- Quản lý các sản phẩm API
- Khóa API
- Đăng ký nhà phát triển ứng dụng
- Đăng ký ứng dụng và quản lý khoá API
- Chính sách Xác minh API
- Chính sáchassignMessage
Tìm hiểu sâu hơn một chút về việc bảo vệ API bằng khoá API chỉ là một phần của quá trình. Thông thường, quy trình bảo vệ API sẽ liên quan đến tính bảo mật bổ sung như OAuth.
OAuth là một giao thức mở mà tóm tắt là trao đổi thông tin xác thực (như tên người dùng và mật khẩu) để lấy mã truy cập. Mã truy cập là các chuỗi dài, ngẫu nhiên, có thể được truyền xung quanh quy trình thông báo, ngay cả từ ứng dụng này sang ứng dụng khác mà không ảnh hưởng đến thông tin xác thực ban đầu. Mã thông báo truy cập thường có thời gian tồn tại ngắn, vì vậy mã thông báo truy cập mới luôn được tạo.