Mencabut kebijakan OAuth V2

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

ikon kebijakan

Ringkasan

Mencabut token akses OAuth2 yang terkait dengan ID aplikasi developer atau ID pengguna akhir aplikasi, atau keduanya.

Gunakan kebijakan OAuthv2 untuk membuat token akses OAuth 2.0. Token yang dibuat Apigee memiliki format berikut:

{
  "issued_at" : "1421847736581",
  "application_name" : "a68d01f8-b15c-4be3-b800-ceae8c456f5a",
  "scope" : "READ",
  "status" : "approved",
  "api_product_list" : "[PremiumWeatherAPI]",
  "expires_in" : "3599", //--in seconds
  "developer.email" : "tesla@weathersample.com",
  "organization_id" : "0",
  "token_type" : "BearerToken",
  "client_id" : "k3nJyFJIA3p62DWOkLO6OJNi87GYXFmP",
  "access_token" : "7S22UqXGJDTuUADGzJzjXzXSaGJL",
  "organization_name" : "myorg",
  "refresh_token_expires_in" : "0", //--in seconds
  "refresh_count" : "0"
}

Elemen application_name berisi ID aplikasi developer yang terkait dengan token.

Secara default, Apigee tidak menyertakan ID pengguna akhir dalam token. Anda dapat mengonfigurasi Apigee untuk menyertakan ID pengguna akhir dengan menambahkan elemen <AppEndUser> ke kebijakan OAuthv2:

<OAuthV2 name="GenerateAccessTokenClient">
    <Operation>GenerateAccessTokenV/Operation>
    ...
    <AppEndUser>request.queryparam.app_enduser</AppEndUser>
</OAuthV2>

Dalam contoh ini, teruskan ID pengguna akhir ke kebijakan OAuthv2 dalam parameter kueri yang bernama app_enduser. ID pengguna akhir kemudian disertakan dalam token dalam elemen app_enduser:

{
 "issued_at" : "1421847736581",
 "application_name" : "a68d01f8-b15c-4be3-b800-ceae8c456f5a",
 "scope" : "READ",
 "app_enduser" : "6ZG094fgnjNf02EK",
 "status" : "approved",
 "api_product_list" : "[PremiumWeatherAPI]",
 "expires_in" : "3599", //--in seconds
 "developer.email" : "tesla@weathersample.com",
 "organization_id" : "0",
 "token_type" : "BearerToken",
 "client_id" : "k3nJyFJIA3p62DWOkLO6OJNi87GYXFmP",
 "access_token" : "7S22UqXGJDTuUADGzJzjXzXSaGJL",
 "organization_name" : "myorg",
 "refresh_token_expires_in" : "0", //--in seconds
 "refresh_count" : "0"
}

Cabut menurut ID aplikasi developer

Cabut token akses OAuth2 yang terkait dengan ID aplikasi developer. Semua token akses OAuth2 yang dibuat oleh Apigee menyertakan ID aplikasi developer yang terkait dengan token. Anda kemudian dapat mencabut token berdasarkan ID aplikasi tersebut.

  • Gunakan Developer apps API guna mendapatkan daftar ID aplikasi untuk developer tertentu.

  • Anda juga dapat menggunakan Developer apps API untuk mendapatkan detail tentang aplikasi.

Cabut menurut ID pengguna akhir aplikasi

Cabut token akses OAuth2 yang terkait dengan ID pengguna akhir aplikasi tertentu. Ini tokennya yang terkait dengan ID pengguna yang menjadi tujuan token diterbitkan.

Secara default, tidak ada kolom untuk ID pengguna akhir di token akses OAuth. Untuk mengaktifkan pencabutan Token akses OAuth 2.0 berdasarkan ID pengguna akhir, Anda harus mengonfigurasi kebijakan OAuthv2 untuk menyertakan ID pengguna di token, seperti yang ditunjukkan di atas.

Untuk mendapatkan ID pengguna akhir aplikasi, gunakan API aplikasi developer.

Contoh

Contoh berikut menggunakan kebijakan Cabut OAuth V2 untuk mencabut token akses OAuth2.

ID aplikasi developer

Untuk mencabut token akses berdasarkan ID aplikasi developer, gunakan elemen <AppId> di kebijakan Anda.

Contoh berikut memperkirakan ID aplikasi developer dari token akses dalam parameter kueri yang bernama app_id:

<RevokeOAuthV2 continueOnError="false" enabled="true" name="MyRevokeTokenPolicy">
  <DisplayName>Revoke OAuth v2.0-1</DisplayName>
  <AppId ref="request.queryparam.app_id"></AppId>
