Variabel alur OAuth

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

Apigee Edge mengenkapsulasi 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 ini 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 setiap kebijakan OAuth dijalankan, sehingga tersedia untuk kebijakan atau aplikasi lain yang dieksekusi di 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

Kebijakan contoh:

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

Hanya token pemilik yang didukung. Token MAC tidak didukung.

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

Contoh:

"Authorization: Bearer {PlainText_AccessToken}"

Setiap flow.variable 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 spesifikasi OAuth 2.0.

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

Kebijakan contoh:

<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

Setiap flow.variable 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 spesifikasi OAuth 2.0.

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

Jika keduanya ditentukan, variabel flow akan diprioritaskan.

Membuat kebijakan token akses untuk kode otorisasi jenis pemberian, 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

Kebijakan contoh:

<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

Setiap flow.variable 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 spesifikasi OAuth 2.0.

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

Jika keduanya ditentukan, variabel flow akan diprioritaskan.

Membuat kebijakan token akses untuk Jenis pemberian 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

Kebijakan contoh:

<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

Setiap flow.variable 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 spesifikasi OAuth 2.0.

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

Jika keduanya ditentukan, variabel flow akan diprioritaskan.

Perbarui kebijakan token akses
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

Kebijakan contoh:

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

* Opsional

Setiap flow.variable 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 spesifikasi OAuth 2.0.

Mendapatkan kebijakan atribut klien

Kebijakan contoh:

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

Kebijakan contoh:

<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

Kebijakan contoh:

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

Kebijakan contoh:

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

Kebijakan contoh:

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

Kebijakan contoh:

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

Kebijakan contoh:

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

Kebijakan contoh:

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

Variabel alur OAuth 1.0a

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

Membuat kebijakan token permintaan

Kebijakan contoh:

<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

Kebijakan contoh:

<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

Kebijakan contoh:

<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

Kebijakan contoh:

<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

Kebijakan contoh:

<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

Kebijakan contoh:

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

* Opsional

Variabel yang ditetapkan saat berhasil:

  • oauth_token
  • oauth_token_secret