Bạn đang xem tài liệu về Apigee Edge.
Truy cập vào
tài liệu Apigee X. thông tin
Kiến thức bạn sẽ học được
Thông qua hướng dẫn này, bạn sẽ tìm hiểu cách:
- Tạo một proxy API yêu cầu khoá 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.
Bạn cần bảo vệ API của mình khỏi bị truy cập trái phép. Một cách để thực hiện việc đó là 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 một ứng dụng gửi yêu cầu đến API của bạn, ứng dụng đó phải cung cấp một khoá hợp lệ. Trong thời gian chạy, chính sách Xác minh khoá API sẽ kiểm tra xem khoá API được cung cấp có:
- Là hợp lệ
- Chưa bị thu hồi
- Khớp khoá API cho sản phẩm API hiển thị các tài nguyên được yêu cầu
Nếu khoá hợp lệ, yêu cầu sẽ được cho phép. Nếu khoá không hợp lệ, yêu cầu sẽ dẫn đến lỗi uỷ quyền.
Trong hướng dẫn này, bạn sẽ tạo một proxy API yêu cầu khoá API hợp lệ để truy cập.
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ý theo hướng dẫn tại Tạo tài khoản Apigee Edge.
- Một trình duyệt web để thực hiện lệnh gọi API.
- (Đối với phần tín chỉ 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 các 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 bạn muốn bằng cách nhấp vào tên người dùng của bạn ở đầu thanh điều hướng bên để hiện trình đơn hồ sơ người dùng, sau đó chọn tổ chức trong danh sách.
-
Nhấp vào API Proxies (API Proxy) trên trang đích để hiển thị danh sách API proxy.
- Nhấp vào + Proxy.

- Trên trang Create Proxy (Tạo proxy), hãy chọn Reverse proxy (most common) (Proxy đảo ngược (phổ biến nhất)).
- Trên trang Proxy Details (Thông tin chi tiết về proxy), hãy định cấu hình proxy như sau:
Trong trường này làm việc 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 xác định phiên bản API, hãy xem phần Xác định phiên bản trong sách điện tử Thiết kế API web: Mối liên kết còn thiếu.
API hiện có Nhập:
http://mocktarget.apigee.netThao tác này xác định URL mục tiêu mà Apigee Edge gọi theo yêu cầu đối với 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 Chính sách chung, đối với Bảo mật: Uỷ quyền, hãy chọn Khoá 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 của bạn.
- 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 bảo mật, bạn có thể gọi API bằnghttps://. - Trên trang Tóm tắt, hãy đảm bảo bạn đã chọn môi trường triển khai thử nghiệm, rồi 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 bạn đã tạo thành công một API proxy mới và một sản phẩm API, đồng thời API proxy đó đã được triển khai vào môi trường thử nghiệm của bạn.
- Nhấp vào Chỉnh sửa proxy để hiển thị trang Tổng quan cho proxy API.
Xem 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 rằng hai chính sách đã được thêm vào quy trình 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 một tham số truy vấn).
- Xoá tham số truy vấn apikey: Một chính sách AssignMessage giúp xoá khoá API sau khi khoá này được kiểm tra, để khoá không được truyền xung quanh và bị lộ một cách không cần thiết.
-
Nhấp vào biểu tượng chính sách Xác minh khoá API trong chế độ xem luồng 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 nơi cần tìm khoá API khi lệnh gọi được thực hiện. Theo mặc định, nó sẽ tìm khoá dưới dạng một tham số truy vấn có tên làapikeytrong yêu cầu HTTP:<APIKey ref="request.queryparam.apikey" />
Tên
apikeylà tuỳ ý và có thể là bất kỳ thuộc tính nào chứa khoá API.
Thử gọi API
Trong bước này, bạn sẽ thực hiện một 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 một lệnh gọi không thành công đến proxy API để xem cách proxy này được bảo vệ bằng các chính sách.
-
Thành công
Trong trình duyệt web, hãy truy cập vào địa chỉ sau. Đây là dịch vụ đích mà proxy API được định cấu hình để chuyển tiếp yêu cầu đến, nhưng bạn sẽ truy cập trực tiếp vào dịch vụ này ngay bây giờ:
http://mocktarget.apigee.net
Bạn sẽ nhận được phản hồi thành công này:
Hello, Guest! -
Thất bại
Bây giờ, hãy thử gọi proxy API của bạn:
http://ORG_NAME-test.apigee.net/helloapikey
thay thế
ORG_NAMEbằ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 cùng một phản hồi 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 sau:
{"fault":{"faultstring":"Failed to resolve API Key variable request.queryparam.apikey","detail":{"errorcode":"steps.oauth.v2.FailedToResolveAPIKey"}}}
điều này có nghĩa là bạn đã không truyền một khoá API hợp lệ (dưới dạng một 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 bằng giao diện người dùng Apigee:
- Chọn Xuất bản > Sản phẩm API.
- Nhấp vào +API Product (Sản phẩm API).
Nhập Thông tin chi tiết về sản phẩm cho sản phẩm API của bạn.
Trường Nội dung mô tả Tên Tên nội bộ của sản phẩm API. Không chỉ định 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 dùng trong giao diện người dùng và bạn có thể chỉnh sửa tên này 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 sẵn bằng giá trị Tên; bạn có thể chỉnh sửa hoặc xoá nội dung của trường này. Tên hiển thị có thể chứa ký tự đặc biệt. Ví dụ: helloworld_apikey-Product.Mô tả Nội dung mô tả về 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 sẽ cho phép truy cập. Ví dụ: testhoặcprod.Quyền truy cập Chọn Công khai. Tự động phê duyệt yêu cầu cấp quyền truy cập Cho phép tự động phê duyệt các yêu cầu khoá cho sản phẩm API này từ mọi ứng dụng. Hạn mức Bỏ qua phần này trong hướng dẫn này. Phạm vi OAuth được phép Bỏ qua bước này trong hướng dẫn. - Trong phần tài nguyên API, hãy chọn API proxy 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 khoá 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 ta sẽ mô phỏng quy trình của một nhà phát triển đăng ký sử dụng 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 khoá API duy nhất. Điều này giúp bạn (nhà cung cấp API) kiểm soát chặt chẽ hơn quyền truy cập vào API của mình 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 trình đơn.
- Nhấp vào + Nhà phát triển.
Nhập thông tin sau vào cửa sổ Nhà phát triển mới:
Trong trường này enter Tên KeyserHọ SozeTên người dùng keyserEmail keyser@example.com- Nhấp vào Tạo.
Đăng ký ứng dụng
Cách đăng ký ứng dụng nhà phát triển:
- Chọn Xuất bản > Ứng dụng.
- Nhấp vào + App (+ Ứng dụng).
Nhập nội dung sau vào cửa sổ New App (Ứng dụng mới):
pTrong trường này làm việc này Tên và Tên hiển thị Nhập: keyser_appCông ty / Nhà phát triển Chọn: DeveloperNhà phát triển Chọn: Keyser Soze (keyser@example.com)URL gọi lại và Ghi chú Để trống - Trong phần Thông tin xác thực, hãy chọn Không bao giờ trong trình đơn Ngày 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 mục 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 ở phía trên và bên phải mục Thông tin chi tiết về ứng dụng để lưu nội dung bạn đã làm.
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 Hiện bên cạnh Khoá trong phần Thông tin xác thực. Trong phần Product (Sản phẩm), hãy lưu ý rằng khoá được liên kết với helloworld_apikey
.
- Chọn và sao chép Khoá. Bạn sẽ sử dụng chỉ mục này trong bước tiếp theo.
Gọi API bằng khoá
Giờ đây, bạn có thể dùng khoá API để gọi proxy API. Nhập nội dung sau vào trình duyệt web. Thay thế tên tổ chức Edge của bạn bằng ORG_NAME và khoá API bằng API_KEY bên dưới. Đả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
Giờ đây, 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 đó bằng cách yêu cầu phải có một khoá API hợp lệ trong lệnh gọi.
Xin lưu ý rằng nói chung, bạn không nên truyền khoá API dưới dạng tham số truy vấn. Thay vào đó, bạn nên cân nhắc truyền mã này trong tiêu đề HTTP.
Phương pháp hay nhất: Truyền khoá trong tiêu đề HTTP
Trong 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 Develop > API Proxies > helloworld_apikey (Phát triển > API Proxy > helloworld_apikey) rồi chuyển đến chế độ xem Develop (Phát triển).
-
Chọn chính sách Xác minh khoá API và sửa đổi XML chính sách để cho chính sách biết cần tìm trong
headerthay 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 bằng cURL để truyề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 việc thay đổi, bạn cũng cần định cấu hình chính sách AssignMessage để xoá tiêu đề thay vì tham số truy vấn. Ví dụ:
<Remove>
<Headers>
<Header name="x-apikey"/>
</Headers>
</Remove>
Chủ đề có liên quan
Sau đây là một số chủ đề liên quan trực tiếp đến hướng dẫn này:
- Quản lý sản phẩm API
- Khoá 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 VerifyAPIKey
- Chính sách AssignMessage
Đi sâu hơn một chút, việc bảo vệ API bằng khoá API chỉ là một phần của câu chuyện. Thông thường, việc bảo vệ API bao gồm các biện pháp bảo mật bổ sung như OAuth.
OAuth là một giao thức mở, tóm lại là trao đổi thông tin đăng nhập (chẳng hạn 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 ngẫu nhiên dài có thể được truyền qua một quy trình truyền 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 đăng nhập 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 mới luôn được tạo.