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
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 được liên kết với mã truy cập. Thuộc tính tuỳ chỉnh có thể bao gồm những thông tin như tên bộ phận, mã khách hàng hoặc mã nhận dạng phiên. Xem thêm phần 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, expires_in, developer_email, client_id, org_name hoặc refresh_count. Nếu một thuộc tính đã tồn tại, chính sách này sẽ cập nhật thuộc tính đó. Nếu không tồn tại, chính sách sẽ thêm thông tin đó. 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ụ bên dưới xác định vị trí 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 trình bày mã truy cập, chính sách bên dưới 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 trang doanh nghiệp của mã thông báo 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 về phần tử mô tả các phần tử và thuộc tính của chính sách SetOAuthV2.
<?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 <SetOAuthV2Info>
<SetOAuthV2Info async="false" continueOnError="false" enabled="true" name="Set-OAuth-v20-Info-1">
Bảng sau đây mô tả những thuộc tính chung cho tất cả phần tử mẹ của chính sách:
| Thuộc tính | 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 (Không bắt buộc) Bạn có thể 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 |
Hãy đặ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 |
<DisplayName> phần tử
Hãy sử dụng cùng với thuộc tính name để gắn nhãn chính sách trong phần
trình chỉnh sửa proxy giao diện người dùng quản lý có tên ngôn ngữ tự nhiên khác.
<DisplayName>Policy Display Name</DisplayName>
| Mặc định |
Không áp dụng Nếu bạn bỏ qua phần tử này, giá trị của 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 chứa mã truy cập. Ví dụ: nếu mã truy cập được đính kèm vào thông báo yêu cầu 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ể truyền vào chuỗi mã thông báo theo nghĩa đen (trường hợp hiếm gặp).
<AccessToken ref="request.queryparam.access_token"></AccessToken>
| Mặc định: | Không áp dụng |
| Trạng thái hiện diện: | Bắt buộc |
| Loại: | Chuỗi |
Thuộc tính
| Thuộc tính | Mô tả | Mặc định | Tỷ lệ hiển thị |
|---|---|---|---|
| ref |
Một biến mã truy cập. Thường được truy xuất từ mộ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 |
| Trạng thái hiện diện: | Bắt buộc |
| Loại: | Không áp dụng |
Phần tử <Attributes>/<Attribute>
Một thuộc tính riêng lẻ cần cập nhật.
Thuộc tính name xác định thuộc tính tuỳ chỉnh của hồ sơ mã truy cập cần được cập nhật. Ví dụ này cho thấy 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 |
| Trạng thái 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 | Mô tả | Mặc định | Tỷ lệ hiển thị |
|---|---|---|---|
| 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 | |
| ref |
Giá trị cần gán cho thuộc tính hồ sơ. |
Không áp dụng | Không bắt buộc |
Biến dòng
Khi thành công, các biến luồng sau đây sẽ được đặt:
oauthv2accesstoken.{policyName}.access_tokenoauthv2accesstoken.{policyName}.client_idoauthv2accesstoken.{policyName}.refresh_countoauthv2accesstoken.{policyName}.organization_nameoauthv2accesstoken.{policyName}.expires_in //--in secondsoauthv2accesstoken.{policyName}.refresh_token_expires_in //--in secondsoauthv2accesstoken.{policyName}.issued_atoauthv2accesstoken.{policyName}.statusoauthv2accesstoken.{policyName}.api_product_listoauthv2accesstoken.{policyName}.token_typeoauthv2accesstoken.{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). Để tham khảo, bạn có thể xem giản đồ chính sách trên GitHub.
Tham chiếu lỗi
This section describes the fault codes and error messages that are returned and fault variables that are set by Edge when this policy triggers an error. This information is important to know if you are developing fault rules to handle faults. To learn more, see What you need to know about policy errors and Handling faults.
Runtime errors
These errors can occur when the policy executes.
| Fault code | HTTP status | Cause |
|---|---|---|
steps.oauth.v2.access_token_expired |
500 | The access token sent to the policy is expired. |
steps.oauth.v2.invalid_access_token |
500 | The access token sent to the policy is invalid. |
steps.oauth.v2.InvalidAPICallAsNoApiProductMatchFound |
401 | Please see this Apigee Community post for information about troubleshooting this error. |
Deployment errors
Refer to the message reported in the UI for information about deployment errors.
Fault variables
These variables are set when this policy triggers an error at runtime.
| Variables | Where | Example |
|---|---|---|
fault.name="fault_name" |
fault_name is the name of the fault, as listed in the Runtime errors table above. The fault name is the last part of the fault code. | fault.name = "invalid_access_token" |
oauthV2.policy_name.failed |
policy_name is the user-specified name of the policy that threw the fault. | oauthV2.SetTokenInfo.failed = true |
oauthV2.policy_name.fault.name |
policy_name is the user-specified name of the policy that threw the fault. | oauthV2.SetTokenInfo.fault.name = invalid_access_token |
oauthv2.policy_name.fault.cause |
policy_name is the user-specified name of the policy that threw the fault. | oauthV2.SetTokenInfo.cause = Invalid Access Token |
Example error response
{
"fault": {
"faultstring": "Invalid Access Token",
"detail": {
"errorcode": "keymanagement.service.invalid_access_token"
}
}
}Example fault rule
<FaultRule name=SetOAuthV2Info Faults">
<Step>
<Name>AM-InvalidTokenResponse</Name>
<Condition>(fault.name = "invalid_access_token")</Condition>
</Step>
<Condition>(oauthV2.failed = true) </Condition>
</FaultRule>