Biến quy trình OAuth

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

Apigee Edge đóng gói các chức năng OAuth 1.0a và OAuth 2 trong một tập hợp các chính sách. Apigee Edge quản lý việc quản lý vòng đời của mã thông báo và khoá bí mật, bao gồm cả việc tạo, xác thực và lưu trữ thay cho các dịch vụ phụ trợ của bạn.

Tài liệu này chỉ định các biến luồng do chính sách OAuth xác định. Bạn có thể dùng các biến này để triển khai hành vi tuỳ chỉnh cho quy trình OAuth. Để biết cách sử dụng OAuth, hãy xem phần OAuth.

Các biến quy trình OAuth 2.0

Các biến luồng được xác định trong bảng này sẽ được điền sẵn khi các chính sách OAuth tương ứng được thực thi, do đó, các biến này có sẵn cho các chính sách hoặc ứng dụng khác thực thi trong luồng proxy API.

Xác minh chính sách mã truy cập
  • organization_name
  • organization_name
  • developer.id
  • developer.app.name
  • client_id
  • grant_type
  • token_type
  • access_token
  • accesstoken.{custom_attribute}
  • issued_at
  • expires_in
  • status
  • scope
  • apiproduct.name*
  • apiproduct.<custom_attribute_name>*

* Các biến sản phẩm API

Chính sách mẫu:

<OAuthV2 name="VerifyAccessToken">
    <Operation>VerifyAccessToken</Operation>
    <Scope>space-separated-scopes</Scope>*
    <AccessToken>flow.variable</AccessToken>*        
    <AccessTokenPrefix>Bearer</AccessTokenPrefix>*
</OAuthV2>

Hệ thống chỉ hỗ trợ mã thông báo của người mang. Không hỗ trợ mã thông báo MAC.

Theo mặc định, mã truy cập phải được truyền trong tiêu đề yêu cầu HTTP Authorization.

Ví dụ:

"Authorization: Bearer {PlainText_AccessToken}"

Bạn có thể truyền bất kỳ flow.variable nào dưới dạng:

  • HTTP Header: request.header.{variable_name}
  • Query parameter: request.queryparam.{variable_name}
  • Form parameter: request.formparam.{variable_name}

Nếu bạn không chỉ định các trường không bắt buộc, thì các giá trị sẽ được trích xuất theo quy cách OAuth 2.0.

Tạo chính sách mã uỷ quyền
Các biến được đặt khi thành công:
  • oauthv2authcode.{policy_name}.code
  • oauthv2authcode.{policy_name}.redirect_uri
  • oauthv2authcode.{policy_name}.scope
  • oauthv2authcode.{policy_name}.client_id

Chính sách mẫu:

<OAuthV2 name="GetAuthCode">
  <Operation>GenerateAuthorizationCode</Operation>
  <ExpiresIn>1000<ExpiresIn>
  <ResponseType>flow.variable</ResponseType>*
  <ClientId>flow.variable</ClientId>*
  <RedirectUri>flow.variable</RedirectUri>*
  <Scope>flow.variable</Scope>*
  <State>flow.variable</State>*
  <Attributes>*   
    <Attribute name=1 ref=flow.variable”>value1</Attribute>
    <Attribute name=2 ref=flow.variable”>value2</Attribute>
  </Attributes>
</OAuthV2>

* Không bắt buộc

Bạn có thể truyền bất kỳ flow.variable nào dưới dạng:

  • HTTP Header: request.header.{variable_name}
  • Query parameter: request.queryparam.{variable_name}
  • Form parameter: request.formparam.{variable_name}

Nếu bạn không chỉ định các trường không bắt buộc, thì các giá trị sẽ được trích xuất theo quy cách OAuth 2.0.

Các giá trị thuộc tính được lấy một cách linh động từ biến luồng được chỉ định hoặc tĩnh bằng cách sử dụng giá trị mặc định trong chính sách.

Nếu bạn chỉ định cả hai, thì biến luồng sẽ được ưu tiên.

Tạo chính sách mã thông báo truy cập cho mã uỷ quyền loại cấp, thông tin xác thực người dùng và thông tin xác thực ứng dụng khách
Các biến được đặt khi thành công:
  • oauthv2accesstoken.{policy_name}.access_token
  • oauthv2accesstoken.{policy_name}.token_type
  • oauthv2accesstoken.{policy_name}.expires_in
  • oauthv2accesstoken.{policy_name}.refresh_token

Chính sách mẫu:

