Bạn đang xem tài liệu về Apigee Edge.
Chuyển đến tài liệu về
Apigee X. thông tin
Nội dung
Cho phép bạn thêm hoặc cập nhật các thuộc tính tuỳ chỉnh liên kết với mã truy cập. Thuộc tính tuỳ chỉnh có thể bao gồm các thông tin như tên phòng ban, mã khách hàng hoặc mã nhận dạng phiên. Hãy xem thêm bài viết Tuỳ chỉnh mã thông báo và Mã uỷ quyền.
Bạn chỉ có thể thêm hoặc sửa đổi các thuộc tính tuỳ chỉnh. Bạn không thể sử dụng chính sách này để thay đổi các trường như phạm vi, trạng thái, hết hạn_in, email_developer_email, client_id, org_name hoặc refresh_count. Nếu đã có một thuộc tính, chính sách này sẽ cập nhật thuộc tính đó. Nếu mã này không tồn tại thì chính sách sẽ thêm nội dung đó vào. Mã truy cập được tham chiếu phải hợp lệ và ở trạng thái đã được phê duyệt.
Mẫu
Ví dụ cơ bản
Dưới đây là ví dụ về chính sách dùng để cập nhật mã truy cập OAuth 2.0. Ví dụ dưới đây tìm mã truy cập trên thông báo yêu cầu bằng cách tìm một tham số truy vấn có tên là access_token
. Khi một ứng dụng khách cung cấp mã truy cập, chính sách dưới đây sẽ xác định vị trí của mã truy cập trong tham số truy vấn. Sau đó, ứng dụng sẽ cập nhật hồ sơ của mã truy cập. Thao tác này sẽ thêm một thuộc tính tuỳ chỉnh có tên là department.id
vào hồ sơ.
<SetOAuthV2Info name="SetOAuthV2Info"> <AccessToken ref="request.queryparam.access_token"></AccessToken> <Attributes> <Attribute name="department.id" ref="request.queryparam.department_id"></Attribute> </Attributes> </SetOAuthV2Info>
Tham chiếu phần tử
Tài liệu tham khảo phần tử mô tả các phần tử và thuộc tính của chính sách Set OAuthV2.
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <SetOAuthV2Info async="false" continueOnError="false" enabled="true" name="SetOAuthV2Info-1"> <DisplayName>Set OAuth v2.0 Info 1</DisplayName> <AccessToken ref={some-variable}></AccessToken> <Attributes/> </SetOAuthV2Info> </xml>
Thuộc tính <Set OAuthV2Info>
<SetOAuthV2Info async="false" continueOnError="false" enabled="true" name="Set-OAuth-v20-Info-1">
Bảng sau đây mô tả các thuộc tính chung cho tất cả phần tử mẹ của chính sách:
Thuộc tính | Nội dung mô tả | Mặc định | Sự hiện diện |
---|---|---|---|
name |
Tên nội bộ của chính sách. Giá trị của thuộc tính Nếu muốn, bạn có thể sử dụng phần tử |
Không áp dụng | Bắt buộc |
continueOnError |
Đặt thành Đặt thành |
false | Không bắt buộc |
enabled |
Đặt thành Đặt thành |
đúng | Không bắt buộc |
async |
Thuộc tính này không được dùng nữa. |
false | Không được dùng nữa |
Phần tử <DisplayName>
Sử dụng cùng với thuộc tính name
để gắn nhãn cho chính sách trong trình chỉnh sửa proxy giao diện người dùng quản lý bằng tên khác theo ngôn ngữ tự nhiên.
<DisplayName>Policy Display Name</DisplayName>
Mặc định |
Không áp dụng Nếu bạn bỏ qua phần tử này, thì giá trị thuộc tính |
---|---|
Sự hiện diện | Không bắt buộc |
Loại | Chuỗi |
Phần tử <AccessToken>
Xác định biến nơi đặt mã truy cập. Ví dụ: nếu mã truy cập được đính kèm để yêu cầu thông báo dưới dạng tham số truy vấn, hãy chỉ định request.queryparam.access_token
. Bạn có thể sử dụng bất kỳ biến hợp lệ nào tham chiếu đến mã thông báo. Hoặc có thể chuyển vào chuỗi mã thông báo bằng giá trị cố định (hiếm khi gặp).
<AccessToken ref="request.queryparam.access_token"></AccessToken>
Mặc định: | Không áp dụng |
Sự hiện diện: | Bắt buộc |
Loại: | Chuỗi |
Thuộc tính
Thuộc tính | Nội dung mô tả | Mặc định | Sự hiện diện |
---|---|---|---|
giới thiệu |
Biến mã truy cập. Thường được truy xuất từ biến luồng. |
Không áp dụng | Không bắt buộc |
Phần tử <Attributes>
Một tập hợp các thuộc tính trong hồ sơ mã truy cập sẽ được sửa đổi hoặc tăng cường.
Mặc định: | Không áp dụng |
Sự hiện diện: | Bắt buộc |
Loại: | Không áp dụng |
Phần tử <Thuộc tính>/<Thuộc tính>
Một thuộc tính riêng lẻ cần cập nhật.
Thuộc tính tên xác định thuộc tính tuỳ chỉnh của hồ sơ mã truy cập cần cập nhật. Ví dụ này cho biết cách sử dụng giá trị biến được tham chiếu và giá trị tĩnh.
<Attributes> <Attribute name="department.id" ref="request.queryparam.department_id"></Attribute> <Attribute name="foo">bar</Attribute> </Attributes>
Mặc định: | Không áp dụng |
Sự hiện diện: | Không bắt buộc |
Loại: | Không áp dụng |
Thuộc tính
Thuộc tính | Nội dung mô tả | Mặc định | Sự hiện diện |
---|---|---|---|
tên | Tên của thuộc tính hồ sơ cần thêm hoặc thay đổi. | Không áp dụng | |
giới thiệu |
Giá trị cần gán cho thuộc tính cấu hình. |
Không áp dụng | Không bắt buộc |
Biến luồng
Khi thành công, các biến luồng sau sẽ được đặt:
oauthv2accesstoken.{policyName}.access_token
oauthv2accesstoken.{policyName}.client_id
oauthv2accesstoken.{policyName}.refresh_count
oauthv2accesstoken.{policyName}.organization_name
oauthv2accesstoken.{policyName}.expires_in //--in seconds
oauthv2accesstoken.{policyName}.refresh_token_expires_in //--in seconds
oauthv2accesstoken.{policyName}.issued_at
oauthv2accesstoken.{policyName}.status
oauthv2accesstoken.{policyName}.api_product_list
oauthv2accesstoken.{policyName}.token_type
oauthv2accesstoken.{policyName}.{custom_attribute_name}
Lược đồ
Mỗi loại chính sách được xác định bằng một giản đồ XML (.xsd
). Giản đồ chính sách có sẵn trên GitHub để bạn tham khảo.
Tham chiếu lỗi
Phần này mô tả các mã lỗi và thông báo lỗi được trả về, cũng như các biến lỗi do Edge đặt khi chính sách này kích hoạt lỗi. Thông tin này đóng vai trò quan trọng trong việc phát triển các quy tắc lỗi để xử lý lỗi. Để tìm hiểu thêm, hãy xem Những điều bạn cần biết về lỗi chính sách và Xử lý lỗi.
Lỗi thời gian chạy
Những lỗi này có thể xảy ra khi thực thi chính sách.
Mã lỗi | Trạng thái HTTP | Nguyên nhân |
---|---|---|
steps.oauth.v2.access_token_expired |
500 | Mã truy cập được gửi đến chính sách đã hết hạn. |
steps.oauth.v2.invalid_access_token |
500 | Mã truy cập mà bạn gửi cho chính sách này là không hợp lệ. |
steps.oauth.v2.InvalidAPICallAsNoApiProductMatchFound |
401 | Vui lòng xem bài đăng này trên Cộng đồng Apigee để biết thông tin về cách khắc phục lỗi này. |
Lỗi triển khai
Hãy tham khảo thông báo được báo cáo trong giao diện người dùng để biết thông tin về lỗi triển khai.
Biến lỗi
Các biến này được đặt khi chính sách này kích hoạt lỗi trong thời gian chạy.
Biến | Trong đó | Ví dụ: |
---|---|---|
fault.name="fault_name" |
fault_name là tên của lỗi, như liệt kê trong bảng Lỗi thời gian chạy ở trên. Tên lỗi là phần cuối cùng của mã lỗi. | fault.name = "invalid_access_token" |
oauthV2.policy_name.failed |
policy_name là tên của chính sách báo lỗi do người dùng chỉ định. | oauthV2.SetTokenInfo.failed = true |
oauthV2.policy_name.fault.name |
policy_name là tên của chính sách báo lỗi do người dùng chỉ định. | oauthV2.SetTokenInfo.fault.name = invalid_access_token |
oauthv2.policy_name.fault.cause |
policy_name là tên của chính sách báo lỗi do người dùng chỉ định. | oauthV2.SetTokenInfo.cause = Invalid Access Token |
Ví dụ về phản hồi lỗi
{ "fault": { "faultstring": "Invalid Access Token", "detail": { "errorcode": "keymanagement.service.invalid_access_token" } } }
Ví dụ về quy tắc lỗi
<FaultRule name=SetOAuthV2Info Faults"> <Step> <Name>AM-InvalidTokenResponse</Name> <Condition>(fault.name = "invalid_access_token")</Condition> </Step> <Condition>(oauthV2.failed = true) </Condition> </FaultRule>