Halaman ini berlaku untuk Apigee dan Apigee hybrid.
Lihat Dokumentasi Apigee Edge.
Anda dapat mencabut token akses OAuth 2.0 berdasarkan ID pengguna akhir, ID aplikasi, atau keduanya menggunakan RevokeOAuthV2. Yang kami maksud pengguna akhir adalah pengguna aplikasi yang memanggil API.
Kapan harus menyimpan ID pengguna dalam token akses
ID Pengguna tidak disertakan dalam token akses secara default. Terkadang, ada baiknya untuk menyimpan ID pengguna dalam token akses. Contoh:
- Fitur untuk situs atau aplikasi Anda yang memungkinkan pengguna melihat aplikasi pihak ketiga yang mereka miliki dan memberikan opsi untuk mencabut akses ke aplikasi tersebut.
- Fitur yang memungkinkan pengguna yang berwenang untuk mencabut semua token akses yang terkait dengan Aplikasi Developer tertentu.
Tentang token akses OAuth
Secara default, saat Apigee membuat token akses OAuth 2.0, token tersebut memiliki format yang ditampilkan di bawah ini:
{ "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" }
Perhatikan hal berikut:
- Kolom application_name berisi UUID aplikasi yang terkait dengan token. Jika Anda mengaktifkan pencabutan token akses OAuth 2.0 berdasarkan ID aplikasi, maka inilah ID aplikasi yang Anda gunakan.
- Kolom access_token berisi nilai token akses OAuth 2.0.
- Tidak ada kolom untuk ID pengguna akhir di token akses OAuth default.
Untuk mencabut token akses OAuth 2.0 berdasarkan ID pengguna akhir, Anda harus mengonfigurasi kebijakan OAuth 2.0
untuk menyertakan
ID pengguna dalam token. Setelah Anda mengonfigurasi kebijakan untuk menyertakan pengguna akhir
ID dalam token, ID tersebut disertakan sebagai kolom app_enduser
, seperti yang ditunjukkan di bawah ini:
{ "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" }
Mengonfigurasi kebijakan
Untuk mencabut token berdasarkan ID pengguna, Anda harus terlebih dahulu mengonfigurasi kebijakan OAuth 2.0 untuk menambahkan ID pengguna ke akses sebelumnya yang benar. Dengan menyertakan ID pengguna akhir dalam token akses, Anda akan dapat mencabut token berdasarkan ID pengguna akhir.
Untuk mengonfigurasi kebijakan agar menyertakan ID pengguna akhir dalam token akses, Anda harus menentukan
variabel input yang berisi ID pengguna akhir. Gunakan tag <AppEndUser>
untuk menentukan
variabel:
<OAuthV2 async="false" continueOnError="false" enabled="true" name="GenerateAccessTokenClient"> <DisplayName>OAuth 2.0.0 1</DisplayName> <ExternalAuthorization>false</ExternalAuthorization> <Operation>GenerateAccessToken</Operation> <SupportedGrantTypes> <GrantType>client_credentials</GrantType> </SupportedGrantTypes> <GenerateResponse enabled="true"/> <GrantType>request.queryparam.grant_type</GrantType> <AppEndUser>request.header.appuserID</AppEndUser> <ExpiresIn>960000</ExpiresIn> </OAuthV2>
Berikut adalah contoh kebijakan RevokeOAuthV2
yang dikonfigurasi untuk mencabut akses dari EndUserId
:
<?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> <EndUserId ref="request.header.appuserID"></EndUserId> <Cascade>false</Cascade> </RevokeOAuthV2>
Lihat juga Cabut kebijakan OAuth V2.
Perintah contoh berikut membuat token dan meneruskan ID pengguna di header appuserID
:
curl -H "appuserID:6ZG094fgnjNf02EK" \ -H "Content-Type: application/x-www-form-urlencoded" \ -H "Authorization: Basic c3FIOG9vSGV4VHo4QzAyg5T1JvNnJoZ3ExaVNyQWw6WjRsanRKZG5lQk9qUE1BVQ" \ -X POST "https://apitest.acme.com/oauth/token" \ -d "grant_type=client_credentials"
Anda dapat meneruskan informasi sebagai bagian dari permintaan dengan cara lain. Sebagai misalnya, sebagai alternatif, Anda dapat:
- Menggunakan variabel parameter formulir: request.formparam.appuserID
- Gunakan variabel alur yang menyediakan ID pengguna akhir