Bạn đang xem tài liệu về Apigee Edge.
Chuyển đến
Tài liệu về Apigee X. thông tin
Apigee Edge cho phép bạn thực hiện các lệnh gọi API Edge được xác thực bằng mã thông báo OAuth2. Theo mặc định, tính năng hỗ trợ OAuth2 sẽ được bật trên Edge cho các tài khoản Cloud. Nếu bạn đang sử dụng Edge đối với Đám mây riêng tư, bạn không thể sử dụng OAuth2 nếu không có thiết lập SAML hoặc Giao thức truy cập thư mục hạng nhẹ (LDAP).
Cách hoạt động của OAuth2 (với API Apigee Edge)
Các lệnh gọi đến API Apigee Edge yêu cầu xác thực để chúng tôi có thể chắc chắn rằng bạn chính bạn. Để xác thực bạn, chúng tôi đòi hỏi bạn phải gửi mã truy cập OAuth2 cùng với yêu cầu của bạn để truy cập API.
Ví dụ: nếu muốn lấy thông tin chi tiết về một tổ chức trên Edge, bạn sẽ gửi yêu cầu tới một URL như sau:
https://api.enterprise.apigee.com/v1/organizations/ahamilton-eval
Tuy nhiên, bạn không thể gửi yêu cầu đó mà không cho chúng tôi biết bạn là ai. Nếu không, bất kỳ ai có thể xem thông tin chi tiết về tổ chức của bạn.
Đây là nơi OAuth2 hoạt động: để xác thực bạn, chúng tôi cần bạn gửi cho chúng tôi mã truy cập trong yêu cầu đó. Mã truy cập cho chúng tôi biết bạn là ai để chúng tôi có thể đảm bảo rằng bạn được phép xem thông tin chi tiết về tổ chức.
Rất may là bạn có thể nhận mã thông báo bằng cách gửi thông tin đăng nhập của mình đến dịch vụ OAuth2 của Edge. Chiến lược phát hành đĩa đơn dịch vụ sẽ phản hồi bằng mã truy cập và mã làm mới.
Quy trình OAuth2: Yêu cầu ban đầu
Hình ảnh sau đây minh hoạ quy trình OAuth2 khi bạn truy cập vào API Edge lần đầu tiên thời gian:
Như Hình 1 cho thấy, khi bạn đưa ra yêu cầu ban đầu tới API Edge:
- Bạn yêu cầu một mã truy cập. Bạn có thể thực hiện việc này bằng
Edge API, acurl hoặc
get_token
. Ví dụ:get_token Enter username:
ahamilton@apigee.com
Enter the password for user 'ahamilton@apigee.com'[hidden input]
Enter the six-digit code if 'ahamilton@apigee.com' is MFA enabled or press ENTER:123456
- Dịch vụ OAuth2 của Edge phản hồi bằng một mã truy cập và in mã đó vào
stdout
; ví dụ:Dy42bGciOiJSUzI1NiJ9.eyJqdGkiOiJhM2YwNjA5ZC1lZTIxLTQ1YjAtOGQyMi04MTQ0MTYxNjNhNTMiLCJz AJpdGUiLCJhcHByb3ZhbHMubWUiLCJvYXV0aC5hcHByb3ZhbHMiXSwiY2xpZW50X2lkIjoiZWRnZWNsaSIsIm NjbGkiLCJhenAiOiJlZGdlY2xpIiwiZ3JhbnRfdHlwZSI6InBhc3N3b3JkIiwidXNlcl9pZCI6IjJkMWU3NDI GzQyMC1kYzgxLTQzMDQtOTM4ZS1hOGNmNmVlODZhNzkiLCJzY29wZSI6WyJzY2ltLm1lIiwib3BlbmlkIiwic ENC05MzhlLWE4Y2Y2ZWU4NmE3OSIsIm9yaWdpbiI6InVzZXJncmlkIiwidXNlcl9uYW1lIjoiZGFuZ2VyNDI0 RI6ImUyNTM2NWQyIiwiaWF0IjoxNTI4OTE2NDA5LCJleHAiOjE1Mjg5MTgyMDksImlzcyI6Imh0dHBzOi8vbG 420iLCJlbWFpbCI6ImRhbmdlcjQyNDJAeWFob28uY29tIiwiYXV0aF90aW1lIjoxNTI4OTE2NDA5LCJhbCI6M 2lLmNvbSIsInppZCI6InVhYSIsImF1ZCI6WyJlZGdlY2xpIiwic2NpbSIsIm9wZW5pZCIsInBhc3N3b3JkIiw
Các tiện ích
acurl
vàget_token
tự động lưu quyền truy cập và mã làm mới thành~/.sso-cli
(Mã làm mới không được ghi vàostdout
.) Nếu sử dụng dịch vụ OAuth2 của Edge để lấy mã thông báo, bạn cần lưu mã cho sau này sử dụng chính bạn. - Bạn gửi yêu cầu tới API Edge bằng mã truy cập.
acurl
tệp đính kèm mã thông báo; ví dụ:acurl https://api.enterprise.apigee.com/v1/organizations/ahamilton-eval
Nếu bạn sử dụng một ứng dụng HTTP khác, hãy nhớ thêm mã truy cập. Ví dụ:
curl https://api.enterprise.apigee.com/v1/organizations/ahamilton-eval \ -H "Authorization: Bearer ACCESS_TOKEN"
- Edge API thực thi yêu cầu của bạn và thường trả về phản hồi có dữ liệu.
Quy trình OAuth2: Yêu cầu tiếp theo
Trong các yêu cầu tiếp theo, bạn không cần phải đổi thông tin đăng nhập để lấy mã thông báo. Thay vào đó, bạn chỉ cần cung cấp mã truy cập mà bạn đã có, miễn là mã đó chưa hết hạn:
Như Hình 2 cho thấy, khi bạn đã có mã truy cập:
- Bạn gửi yêu cầu tới API Edge bằng mã truy cập.
acurl
tệp đính kèm mã thông báo. Nếu sử dụng các công cụ khác, bạn sẽ phải thêm mã thông báo theo cách thủ công. - Edge API thực thi yêu cầu của bạn và thường trả về phản hồi có dữ liệu.
Quy trình OAuth2: Khi mã truy cập của bạn hết hạn
Khi mã truy cập hết hạn (sau 12 giờ), bạn có thể sử dụng mã làm mới để nhận mã truy cập:
Như Hình 3 cho thấy, khi mã truy cập của bạn hết hạn:
- Bạn gửi yêu cầu đến API Edge, nhưng mã truy cập của bạn đã hết hạn.
- Edge API sẽ từ chối yêu cầu của bạn là trái phép.
- Bạn gửi mã làm mới cho dịch vụ OAuth2 của Edge. Nếu bạn đang sử dụng
acurl
, thì quá trình này đã hoàn tất tự động cho bạn. - Dịch vụ OAuth2 của Edge sẽ phản hồi bằng một mã truy cập mới.
- Bạn gửi yêu cầu tới API Edge bằng mã truy cập mới.
- Edge API thực thi yêu cầu của bạn và thường trả về phản hồi có dữ liệu.
Nhận mã thông báo
Để nhận mã truy cập mà bạn có thể gửi tới API Edge, bạn có thể sử dụng các cách sau
Các tiện ích của Apigee, ngoài những tiện ích như curl
:
- Tiện ích get_token: Trao đổi thông tin đăng nhập Apigee của bạn để truy cập và làm mới mã thông báo mà bạn có thể dùng để gọi API Edge.
- Tiện ích acurl: Cung cấp một trình bao bọc tiện lợi xung quanh một tiêu chuẩn
Lệnh
curl
. Tạo các yêu cầu HTTP đến Edge API, nhận mã truy cập và làm mới từget_token
, đồng thời chuyển mã truy cập đến API Edge. - Điểm cuối mã thông báo trong dịch vụ OAuth2 của Edge: Trao đổi Thông tin đăng nhập Apigee để truy cập và làm mới mã thông báo thông qua lệnh gọi đến API Edge.
Những phần mềm tiện ích này trao đổi thông tin đăng nhập vào tài khoản Apigee của bạn (địa chỉ email và mật khẩu) cho mã thông báo có các thời hạn sau:
- Mã truy cập sẽ hết hạn sau 12 giờ.
- Mã làm mới sẽ hết hạn sau 30 ngày.
Do đó, sau khi thực hiện thành công lệnh gọi API bằng acurl
hoặc get_token
,
bạn có thể tiếp tục sử dụng cặp mã thông báo này trong 30 ngày. Sau khi hết hạn, bạn phải nhập lại
thông tin xác thực và nhận mã thông báo mới.
Truy cập API Edge bằng OAuth2
Để truy cập vào Edge API, bạn cần gửi yêu cầu đến một điểm cuối API và cung cấp mã truy cập.
Bạn có thể thực hiện việc này với bất kỳ ứng dụng HTTP nào, bao gồm cả tiện ích dòng lệnh như curl
,
giao diện người dùng dựa trên trình duyệt như Postman hoặc tiện ích Apigee như acurl
.
Cách truy cập vào Edge API bằng acurl
và curl
được mô tả trong
các phần tiếp theo.
Sử dụng acurl
Để truy cập vào API Edge bằng acurl
, yêu cầu ban đầu của bạn phải bao gồm
thông tin xác thực. Dịch vụ OAuth2 của Edge sẽ phản hồi bằng mã truy cập và mã làm mới. acurl
sẽ lưu mã thông báo trên thiết bị.
Trong các yêu cầu tiếp theo, acurl
dùng mã thông báo đã lưu trong ~/.sso-cli
để
bạn không phải cung cấp lại thông tin đăng nhập cho đến khi mã thông báo hết hạn.
Ví dụ sau đây cho thấy một yêu cầu acurl
ban đầu lấy thông tin chi tiết về
"ahamilton-eval" tổ chức:
acurl https://api.enterprise.apigee.com/v1/organizations/ahamilton-eval \ -u ahamilton@apigee.com Enter the password for user 'ahamilton@apigee.com'[hidden input]
Enter the six-digit code (no spaces) if 'ahamilton@apigee.com' is MFA-enabled or press ENTER:1a2b3c
{ "createdAt" : 1491854501264, "createdBy" : "noreply_iops@apigee.com", "displayName" : "ahamilton", "environments" : [ "prod", "test" ], "lastModifiedAt" : 1491854501264, "lastModifiedBy" : "noreply_iops@apigee.com", "name" : "ahamilton", "properties" : { "property" : [ { "name" : "features.isSmbOrganization", "value" : "false" }, { "name" : "features.isCpsEnabled", "value" : "true" } ] }, "type" : "trial" }acurl https://api.enterprise.apigee.com/v1/o/ahamilton-eval/apis/helloworld/revisions/1/policies
[ "SOAP-Message-Validation-1", "Spike-Arrest-1", "XML-to-JSON-1" ]
Ngoài việc lấy thông tin chi tiết về tổ chức, ví dụ này cũng cho thấy yêu cầu thứ hai tải danh sách các chính sách trong "helloworld" Proxy API. Yêu cầu thứ hai sử dụng rút ngắn "o" cho "tổ chức" trong URL.
Xin lưu ý rằng acurl
tự động chuyển mã truy cập trong yêu cầu thứ hai. Bạn
không cần truyền thông tin đăng nhập của người dùng sau khi acurl
lưu trữ mã thông báo OAuth2. Nó
sẽ nhận mã thông báo từ ~/.sso-cli
cho các lệnh gọi tiếp theo.
Để biết thêm thông tin, hãy xem phần Sử dụng acurl để truy cập vào API Edge.
Dùng cuộn tròn
Bạn có thể dùng curl
để truy cập vào API Edge. Để làm được điều này, trước tiên bạn phải tải
truy cập và làm mới mã. Bạn có thể tải những thông tin này bằng một tiện ích như get_token
hoặc
Dịch vụ OAuth2 cạnh tranh..
Sau khi lưu thành công mã truy cập, bạn chuyển mã đó vào
Tiêu đề Authorization
của các lệnh gọi đến Edge API, như ví dụ sau
cho thấy:
curl https://api.enterprise.apigee.com/v1/organizations/ahamilton-eval \ -H "Authorization: Bearer ACCESS_TOKEN"
Mã truy cập có hiệu lực trong 12 giờ kể từ khi được phát hành. Sau khi mã truy cập hết hạn, bạn có thể sử dụng mã làm mới trong 30 ngày để cấp một mã truy cập khác mà không cần thông tin đăng nhập. Apigee chỉ nên yêu cầu mã truy cập mới sau khi mã giới thiệu hết hạn, thay vì nhập thông tin đăng nhập và thực hiện một yêu cầu mới với mỗi lệnh gọi API.
Thời hạn của mã thông báo
Sau khi mã truy cập hết hạn, bạn có thể sử dụng mã này để nhận mã truy cập mới mà không cần bạn phải gửi lại thông tin đăng nhập của mình.
Cách làm mới mã truy cập tuỳ thuộc vào công cụ bạn đang sử dụng:
acurl
: Bạn không cần làm gì cả.acurl
tự động làm mới mã truy cập khi bạn gửi một yêu cầu chứa một yêu cầu đã lỗi thời.get_token
: Gọiget_token
để làm mới mã truy cập.- Dịch vụ OAuth2 cạnh tranh: Gửi yêu cầu bao gồm:
- Làm mới mã thông báo
- Đã đặt thông số biểu mẫu
grant_type
thành "refresh_token"
OAuth2 cho người dùng máy
Bạn có thể dùng các tiện ích acurl
và get_token
để viết tập lệnh cho quyền truy cập tự động
sang API Edge có xác thực OAuth2 cho người dùng máy. Ví dụ sau đây trình bày cách
sử dụng get_token
để
yêu cầu mã truy cập rồi thêm giá trị mã thông báo vào lệnh gọi curl
:
USER=me@example.com
PASS=not-that-secret
TOKEN=$(get_token -u $USER:$PASS -m '')
curl -H "Authorization: Bearer $TOKEN" 'https://api.enterprise.apigee.com/v1/organizations/...'
Ngoài ra, bạn có thể kết hợp yêu cầu mã thông báo và lệnh gọi curl
bằng tiện ích acurl
.
Ví dụ:
USER=me@example.com
PASS=not-that-secret
acurl -u $USER:$PASS -m '' 'https://api.enterprise.apigee.com/v1/organizations/...'
Trong cả hai ví dụ, việc đặt giá trị của -m
thành chuỗi trống sẽ ngăn người dùng máy
khi được nhắc nhập mã MFA.