<OAuthV2 name="GenerateAccessToken">
  <Operation>GenerateAccessToken</Operation>
  <ExpiresIn>1000<ExpiresIn>
  <SupportedGrantTypes>*
    <GrantType>authorization_code</GrantType>
    <GrantType>password</GrantType>
   <GrantType>client_credentials</GrantType>
  </SupportedGrantTypes>
  <GrantType>flow.variable</GrantType>* 
  <ClientId>flow.variable</ClientId>* 
  <RedirectUri>flow.variable</RedirectUri>* 
  <Scope>flow.variable</Scope>* 
  <AppEndUser>flow.variable</AppEndUser>* 
  <Code>flow.variable</Code>* 
  <UserName>flow.variable</UserName>* 
  <PassWord>flow.variable</PassWord>*
  <Attributes>*
    <Attribute name=1 ref=flow.variable”>value1</Attribute> 
    <Attribute name=2 ref=flow.variable”>value2</Attribute>  
  </Attributes>
</OAuthV2>

* Không bắt buộc

Bạn có thể truyền bất kỳ flow.variable nào dưới dạng:

  • HTTP Header: request.header.{variable_name}
  • Query parameter: request.queryparam.{variable_name}
  • Form parameter: request.formparam.{variable_name}

Nếu bạn không chỉ định các trường không bắt buộc, thì các giá trị sẽ được trích xuất theo quy cách OAuth 2.0.

Các giá trị thuộc tính được lấy một cách linh động từ biến luồng được chỉ định hoặc tĩnh bằng cách sử dụng giá trị mặc định trong chính sách.

Nếu bạn chỉ định cả hai, thì biến luồng sẽ được ưu tiên.

Tạo chính sách mã thông báo truy cập cho loại cấp ngầm
Các biến được đặt khi thành công:
  • oauthv2accesstoken.{policy_name}.access_token
  • oauthv2accesstoken.{policy_name}.token_type
  • oauthv2accesstoken.{policy_name}.expires_in
  • oauthv2accesstoken.{policy_name}.refresh_token

Chính sách mẫu:

<OAuthV2 name="GenerateAccessToken">
  <Operation>GenerateAccessTokenImplicitGrant</Operation>
  <ExpiresIn>1000<ExpiresIn>
  <ResponseType>flow.variable></ResponseType>*
  <ClientId>flow.variable></ClientId>*
  <RedirectUri>flow.variable></RedirectUri>*
  <Scope>flow.variable></Scope>*
  <State>flow.variable></State>*
  <AppEndUser>flow.variable</AppEndUser>*                                   
  <Attributes>*
    <Attribute name=1 ref=flow.variable”>value1</Attribute>
    <Attribute name=2 ref=flow.variable”>value2</Attribute>
  </Attributes>
</OAuthV2>

* Không bắt buộc

Bạn có thể truyền bất kỳ flow.variable nào dưới dạng:

  • HTTP Header: request.header.{variable_name}
  • Query parameter: request.queryparam.{variable_name}
  • Form parameter: request.formparam.{variable_name}

Nếu bạn không chỉ định các trường không bắt buộc, thì các giá trị sẽ được trích xuất theo quy cách OAuth 2.0.

Các giá trị thuộc tính được lấy một cách linh động từ biến luồng được chỉ định hoặc tĩnh bằng cách sử dụng giá trị mặc định trong chính sách.

Nếu bạn chỉ định cả hai, thì biến luồng sẽ được ưu tiên.

Làm mới chính sách mã truy cập
Các biến được đặt khi thành công:
  • oauthv2accesstoken.{policy_name}.access_token
  • oauthv2accesstoken.{policy_name}.token_type
  • oauthv2accesstoken.{policy_name}.expires_in
  • oauthv2accesstoken.{policy_name}.refresh_token

Chính sách mẫu:

<OAuthV2 name="RefreshAccessToken">
  <Operation>RefreshAccessToken</Operation>
  <ExpiresIn>1000<ExpiresIn>
  <GrantType>flow.variable</GrantType>*
  <RefreshToken>flow.variable</RefreshToken>*
</OAuthV2>

* Không bắt buộc

Bạn có thể truyền bất kỳ flow.variable nào dưới dạng:

  • HTTP Header: request.header.{variable_name}
  • Query parameter: request.queryparam.{variable_name}
  • Form parameter: request.formparam.{variable_name}

Nếu bạn không chỉ định các trường không bắt buộc, thì các giá trị sẽ được trích xuất theo quy cách OAuth 2.0.

Chính sách về việc nhận thuộc tính của ứng dụng

Chính sách mẫu:

<GetOAuthV2Info name="GetClientAttributes">
<ClientId ref="{variable_name}"/>
</GetOAuthV2Info>

