Variabel alur OAuth

Anda sedang melihat dokumentasi Apigee Edge.
Buka dokumentasi Apigee X.
info

Apigee Edge merangkum kemampuan OAuth 1.0a dan OAuth 2 dalam serangkaian kebijakan. Pengelolaan siklus proses token dan secret, termasuk pembuatan, validasi, dan penyimpanan, dikelola oleh Apigee Edge atas nama layanan backend Anda.

Dokumen ini menentukan variabel alur yang ditentukan oleh kebijakan OAuth. Variabel dapat digunakan untuk menerapkan perilaku kustom untuk alur OAuth. Untuk penggunaan OAuth, lihat OAuth.

Variabel alur OAuth 2.0

Variabel alur yang ditentukan dalam tabel ini diisi saat kebijakan OAuth masing-masing dijalankan, sehingga tersedia untuk kebijakan atau aplikasi lain yang dijalankan dalam alur proxy API.

Memverifikasi kebijakan token akses
  • 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>*

* Variabel produk API

Contoh kebijakan:

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

Hanya token pembawa yang didukung. Token MAC tidak didukung.

Secara default, token akses harus diteruskan di header permintaan HTTP Authorization.

Contoh:

"Authorization: Bearer {PlainText_AccessToken}"

flow.variable apa pun dapat diteruskan sebagai:

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

Jika kolom opsional tidak ditentukan, nilai akan diekstrak sesuai dengan spesifikasi OAuth 2.0.

Kebijakan pembuatan kode otorisasi
Variabel yang ditetapkan saat berhasil:
  • oauthv2authcode.{policy_name}.code
  • oauthv2authcode.{policy_name}.redirect_uri
  • oauthv2authcode.{policy_name}.scope
  • oauthv2authcode.{policy_name}.client_id

Contoh kebijakan:

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

* Opsional

flow.variable apa pun dapat diteruskan sebagai:

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

Jika kolom opsional tidak ditentukan, nilai akan diekstrak sesuai dengan spesifikasi OAuth 2.0.

Nilai atribut diturunkan secara dinamis dari flow variable yang ditentukan, atau secara statis menggunakan nilai default dalam kebijakan.

Jika keduanya ditentukan, flow variable akan diprioritaskan.

Membuat kebijakan token akses untuk jenis pemberian kode otorisasi, kredensial pengguna, dan kredensial klien
Variabel yang ditetapkan saat berhasil:
  • oauthv2accesstoken.{policy_name}.access_token
  • oauthv2accesstoken.{policy_name}.token_type
  • oauthv2accesstoken.{policy_name}.expires_in
  • oauthv2accesstoken.{policy_name}.refresh_token

Contoh kebijakan:

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

* Opsional

flow.variable apa pun dapat diteruskan sebagai:

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

Jika kolom opsional tidak ditentukan, nilai akan diekstrak sesuai dengan spesifikasi OAuth 2.0.

Nilai atribut diturunkan secara dinamis dari flow variable yang ditentukan, atau secara statis menggunakan nilai default dalam kebijakan.

Jika keduanya ditentukan, flow variable akan diprioritaskan.

Membuat kebijakan token akses untuk jenis pemberian izin Implisit
Variabel yang ditetapkan saat berhasil:
  • oauthv2accesstoken.{policy_name}.access_token
  • oauthv2accesstoken.{policy_name}.token_type
  • oauthv2accesstoken.{policy_name}.expires_in
  • oauthv2accesstoken.{policy_name}.refresh_token

Contoh kebijakan:

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

* Opsional

flow.variable apa pun dapat diteruskan sebagai:

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

Jika kolom opsional tidak ditentukan, nilai akan diekstrak sesuai dengan spesifikasi OAuth 2.0.

Nilai atribut diturunkan secara dinamis dari flow variable yang ditentukan, atau secara statis menggunakan nilai default dalam kebijakan.

Jika keduanya ditentukan, flow variable akan diprioritaskan.

Kebijakan token akses muat ulang
Variabel yang ditetapkan saat berhasil:
  • oauthv2accesstoken.{policy_name}.access_token
  • oauthv2accesstoken.{policy_name}.token_type
  • oauthv2accesstoken.{policy_name}.expires_in
  • oauthv2accesstoken.{policy_name}.refresh_token

Contoh kebijakan:

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

* Opsional

flow.variable apa pun dapat diteruskan sebagai:

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

Jika kolom opsional tidak ditentukan, nilai akan diekstrak sesuai dengan spesifikasi OAuth 2.0.

Kebijakan mendapatkan atribut klien

Contoh kebijakan:

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

Contoh kebijakan:

<GetOAuthV2Info name="GetClientAttributes">
  <ClientId>{client_id}</ClientId>
</GetOAuthV2Info>
Mendapatkan kebijakan atribut token akses
Variabel yang ditetapkan saat berhasil:
  • 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

Contoh kebijakan:

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

Contoh kebijakan:

<GetOAuthV2Info name="GetTokenAttributes">
<AccessToken>{access_token}</AccessToken>
</GetOAuthV2Info>
Mendapatkan kebijakan atribut kode otorisasi

Contoh kebijakan:

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

Contoh kebijakan:

<GetOAuthV2Info name="GetAuthCodeAttributes">
    <AuthorizationCode>{authorization_code}</AuthorizationCode>
</GetOAuthV2Info>
Mendapatkan kebijakan atribut token refresh

Contoh kebijakan:

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

Contoh kebijakan:

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

Variabel alur OAuth 1.0a

Variabel alur yang ditentukan dalam tabel ini diisi saat kebijakan OAuth masing-masing dijalankan, sehingga tersedia untuk kebijakan atau aplikasi lain yang dijalankan dalam alur proxy API.

Membuat kebijakan token permintaan

Contoh kebijakan:

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

Variabel yang ditetapkan saat berhasil:

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

Membuat kebijakan token akses

Contoh kebijakan:

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

Variabel yang ditetapkan saat berhasil:

  • oauth_token
  • oauth_token_secret
  • oauth_response
  • oauth_consumer_key
  • oauth_consumer_secret

Kebijakan verifikasi token akses

Contoh kebijakan:

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

Variabel yang ditetapkan saat berhasil:

  • oauth_token
  • oauth_token_secret
  • oauth_response
  • oauth_consumer_key
  • oauth_consumer_secret

Memverifikasi kebijakan kunci API

Contoh kebijakan:

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

* Opsional

Variabel yang ditetapkan saat berhasil:

  • oauth_consumer_key
  • oauth_consumer_secret

Memverifikasi kebijakan konsumen

Contoh kebijakan:

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

* Opsional

Variabel yang ditetapkan saat berhasil:

  • oauth_consumer_key
  • oauth_consumer_secret

Memverifikasi kebijakan token

Contoh kebijakan:

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

* Opsional

Variabel yang ditetapkan saat berhasil:

  • oauth_token
  • oauth_token_secret