Anda sedang melihat dokumentasi Apigee Edge.
Buka dokumentasi
Apigee X. info
Bagian ini menjelaskan cara mengaktifkan pengambilan dan pencabutan token akses OAuth 2.0 berdasarkan ID pengguna akhir, ID aplikasi, atau keduanya. Fitur ID pengguna akhir memerlukan penyiapan khusus seperti yang dijelaskan dalam topik ini. Yang dimaksud dengan pengguna akhir adalah pengguna aplikasi yang memanggil API.
Kapan harus mengaktifkan akses ID pengguna akhir
Terkadang, ada baiknya menyimpan ID pengguna dalam token akses. Aktifkan fitur akses ID pengguna akhir hanya jika Anda memiliki kasus penggunaan yang baik untuk fitur tersebut. Contoh:
- Fitur untuk situs atau aplikasi Anda tempat pengguna dapat melihat aplikasi pihak ketiga yang telah mereka beri otorisasi, dan memberikan opsi untuk mencabut akses ke aplikasi tersebut.
- Fitur yang memungkinkan pengguna yang diberi otorisasi mencabut semua token akses yang terkait dengan Aplikasi Developer tertentu.
Tentang token akses OAuth
ID aplikasi otomatis ditambahkan ke token akses OAuth. Oleh karena itu, setelah mengaktifkan akses token untuk organisasi seperti yang dijelaskan di bawah, Anda dapat mencabut token akses berdasarkan ID aplikasi.
Untuk mengambil dan mencabut token akses OAuth 2.0 menurut ID pengguna akhir, ID pengguna akhir harus ada dalam token akses. Prosedur di bawah menjelaskan cara menambahkan ID pengguna akhir ke token yang ada.
Secara default, saat Edge membuat token akses OAuth 2.0, token tersebut memiliki format seperti yang ditunjukkan di bawah:
{ "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 pengambilan dan pencabutan token akses OAuth 2.0 menurut ID aplikasi, maka ID aplikasi ini adalah 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 mengaktifkan pengambilan dan pencabutan token akses OAuth 2.0 menurut ID pengguna akhir, Anda harus mengonfigurasi kebijakan OAuth 2.0 agar menyertakan ID pengguna dalam token, seperti yang dijelaskan dalam prosedur di bawah. Perhatikan bahwa jika Anda hanya ingin mengambil dan mencabut token akses OAuth 2.0 menurut ID aplikasi, Anda tidak perlu mengaktifkan akses menurut ID pengguna akhir.
Anda meneruskan ID pengguna akhir ke endpoint pembuatan token. Anda dapat meneruskan ID pengguna akhir sebagai parameter kueri, parameter formulir, atau di header (seperti yang dijelaskan nanti dalam topik ini). Setelah Anda mengonfigurasi Edge untuk menyertakan ID pengguna akhir dalam token, ID tersebut akan 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" }
Untuk mempelajari cara melakukan panggilan API yang melakukan pengambilan dan pencabutan ini, lihat Smart Docs berikut:
- Mencabut Token Akses OAuth2 oleh Pengguna Akhir atau ID Aplikasi
- Mendapatkan Token Akses OAuth2 berdasarkan ID Pengguna Akhir atau ID Aplikasi
Mengaktifkan akses ke token OAuth 2.0 berdasarkan ID pengguna dan ID aplikasi
Cara Anda mengaktifkan akses ke token OAuth 2.0 menurut ID pengguna dan ID aplikasi bergantung pada cara Anda men-deploy Edge:
Deployment berbasis cloud
Deployment Edge berbasis cloud berarti sebagian besar konfigurasi ditangani oleh Apigee. Anda hanya bertanggung jawab untuk mengonfigurasi kebijakan OAuth 2.0 guna menambahkan ID pengguna ke token akses. Untuk mengetahui informasi selengkapnya, lihat prosedur di bawah.
Deployment Edge untuk Private Cloud
Di Apigee Edge untuk Private Cloud (on-premise), Anda sepenuhnya bertanggung jawab atas konfigurasi. Untuk mengetahui informasi selengkapnya, lihat Operasi dan Konfigurasi.
Apigee Hybrid
Akses ke token OAuth 2.0 menurut ID pengguna diaktifkan secara default. Anda hanya bertanggung jawab untuk mengonfigurasi kebijakan OAuth 2.0 guna menambahkan ID pengguna ke token akses. Untuk mengetahui informasi selengkapnya, lihat Langkah 5 prosedur di bawah.
Mengaktifkan akses di cloud
Langkah 1: Aktifkan organisasi untuk mendukung fitur ini
Fitur ini harus diaktifkan untuk setiap organisasi yang ingin Anda dukung fitur ini.
Hubungi Dukungan Apigee Edge untuk meminta mereka memperbarui organisasi Anda.
Langkah 2: Berikan Izin Resource oauth2 ke Peran opsadmin dan orgadmin
Hanya peran orgadmin dan opsadmin Anda yang harus diberi
izin untuk melakukan panggilan pengambilan (get) dan pencabutan (put) ini ke
resource oauth2 berdasarkan ID pengguna akhir atau ID aplikasi.
Anda dapat menggunakan panggilan API Get Permission
for a Resource untuk melihat peran mana yang memiliki izin get dan put
untuk resource oauth2.
Jika Anda perlu menambahkan atau menghapus izin, hubungi Dukungan Apigee Edge agar mereka melakukan pembaruan.
Langkah 3: Salin token akses OAuth 2.0 yang ada ke node Cassandra Anda
Dilakukan oleh Dukungan Apigee: Dalam tugas ini, salinan token akses OAuth 2.0 yang ada di organisasi yang terpengaruh akan disalin dan disimpan di node Cassandra Anda. Prosedur ini akan dilakukan pada node Cassandra untuk setiap pod Apigee Edge Anda. Hal ini akan memungkinkan panggilan API pengambilan dan pencabutan dijalankan terhadap semua token akses OAuth 2.0 Anda, baik yang sudah ada maupun yang baru dibuat.
Langkah 4: Mengonfigurasi kebijakan OAuth 2.0 untuk membuat token akses yang menyertakan ID pengguna akhir
Konfigurasi kebijakan OAuth 2.0 yang digunakan untuk membuat token akses agar menyertakan ID pengguna akhir dalam token. Dengan menyertakan ID pengguna akhir dalam token akses, Anda akan dapat melakukan pengambilan dan pencabutan 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.
Kebijakan OAuth 2.0 di bawah, yang bernama GenerateAccessTokenClient, menghasilkan token akses OAuth 2.0. Perhatikan penambahan tag <AppEndUser> yang dicetak tebal:
<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>
Kemudian, Anda dapat menggunakan perintah cURL berikut untuk membuat token akses OAuth 2.0, dengan meneruskan ID pengguna sebagai header appuserID:
curl -H "appuserID:6ZG094fgnjNf02EK" / https://myorg-test.apigee.net/oauth/client_credential/accesstoken?grant_type=client_credentials / -X POST / -d 'client_id=k3nJyFJIA3p62TKIkLO6OJNi87GYXFmP&client_secret=gk58jK5lIp943AY4'
Dalam contoh ini, appuserID diteruskan sebagai header permintaan. Anda dapat meneruskan informasi sebagai bagian dari permintaan dengan berbagai cara. Misalnya, sebagai alternatif, Anda dapat:
- Gunakan variabel parameter formulir: request.formparam.appuserID
- Menggunakan flow variable yang menyediakan ID pengguna akhir