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
Giới thiệu về siêu dữ liệu của mã thông báo
Apigee Edge tạo mã truy cập OAuth, mã làm mới và mã uỷ quyền, đồng thời phân phát các mã này cho các ứng dụng đã xác thực. Tại thời điểm tạo, Edge sẽ lưu trữ các mã thông báo và mã đó. Sau đó, khi nhận được các yêu cầu API đến mang theo những mã thông báo hoặc mã này, Edge sẽ sử dụng thông tin đã lưu trữ để uỷ quyền cho 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ã. Ví dụ: mã truy cập được liên kết với các 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 được liên kết cũng như các thông tin khác.
Phần biểu thị JSON của mã truy cập Edge 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, tư cách thành viên nhóm hoặc vai trò cho người dùng, mã nhận dạng khách hàng, mã nhận dạng phiên hoặc thông tin tuỳ ý khác vào mã thông báo. Trong Apigee Edge, những dữ liệu này được gọi là "thuộc tính 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 đó sẽ được cung cấp cho proxy API thông qua các biến ngữ cảnh. API Proxy có thể đưa ra quyết định uỷ quyền hoặc định tuyến chi tiết 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 tùy chỉnh và giá trị mà thuộc tính đó sẽ nhận. Ví dụ: sau đây là một cấu hình chính sách tạo ra một mã thông báo và đính kèm một thuộc tính tùy 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à ngầm đính kèm các thuộc tính đó vào mã uỷ quyền (<Operation>GenerateAuthorizationCode</Operation>) hoặc mã thông báo (<Operation>GenerateAccessToken</Operation>) tại thời điểm tạo.
Khi display được đặt thành true (mặc định), các thuộc tính tuỳ chỉnh sẽ được trả về trong phản hồi, trong đó ứng dụng có thể xem được các thuộc tính này hoặc truyền cho người dùng cuối.
Khi display được đặt thành false, các thuộc tính tuỳ chỉnh sẽ được lưu trữ trong kho dữ liệu nhưng không được trả về trong thông báo phản hồi. Trong cả hai trường hợp, dữ liệu tuỳ chỉnh đều có sẵn cho các chính sách trong API Proxy, sau khi mã thông báo được xác minh.
Để biết thêm thông tin về lựa 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 tuỳ chỉnh trong thời gian chạy
Khi có lệnh gọi đến OAuthV2/VerifyAccessToken, Apigee Edge sẽ xác minh mã thông báo bằng cách tra cứu mã thông báo đó trong kho mã thông báo. Sau đó, Apigee Edge sẽ điền một tập hợp các biến ngữ cảnh chứa thông tin về mã thông báo. Trong đó có:
- organization_name
- developer.id
- developer.app.name
- client_id
- grant_type
- token_type
- access_token
- issued_at
- expires_in //--in seconds
- trạng thái
- phạm vi
- apiproduct.name*
Nếu có thuộc tính tuỳ chỉnh trên mã thông báo, thì các thuộc tính tuỳ chỉnh đó sẽ có sẵn trong một biến ngữ cảnh có tên accesstoken.{custom_attribute}. Ví dụ: giả sử một mã thông báo được phát hành theo chính sách nêu trên. Sau khi xác minh mã thông báo như vậy, sẽ có một biến ngữ cảnh bổ sung có tên là accesstoken.tenant_list, chứa giá trị được lưu trữ tại thời điểm mã thông báo được tạo.
Sau đó, các chính sách hoặc điều kiện có thể tham chiếu đến những biến này và sửa đổi hành vi dựa trên các giá trị được lưu trữ trong đó.
Thiết lập 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 API Proxy 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 lệnh gọi API đang được xử lý trên Apigee Edge. Để hỗ trợ việc này, Apigee cung cấp các chính sách để nhận và đặt thuộc tính mã thông báo. Để biết thêm thông tin, hãy xem Chính sách Lấy thông tin OAuth phiên bản 2 và Chính sách Đặt thông tin OAuth phiên bản 2.
AccessToken phải tham chiếu đến một biến chứa mã truy cập.
Bạn cũng có thể sử dụng Edge API để 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. Hãy xem tài liệu về API để biết phương thức Cập nhật mã truy cập OAuth 2.0.