Aktifkan pengambilan dan pencabutan token akses OAuth 2.0 menurut ID pengguna akhir, ID aplikasi, atau keduanya

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

Bagian ini menjelaskan cara mengaktifkan pengambilan dan pencabutan token akses OAuth 2.0 dengan ID pengguna akhir, ID aplikasi, atau keduanya. Fitur ID pengguna akhir memerlukan penyiapan khusus seperti yang dijelaskan dalam topik. Yang kami maksud pengguna akhir adalah pengguna aplikasi yang memanggil API.

Kapan harus mengaktifkan akses ID pengguna akhir

Terkadang, ada baiknya menyimpan ID pengguna dalam token akses. Mengaktifkan akses ID pengguna akhir hanya jika Anda memiliki kasus penggunaan yang baik. 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

ID aplikasi otomatis ditambahkan ke token akses OAuth. Oleh karena itu, setelah Anda mengaktifkan token akses untuk organisasi seperti yang dijelaskan di bawah, Anda dapat mencabut token akses berdasarkan ID aplikasi.

Untuk mengambil dan mencabut token akses OAuth 2.0 berdasarkan ID pengguna akhir, ID pengguna akhir harus ada dalam token akses. Prosedur di bawah ini menjelaskan cara menambahkan ID pengguna akhir ke sebelumnya yang benar.

Secara default, saat Edge 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 pengambilan dan 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 memungkinkan pengambilan dan pencabutan token akses OAuth 2.0 oleh ID pengguna akhir, Anda harus mengkonfigurasi kebijakan OAuth 2.0 menyertakan ID pengguna di token, seperti yang dijelaskan dalam prosedur di bawah. Perhatikan bahwa jika Anda hanya ingin mengambil dan mencabut token akses OAuth 2.0 berdasarkan ID aplikasi, maka tidak perlu mengaktifkan akses berdasarkan 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 akan dijelaskan nanti dalam topik ini). Setelah Anda mengonfigurasi Edge 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"
}

Untuk mempelajari cara melakukan panggilan API yang melakukan pengambilan dan pencabutan ini, lihat Smart Docs berikut:

Mengaktifkan akses ke token OAuth 2.0 dengan ID pengguna dan ID aplikasi

Cara mengaktifkan akses ke token OAuth 2.0 berdasarkan ID pengguna dan ID aplikasi bergantung pada cara Anda men-deploy Tepi:

  • 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 sebelumnya yang benar. Untuk informasi lebih lanjut, lihat prosedur di bawah.

  • Edge untuk deployment Private Cloud

    Di Apigee Edge untuk Private Cloud (lokal), Anda bertanggung jawab sepenuhnya atas konfigurasi Anda. Untuk informasi selengkapnya, lihat Operasi dan Konfigurasi.

  • Apigee Hybrid

    Akses ke token OAuth 2.0 berdasarkan ID pengguna diaktifkan secara default. Anda hanya bertanggung jawab untuk mengonfigurasi kebijakan OAuth 2.0 guna menambahkan ID pengguna ke sebelumnya yang benar. Untuk mengetahui informasi selengkapnya, lihat Langkah 5 dari prosedur di bawah.

Mengaktifkan akses di cloud

Langkah 1: Aktifkan organisasi untuk dukung fitur ini

Fitur ini harus diaktifkan untuk setiap organisasi yang Anda inginkan untuk mendukung fitur ini.

Hubungi Dukungan Apigee Edge untuk meminta mereka memperbarui organisasi Anda.

Langkah 2: Memberikan Izin Resource oauth2 ke Peran opsadmin dan orgadmin

Hanya peran orgadmin dan opsadmin yang harus diberikan untuk membuat panggilan yang mengambil (get) dan mencabut (put) ini ke oauth2 berdasarkan ID pengguna akhir atau ID aplikasi.

Anda dapat menggunakan menu Dapatkan Izin untuk panggilan API Resource guna melihat peran mana yang memiliki get dan put izin untuk resource oauth2.

Jika Anda perlu menambah atau menghapus izin, hubungi Dukungan Apigee Edge untuk dan meminta mereka melakukan pembaruan.

Langkah 3: Menyalin token akses OAuth 2.0 yang ada ke node Cassandra Anda

Dilakukan oleh Dukungan Apigee: Dalam tugas ini, salinan OAuth 2.0 yang ada token akses di organisasi yang terpengaruh akan disalin dan disimpan di node Cassandra Anda. Prosedur ini akan dilakukan pada node Cassandra untuk setiap pod Apigee Edge. Tindakan ini akan memungkinkan mengambil dan mencabut panggilan API untuk dijalankan terhadap semua token akses OAuth 2.0 Anda, yang ada dan baru dibuat.

Langkah 4: Tambahkan properti oauth_max_search_limit ke server pengelolaan dan pesan Anda prosesor

Dalam tugas ini, file keymanagement.properties untuk server pengelolaan dan pemroses pesan akan diperbarui untuk menyertakan properti ini: oauth_max_search_limit = 100. 100 adalah nilai yang direkomendasikan Apigee, tetapi dapat ditetapkan sesuai kebutuhan.

Hubungi Dukungan Apigee Edge agar mereka dapat melakukan tambahan ini.

Langkah 5: Konfigurasikan kebijakan OAuth 2.0 untuk membuat token akses yang menyertakan ID pengguna akhir

Konfigurasikan kebijakan OAuth 2.0 yang digunakan untuk menghasilkan token akses guna menyertakan ID pengguna akhir di sebelumnya yang benar. 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, membuat OAuth 2.0. Perhatikan penambahan tag <AppEndUser> dalam huruf 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>

Anda kemudian dapat menggunakan perintah cURL berikut untuk membuat token akses OAuth 2.0, dengan meneruskan ID pengguna sebagai appuserID {i>header<i}:

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 banyak cara. Sebagai misalnya, sebagai alternatif, Anda dapat:

  • Menggunakan variabel parameter formulir: request.formparam.appuserID
  • Gunakan variabel alur yang menyediakan ID pengguna akhir