</RevokeOAuthV2>

Dengan mempertimbangkan ID aplikasi developer, kebijakan akan mencabut token akses.

Cabut sebelum stempel waktu

Untuk mencabut token akses berdasarkan ID aplikasi developer yang dibuat sebelum tanggal dan waktu tertentu, gunakan elemen <RevokeBeforeTimestamp> dalam kebijakan Anda. <RevokeBeforeTimestamp> menentukan waktu epoch UTC dalam milidetik. Semua token yang dikeluarkan sebelum waktu tersebut akan dicabut.

Contoh berikut mencabut token akses untuk aplikasi developer yang dibuat sebelum 1 Juli 2019:

<RevokeOAuthV2 continueOnError="false" enabled="true" name="MyRevokeTokenPolicy">
  <DisplayName>Revoke OAuth v2.0-1</DisplayName>
  <AppId ref="request.queryparam.app_id"></AppId>
  <RevokeBeforeTimestamp>1561939200000</RevokeBeforeTimestamp>
</RevokeOAuthV2>

Elemen <RevokeBeforeTimestamp> menggunakan bilangan bulat 64-bit (panjang) yang mewakili jumlah milidetik yang berlalu sejak tengah malam, pada 1 Januari 1970 UTC.


Referensi Elemen

Referensi elemen menjelaskan elemen dan atribut kebijakan CabutOAuthV2.

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<RevokeOAuthV2 continueOnError="false" enabled="true" name="GetOAuthV2Info-1">
  <DisplayName>Get OAuth v2.0 Info 1</DisplayName>
  <AppId ref="variable"></AppId>
  <EndUserId ref="variable"></EndUserId>
  <RevokeBeforeTimestamp ref="variable"></RevokeBeforeTimestamp>
  <Cascade>false</Cascade>
</RevokeOAuthV2>

<CabutOAuthV2> atribut

<RevokeOAuthV2 continueOnError="false" enabled="true" name="Revoke-OAuth-v20-1">

Tabel berikut menjelaskan atribut yang umum untuk semua elemen induk kebijakan:

Atribut Deskripsi Default Ketersediaan
name

Nama internal kebijakan. Nilai atribut name dapat berisi huruf, angka, spasi, tanda hubung, garis bawah, dan titik. Nilai ini tidak boleh melebihi 255 karakter.

Secara opsional, gunakan elemen <DisplayName> untuk memberi label kebijakan di editor proxy UI pengelolaan dengan nama natural language yang berbeda.

T/A Wajib
continueOnError

Tetapkan ke false untuk menampilkan error saat kebijakan gagal. Diharapkan untuk sebagian besar kebijakan.

Setel ke true agar eksekusi alur dapat dilanjutkan bahkan setelah kebijakan gagal.

salah Opsional
enabled

Setel ke true untuk menerapkan kebijakan.

Setel ke false untuk menonaktifkan kebijakan. Kebijakan ini tidak akan ditegakkan meskipun tetap terikat pada alur.

true Opsional
async

Atribut ini tidak digunakan lagi.

salah Tidak digunakan lagi

&lt;DisplayName&gt; elemen

Gunakan selain atribut name untuk memberi label kebijakan di editor proxy UI dengan nama natural language yang berbeda.

<DisplayName>Policy Display Name</DisplayName>
Default

T/A

Jika Anda menghapus elemen ini, nilai atribut name kebijakan akan menjadi data

Ketersediaan Opsional
Jenis String

&lt;AppId&gt; elemen

Menentukan ID aplikasi developer token yang akan dicabut. Teruskan variabel yang berisi atau ID aplikasi literal.

<AppId>appIdString</AppId>

or:

<AppId ref="request.queryparam.app_id"></AppId>
Default

request.formparam.app_id (x-www-form-url dienkode dan ditentukan dalam permintaan isi)

Ketersediaan

Opsional

Jenis String
Nilai valid

Variabel flow yang berisi string ID aplikasi atau string literal.

<Cascade> elemen

Jika true dan Anda memiliki token akses buram tradisional, kedua token pembaruan dan token akses akan dicabut jika <AppId> atau <EndUserId> cocok. Jika false, hanya token akses yang dicabut dan token pembaruan tidak berubah. Perilaku yang sama berlaku hanya untuk token akses buram.

<Cascade>false<Cascade>
Default

salah

Ketersediaan

Opsional

Jenis Boolean
Nilai valid true atau false

&lt;EndUserId&gt; elemen

