Menyetujui dan mencabut token akses

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

Mencabut token akses dan menyegarkan

Dalam beberapa kasus, aplikasi diwajibkan untuk mencabut atau membatalkan token secara eksplisit, misalnya, saat pengguna logout dari aplikasi berkemampuan OAuth. Jika Anda mencabut token, token tersebut dapat disetujui kembali kapan saja sebelum masa berlakunya habis.

Prosedur pencabutan token ditetapkan oleh spesifikasi Pencabutan Token OAuth 2.0.

Apigee Edge menyediakan operasi InvalidateToken yang memungkinkan Anda mengonfigurasi endpoint pencabutan token khusus. Dengan memublikasikan URI endpoint ini, Anda memungkinkan developer aplikasi membatalkan token yang dikeluarkan oleh Edge.

Berikut adalah contoh konfigurasi untuk kebijakan OAuthV2 dan operasi InvalidateToken. Dalam hal ini, token akses dan token refresh yang terkait akan dicabut. Secara teknis, keduanya dicabut karena flag menurun disetel ke benar (true). Untuk mengetahui informasi selengkapnya tentang cara kerja flag menurun, lihat bagian atribut elemen Token di bawah.

<OAuthV2 name="InvalidateToken">
  <Operation>InvalidateToken</Operation>
  <Tokens>
    <Token type="accesstoken" cascade="true">flow.variable</Token>
  </Tokens>
</OAuthV2>

Elemen <Tokens>/<Token>

Mengidentifikasi variabel flow yang menentukan token yang akan dicabut. Jika developer diharapkan mengirimkan permintaan pencabutan menggunakan parameter kueri bernama access_token, misalnya, variabel alur yang benar adalah: request.queryparam.access_token. Misalnya, untuk meminta token di header HTTP, tetapkan nilai ini ke request.header.access_token.

Atribut

  • type (wajib, string): Jenis token yang diidentifikasi oleh variabel yang ditentukan. Nilai yang didukung adalah accesstoken dan refreshtoken:
    • Untuk mencabut token akses, tentukan jenis accesstoken.
    • Untuk mencabut token akses dan refresh, tentukan jenis refreshtoken. Saat melihat jenis refreshtoken, Edge menganggap token tersebut adalah token refresh. Jika ditemukan, token refresh akan dicabut. Jika token refresh tersebut tidak ditemukan, Edge akan memeriksa apakah token tersebut merupakan token akses. Jika token akses ada, token tersebut akan dicabut.

      Catatan: Jika Anda meneruskan token yang sudah tidak valid ke kebijakan InvalidateToken, kebijakan tersebut tidak akan menampilkan error, meskipun Anda mungkin mengharapkannya demikian. Operasi tersebut tidak berpengaruh.
  • cascade (opsional, boolean, default: true) Penggunaan utama atribut ini adalah untuk mencabut token refresh tanpa mencabut token akses terkaitnya. Pertimbangkan kasus berikut:
    • Cabut token refresh saja dan jangan cabut token akses terkaitnya. Untuk melakukannya, tetapkan jenis <Token> ke refreshtoken dan tetapkan cascade ke false.
    • Cabut token akses dan token refresh. Untuk melakukannya, tetapkan jenis <Token> ke accesstoken. Nilai cascade dapat berupa true (default) atau false. Jika Anda menetapkannya ke true, token akses dan token refresh akan dicabut. Jika Anda menetapkannya ke false, token akses akan dicabut, dan token refresh tidak dapat digunakan. Lihat Catatan di bawah untuk penjelasan lebih lanjut.
    • Mencabut token akses dan tidak mencabut token refresh yang terkait. Tidak didukung. Lihat Catatan di bawah untuk penjelasan lebih lanjut.

Catatan: Untuk alasan keamanan, jika Anda mencabut token akses, token refresh yang terkait juga akan dicabut. Oleh karena itu, Anda tidak dapat menggunakan atribut cascade untuk mencabut token akses saja. Misalnya, jika Anda menetapkan jenis <Token> ke accesstoken, dan menetapkan cascade=false, token akses akan dicabut (seperti yang diharapkan); tetapi, token refresh yang terkait tidak dapat digunakan. Token ini tidak dapat digunakan untuk memperbarui token akses yang dicabut. Kasus penggunaan utama untuk atribut menurun adalah ketika Anda hanya ingin mencabut token refresh. Dalam hal ini, tetapkan jenis <Token> ke refreshtoken, dan tetapkan cascade=false. Token refresh akan dicabut, tetapi token akses yang terkait akan tetap valid (hingga masa berlakunya habis atau dicabut). Untuk informasi selengkapnya, lihat Diskusi forum komunitas ini.

Menyetujui akses dan token refresh

Gunakan operasi ValidasiToken untuk "menyetujui kembali" token yang dicabut. Artinya, jika Anda menerapkan operasi ini, status token akses atau refresh yang ditargetkan akan diubah dari 'dicabut' menjadi 'disetujui'. Anda dapat memvalidasi setiap token yang dicabut yang belum habis masa berlakunya.

<OAuthV2 name="ValidateToken">
  <Operation>ValidateToken</Operation>
  <Tokens>
    <Token type="refreshtoken" cascade="true">flow.variable</Token>
  </Tokens>
</OAuthV2>

Elemen <Tokens>/<Token>

Mengidentifikasi variabel flow yang menentukan token yang akan divalidasi. Jika developer diharapkan untuk mengirimkan permintaan validasi menggunakan parameter kueri bernama access_token, misalnya, variabel flow yang benar adalah request.queryparam.access_token. Misalnya, untuk meminta token di header HTTP, tetapkan nilai ini ke request.header.access_token.

Atribut

  • type (wajib, string) Jenis token yang diidentifikasi oleh variabel yang ditentukan. Nilai yang didukung adalah accesstoken dan refreshtoken.
  • cascade (opsional, boolean): Secara default, opsi ini ditetapkan ke true, dan menyebabkan validasi disebarkan ke token yang terkait. Jadi, jika diterapkan ke token refresh, token akses terkaitnya juga akan divalidasi. Jika diterapkan pada token akses, token refresh yang terkait juga akan divalidasi. Jika Anda menetapkannya ke false, hanya token akses atau token refresh yang ditentukan yang akan divalidasi.