Thiết lập chính sách OAuthV2Info

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 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 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,expiry_in, developer_email, client_id, org_name hoặc Refresh_count. Nếu một đã tồn tại. Chính sách này sẽ cập nhật thuộc tính đó. Nếu không có, chính sách sẽ thêm giá trị này. Chiến lược phát hành đĩa đơn mã truy cập được tham chiếu phải hợp lệ và ở trạng thái đã phê duyệt.

Mẫu

Ví dụ cơ bản

Dưới đây là một chính sách mẫu dùng để cập nhật mã truy cập OAuth 2.0. Ví dụ bên dưới 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 access_token. Khi một ứng dụng khách hiển thị mã truy cập, chính sách sẽ xác định vị trí của mã truy cập trong tham số truy vấn ở bên dưới. Sau đó, ứng dụng sẽ cập nhật quyền truy cập hồ sơ của mã thông báo. 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ử

Thông tin tham chiếu 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>

<Thiết lập OAuthV2Info> thuộc tính

<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 name có thể chứa chữ cái, số, dấu cách, dấu gạch nối, dấu gạch dưới và dấu chấm. Giá trị này không được vượt quá 255 ký tự.

(Không bắt buộc) Bạn có thể dùng phần tử <DisplayName> để gắn nhãn 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 ngôn ngữ tự nhiên khác.

Không áp dụng Bắt buộc
continueOnError

Đặt thành false để trả về lỗi khi chính sách không thành công. Điều này là dự kiến đối với hầu hết các chính sách.

Đặt thành true để tiếp tục thực thi luồng ngay cả sau khi có chính sách không thành công.

false Không bắt buộc
enabled

Hãy đặt thành true để thực thi chính sách này.

Đặt thành false để tắt chính sách này. Chính sách này sẽ không được thực thi ngay cả khi luồng đó vẫn được liên kết với một luồng.

đú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

&lt;DisplayName&gt; 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 name của chính sách sẽ là đã sử dụng.

Sự hiện diện Không bắt buộc
Loại Chuỗi

&lt;AccessToken&gt; phần tử

Xác định biến chứa mã truy cập. Ví dụ: nếu mã truy cập là đính kèm để yêu cầu thông báo dưới dạng tham số truy vấn, hãy xác định request.queryparam.access_token. Bạn có thể sử dụng bất kỳ biến nào hợp lệ 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 chữ (trường hợp hiếm).

 <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 Mô tả Mặc định Sự hiện diện
tham chiếu

Biến mã truy cập. Thông thường, giá trị này được truy xuất từ một biến luồng.

Không áp dụng Không bắt buộc

&lt;Attributes&gt; phần tử

Một nhóm 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

&lt;Attributes&gt;/&lt;Attribute&gt; phần tử

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 đã cập nhật. Ví dụ này cho biết cách sử dụng một giá trị biến được tham chiếu và một 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 Mô tả Mặc định Sự hiện diện
tên Tên của thuộc tính hồ sơ mà bạn muốn thêm hoặc thay đổi. Không áp dụng
tham chiếu

Giá trị để 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 để tham khảo đều có 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>

Chủ đề có liên quan