Chính sách mẫu:

<GetOAuthV2Info name="GetClientAttributes">
  <ClientId>{client_id}</ClientId>
</GetOAuthV2Info>
Lấy chính sách thuộc tính mã truy cập
Các biến được đặt khi thành công:
  • oauthv2accesstoken.{policy_name}.access_token
  • oauthv2accesstoken.{policy_name}.scope
  • oauthv2accesstoken.{policy_name}.refresh_token
  • oauthv2accesstoken.{policy_name}.accesstoken.{custom_attribute_name}
  • oauthv2accesstoken.{policy_name}.developer.id
  • oauthv2accesstoken.{policy_name}.developer.app.name
  • oauthv2accesstoken.{policy_name}.expires_in
  • oauthv2accesstoken.{policy_name}.status

Chính sách mẫu:

<GetOAuthV2Info name="GetTokenAttributes">
  <AccessToken ref="{variable_name}"/>
</GetOAuthV2Info>

Chính sách mẫu:

<GetOAuthV2Info name="GetTokenAttributes">
<AccessToken>{access_token}</AccessToken>
</GetOAuthV2Info>
Nhận chính sách thuộc tính mã uỷ quyền

Chính sách mẫu:

<GetOAuthV2Info name="GetAuthCodeAttributes">
 <AuthorizationCode ref="{variable_name}"/>
</GetOAuthV2Info>

Chính sách mẫu:

<GetOAuthV2Info name="GetAuthCodeAttributes">
    <AuthorizationCode>{authorization_code}</AuthorizationCode>
</GetOAuthV2Info>
Chính sách nhận thuộc tính mã làm mới

Chính sách mẫu:

<GetOAuthV2Info name="GetTokenAttributes">
  <RefreshToken ref="{variable_name}"/>
</GetOAuthV2Info>

Chính sách mẫu:

<GetOAuthV2Info name="GetTokenAttributes">
    <RefreshToken>{refresh_token}</RefreshToken>
</GetOAuthV2Info>

Các biến quy trình OAuth 1.0a

Các biến luồng được xác định trong bảng này sẽ được điền sẵn khi các chính sách OAuth tương ứng được thực thi, do đó, các biến này có sẵn cho các chính sách hoặc ứng dụng khác thực thi trong luồng proxy API.

Tạo chính sách mã thông báo yêu cầu

Chính sách mẫu:

<OAuthV1 name="GenerateRequestToken">
  <Operation>GenerateRequestToken</Operation>
</OAuthV1>

Các biến được đặt khi thành công:

  • oauth_token
  • oauth_token_secret
  • oauth_callback_confirmed
  • oauth_response
  • oauth_consumer_key
  • oauth_consumer_secret

Tạo chính sách mã truy cập

Chính sách mẫu:

<OAuthV1 name="GenerateAccessToken">
  <Operation>GenerateAccessToken</Operation>
</OAuthV1>

Các biến được đặt khi thành công:

  • oauth_token
  • oauth_token_secret
  • oauth_response
  • oauth_consumer_key
  • oauth_consumer_secret

Chính sách xác minh mã truy cập

Chính sách mẫu:

<OAuthV1 name="VerifyAccessToken">
  <Operation>VerifyAccessToken</Operation>
</OAuthV1>

Các biến được đặt khi thành công:

  • oauth_token
  • oauth_token_secret
  • oauth_response
  • oauth_consumer_key
  • oauth_consumer_secret

Chính sách xác minh khoá API

Chính sách mẫu:

<GetOAuthV1Info name="VerifyApiKey">
  <OAuthConfig>{config_name}</OAuthConfig>*
  <APIKey ref="{variable_name}" />
</GetOAuthV1Info>

* Không bắt buộc

Các biến được đặt khi thành công:

  • oauth_consumer_key
  • oauth_consumer_secret

Xác minh chính sách dành cho người tiêu dùng

Chính sách mẫu:

<GetOAuthV1Info name="VerifyConsumer">
  <OAuthConfig>{config_name}</OAuthConfig>*
  <ConsumerKey ref="{variable_name}" />
</GetOAuthV1Info>

* Không bắt buộc

Các biến được đặt khi thành công:

  • oauth_consumer_key
  • oauth_consumer_secret

Xác minh chính sách về mã thông báo

Chính sách mẫu:

<GetOAuthV1Info name="VerifyToken">
  <OAuthConfig>{config_name}</OAuthConfig>*
  <RequestToken ref="{variable_name}" />
</GetOAuthV1Info>

* Không bắt buộc

Các biến được đặt khi thành công:

  • oauth_token
  • oauth_token_secret