Menentukan ID pengguna akhir aplikasi untuk token yang akan dicabut. Teruskan variabel yang berisi ID pengguna atau string token literal.

<EndUserId>userIdString</EndUserId>

or:

<EndUserId ref="request.queryparam.access_token"></EndUserId>
Default

request.formparam.enduser_id (x-www-form-url dienkode dan ditentukan dalam permintaan isi)

Ketersediaan

Opsional

Jenis String
Nilai valid

Variabel flow yang berisi string ID pengguna, atau string literal.

&lt;RevokeBeforeTimestamp&gt; elemen

Cabut token yang dikeluarkan sebelum stempel waktu. Elemen ini berfungsi dengan <AppId> dan <EndUserId> untuk memungkinkan Anda mencabut token sebelum waktu tertentu. Nilai defaultnya adalah waktu saat kebijakan dijalankan.

<RevokeBeforeTimestamp>timeStampString</RevokeBeforeTimestamp>

or:

<RevokeBeforeTimestamp ref="request.queryparam.revoke_since_timestamp"></RevokeBeforeTimestamp>
Default

Stempel waktu saat kebijakan dijalankan.

Ketersediaan

Opsional

Jenis Bilangan bulat 64-bit (panjang) yang mewakili jumlah milidetik yang berlalu sejak tengah malam, pada 1 Januari 1970 UTC.
Nilai valid

Variabel flow yang berisi stempel waktu, atau stempel waktu literal. Stempel waktu tidak boleh di masa mendatang dan tidak boleh sebelum 1 Januari 2014.

Variabel flow

Kebijakan CabutOAuthV2 tidak menetapkan variabel alur.

Referensi error

Bagian ini menjelaskan kode kesalahan dan pesan kesalahan yang dikembalikan dan variabel kesalahan yang disetel oleh Edge saat kebijakan ini memicu kesalahan. Informasi ini penting untuk diketahui jika Anda mengembangkan aturan kesalahan untuk menangani kesalahan. Untuk mempelajari lebih lanjut, lihat Yang perlu Anda ketahui tentang error kebijakan dan Penanganan kesalahan.

Error runtime

Error ini dapat terjadi saat kebijakan dijalankan. Nama-nama {i>error<i} yang ditunjukkan di bawah ini adalah {i>string<i} yang ditetapkan ke variabel fault.name saat terjadi error. Lihat Kesalahan variabel di bawah ini untuk detail lebih lanjut.

Kode error Status HTTP Penyebab
steps.oauth.v2.InvalidFutureTimestamp 500 Stempel waktu tidak boleh di masa yang akan datang.
steps.oauth.v2.InvalidEarlyTimestamp 500 Stempel waktu tidak boleh sebelum 1 Januari 2014.
steps.oauth.v2.InvalidTimestamp 500 Stempel waktu tidak valid.
steps.oauth.v2.EmptyAppAndEndUserId 500 AppdId dan EndUserId tidak boleh kosong.

Error saat deployment

Lihat pesan yang dilaporkan di UI untuk mengetahui informasi tentang error deployment.

Variabel kesalahan

Variabel ini ditetapkan saat kebijakan ini memicu error saat runtime.

Variabel Di mana Contoh
fault.name="fault_name" fault_name adalah nama kesalahan, seperti yang tercantum dalam tabel Error runtime di atas. Nama kesalahan adalah bagian terakhir dari kode kesalahan. fault.name Matches "IPDeniedAccess"
oauthV2.policy_name.failed policy_name adalah nama kebijakan yang ditentukan pengguna yang menampilkan kesalahan. oauthV2.GetTokenInfo.failed = true
oauthV2.policy_name.fault.name policy_name adalah nama kebijakan yang ditentukan pengguna yang menampilkan kesalahan. oauthV2.GetToKenInfo.fault.name = invalid_client-invalid_client_id
oauthV2.policy_name.fault.cause policy_name adalah nama kebijakan yang ditentukan pengguna yang menampilkan kesalahan. oauthV2.GetTokenInfo.cause = ClientID is Invalid

Contoh respons error

{
   "fault":{
      "faultstring":"Timestamp is in the future.",
      "detail":{
         "errorcode":"steps.oauth.v2.InvalidFutureTimestamp"
      }
   }
}

Contoh aturan kesalahan

<FaultRule name="RevokeOAuthV2 Faults">
    <Step>
        <Name>AM-InvalidTimestamp</Name>
    </Step>
    <Condition>(fault.name = "InvalidFutureTimestamp")</Condition>
</FaultRule>

Topik terkait