Bạn đang xem tài liệu về Apigee Edge.
Chuyển đến
Tài liệu về Apigee X. thông tin
Giới thiệu về siêu dữ liệu về mã thông báo
Apigee Edge tạo mã truy cập OAuth, mã làm mới và mã uỷ quyền, sẽ cấp chúng đến ứng dụng đã xác thực. Tại thời điểm tạo, Edge lưu trữ các mã thông báo và mã đó. Sau đó, khi Edge nhận được các yêu cầu API gửi đến chứa các mã thông báo hoặc mã này, Edge sẽ sử dụng thông tin được lưu trữ để cho phép các yêu cầu đó.
Khi tạo các cấu phần phần mềm OAuth này, Edge cũng đính kèm siêu dữ liệu vào mã thông báo hoặc mã. Cho ví dụ: mã truy cập được liên kết với cặp tên/giá trị xác định thời gian hết hạn, ứng dụng và nhà phát triển liên kết cũng như các thông tin khác.
Bản trình bày JSON của mã truy cập Edge sẽ có dạng như sau:
{ "issued_at" : "1372170159093", "application_name" : "ccd1803b-b557-4520-bd62-ddd3abf8e501", "scope" : "READ", "status" : "approved", "api_product_list" : "[Product1,Product2]", "api_product_list_json" : ["Product1", "Product2"], "expires_in" : "3599", //--in seconds "developer.email" : "joe@weathersample.com", "organization_id" : "0", "refresh_token" : "82XMXgDyHTpFyXOaApj8C2AGIPnN2IZe", "client_id" : "deAVedE0W9Z9U35PAMaAJYphBJCGdrND", "access_token" : "shTUmeI1geSKin0TODcGLXBNe9vp", "organization_name" : "apifactory", "refresh_count" : "0" }
Thêm thuộc tính tuỳ chỉnh vào mã thông báo OAuth
Đôi khi, bạn nên đính kèm siêu dữ liệu tuỳ chỉnh vào mã truy cập. Ví dụ: bạn có thể muốn để thêm tên người dùng, thành viên nhóm hoặc vai trò cho người dùng, ID khách hàng, giá trị nhận dạng phiên, hoặc thông tin tuỳ ý khác vào một mã thông báo. Trong Apigee Edge, những dữ liệu này được gọi là "tuỳ chỉnh" ". Sau đó, khi mã thông báo được xác minh trong phạm vi của một yêu cầu API, dữ liệu được cung cấp cho proxy API thông qua các biến ngữ cảnh. Proxy API có thể khiến quyết định cấp quyền chi tiết hoặc định tuyến dựa trên dữ liệu tuỳ chỉnh được đính kèm vào mã thông báo.
Để đính kèm dữ liệu tuỳ ý vào một mã thông báo, hãy sử dụng phần tử <Attributes>
trong
chính sách OAuthV2. Bạn có thể
chỉ định tên của thuộc tính tuỳ chỉnh và giá trị mà thuộc tính đó sẽ nhận. Ví dụ: đây là
cấu hình chính sách để tạo mã thông báo và đính kèm một thuộc tính tuỳ chỉnh có tên là "tenant_list"
vào mã thông báo:
<OAuthV2 name="GenerateAccessToken"> <Operation>GenerateAccessToken</Operation> <ExpiresIn>600000</ExpiresIn> <GenerateResponse /> <SupportedGrantTypes> <GrantType>client_credentials</GrantType> </SupportedGrantTypes> <GrantType>request.queryparam.grant_type</GrantType> <Attributes> <Attribute name="tenant_list" ref="tenant_list_retrieved_from_external_service" display="false"/> </Attributes> </OAuthV2>
Bạn có thể chỉ định nhiều thuộc tính tuỳ chỉnh và có thể đính kèm ngầm các thuộc tính đó vào
mã uỷ quyền (<Operation>GenerateAuthorizationCode</Operation>
) hoặc
một mã thông báo (<Operation>GenerateAccessToken</Operation>
) vào thời điểm
tạo.
Khi bạn đặt display
thành true
(mặc định), các thuộc tính tuỳ chỉnh sẽ
được trả về trong phản hồi, nơi ứng dụng có thể xem được chúng hoặc được chuyển cho người dùng cuối.
Khi bạn đặt display
thành false
, các thuộc tính tuỳ chỉnh sẽ được lưu trữ trong dữ liệu
nhưng không được trả lại trong thông báo phản hồi. Trong cả hai trường hợp, dữ liệu tuỳ chỉnh vẫn có sẵn
vào các chính sách trong Proxy API, sau khi mã thông báo đã được xác minh.
Để biết thêm thông tin về tuỳ chọn display
Hiện hoặc ẩn các thuộc tính tuỳ chỉnh trong phản hồi.
Nhận thuộc tính tùy chỉnh trong thời gian chạy
Khi có lệnh gọi đến OAuthV2/VerifyAccessToken
,
Apigee Edge xác minh mã thông báo bằng cách tra cứu trong cửa hàng mã thông báo. Sau đó, Apigee Edge điền sẵn
tập hợp các biến ngữ cảnh chứa thông tin về mã thông báo. Những quốc gia/khu vực này bao gồm:
- organization_name
- developer.id
- developer.app.name
- client_id
- grant_type
- token_type
- access_token
- issued_at
- hết_hạn_in //--tính bằng giây
- trạng thái
- phạm vi
- apiproduct.name*
Nếu mã thông báo có bất kỳ thuộc tính tuỳ chỉnh nào, thì các thuộc tính tuỳ chỉnh đó sẽ có sẵn bằng
biến ngữ cảnh có tên accesstoken.{custom_attribute}
. Ví dụ:
giả sử mã thông báo được phát hành từ chính sách nêu trên. Sau khi xác minh một mã thông báo như vậy,
là một biến ngữ cảnh bổ sung có tên accesstoken.tenant_list
, chứa
đã được lưu trữ tại thời điểm tạo mã thông báo.
Sau đó, các chính sách hoặc điều kiện có thể dựa vào các biến này và sửa đổi hành vi dựa trên được lưu trữ bên trong.
Đặt và cập nhật thuộc tính tuỳ chỉnh tại Thời gian chạy
Trong một số trường hợp, bạn sẽ muốn Proxy API cập nhật siêu dữ liệu được liên kết với mã truy cập trong thời gian chạy trong khi một lệnh gọi API đang được xử lý trên Apigee Edge. Để giúp giải quyết vấn đề này, Apigee cung cấp các chính sách về việc lấy và thiết lập các thuộc tính của mã thông báo. Để biết thêm thông tin, hãy xem Nhận thông tin về OAuth V2 chính sách và Đặt OAuth Chính sách thông tin phiên bản 2.
AccessToken
phải tham chiếu đến một biến
có chứa mã truy cập.
Bạn cũng có thể sử dụng API Edge để cập nhật các thuộc tính tuỳ chỉnh được đính kèm vào một mã thông báo. Xem API tài liệu về Cập nhật Mã truy cập OAuth 2.0.