Menggunakan layanan Edge OAuth2 untuk mendapatkan token

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

Anda dapat menggunakan layanan Edge OAuth2 untuk menukar kredensial dengan token akses dan refresh yang kemudian Anda gunakan untuk memanggil endpoint Edge di OAuth.

Selain teknik yang dijelaskan di bagian ini, Anda juga dapat menggunakan acurl dan get_token untuk mendapatkan token OAuth2.

Jalur

POST https://login.apigee.com/oauth/token

Jika Anda mengakses layanan Edge OAuth2 dari organisasi yang mendukung SAML di Edge for Public Cloud, Anda harus menyertakan nama zona di jalur Anda. Contoh:

POST https://zone.login.apigee.com/oauth/token

Header permintaan

Parameter Nilai
Content-Type "application/x-www-form-urlencoded"
Accept "aplikasi/json;charset=utf-8"
Authorization

"Dasar ZWRnZWNsaTplZGdlY2xpc2VjcmV0"

Anda dapat mengekspor nilai ini ke variabel lingkungan agar dapat menggunakannya kembali dalam Panggilan API. Contoh:

export CLIENT_AUTH=ZWRnZWNsaTplZGdlY2xpc2VjcmV0
curl ... -H "Authorization: Basic $CLIENT_AUTH" ...

Parameter formulir

Parameter Wajib? Nilai
username Opsional. Kombinasi nama pengguna dan sandi atau kode sandi diperlukan. Nama pengguna Apigee Anda, biasanya adalah alamat email yang terkait dengan akun Apigee Anda.
password Opsional. Kombinasi nama pengguna dan sandi atau kode sandi diperlukan. Sandi untuk akun Apigee Anda.
mfa_token Opsional Kode autentikasi multi-faktor (MFA) yang valid untuk akun Anda. Diperlukan hanya jika Anda memiliki MFA diaktifkan.
passcode Opsional. Kombinasi nama pengguna dan sandi atau kode sandi diperlukan. Kode sandi sekali pakai yang dapat Anda gunakan sebagai pengganti {i>password<i}. Kode sandi diperlukan saat mengautentikasi dengan IDP SAML, dan dapat digunakan untuk melakukan otentikasi dengan IDP LDAP.
grant_type Wajib

Menentukan apakah Anda mendapatkan token akses baru atau memuat ulang token yang sudah ada. Berlaku nilainya adalah:

  • "password": Mendapatkan token akses baru. Jika grant_type adalah "sandi", Anda harus menyertakan kredensial Apigee Anda dalam permintaan.
  • "refresh_token": Kirim token refresh untuk mendapatkan token akses baru. Kapan grant_type adalah "refresh_token", Anda tidak perlu menyertakan kredensial apa pun dalam permintaan.
refresh_token Opsional Token yang diteruskan untuk memperoleh token akses baru, ketika token akses saat ini telah kedaluwarsa. Parameter ini wajib ada saat grant_type adalah "refresh_token".

Contoh

Dapatkan token akses baru

Untuk mendapatkan token akses baru, setel grant_type ke "sandi":

curl -H "Content-Type:application/x-www-form-urlencoded;charset=utf-8" \
      -H "Accept: application/json;charset=utf-8" \
      -H "Authorization: Basic ZWRnZWNsaTplZGdlY2xpc2VjcmV0" \
      -X POST https://login.apigee.com/oauth/token \
      -d 'username=ahamilton@example.com&password=mypassw0rd&grant_type=password'

Mendapatkan token akses baru dengan MFA

Untuk mendapatkan token akses baru dengan MFA (otentikasi multi-faktor) diaktifkan, mendapatkan kode MFA lalu tetapkan parameter mfa_token ke nilainya:

curl -H "Content-Type:application/x-www-form-urlencoded;charset=utf-8" \
  -H "Accept: application/json;charset=utf-8" \
  -H "Authorization: Basic ZWRnZWNsaTplZGdlY2xpc2VjcmV0" \
  -X POST https://login.apigee.com/oauth/token?mfa_token=424242 \
  -d 'username=ahamilton@example.com&password=mypassw0rd&grant_type=password'

Memuat ulang token akses

Untuk memuat ulang token akses, tetapkan grant_type ke "refresh_token" dan tambahkan token refresh yang ada sebagai parameter formulir:

curl -H "Content-Type:application/x-www-form-urlencoded;charset=utf-8"
  -H "Accept: application/json;charset=utf-8" \
  -H "Authorization: Basic ZWRnZWNsaTplZGdlY2xpc2VjcmV0" \
  -X POST https://login.apigee.com/oauth/token \
  -d 'grant_type=refresh_token&refresh_token=YOUR_REFRESH_TOKEN'

Perhatikan bahwa Anda tidak perlu meneruskan kredensial saat memuat ulang token akses.

Respons

Jika berhasil, Anda akan mendapatkan kembali token akses, token refresh, dan informasi terkait. Contoh:

{
  "access_token": "eyJhbGciOiJSUzI1NiJ9.eyJqdGkiOimYyD8IP2IyYS1jNmNiLTQ4NTgtYjZkMS1mZjkyNGFkYTk1YWUiLCJzdWIiOiI0X0KLSNjZlNjM0ZC0zZjlhLTRiNYmFjNi1kYjE2M2M5OGEzOGYiLCJzY29wZSI6WyJzYbmlkIiwicGFzc3dvcmQud3JpdGUiLCJhcHByb3ZhbHMubWUiLCJvYXV0aC5hcHByb3ZhbHMiXSwiY2xpZW50X2lkIjoiZWRnZWNsaSIsImNpZCI6ImVkZ2VjbGkiLCJhenAiOiJlZGdlY2xpIiwiZ3JhbnRfdHlwZSI6InBhc3N3b3JkIiwidXNlcl9pZCI6IjQ2NmU2MzRkLTNmOWEtNGI0MS1iYWM2LWRiMTYzYzk4YTM4ZiIsIm9yaWdpbiI6InVzZXJncmlkIiwidXNlcl9uYW1lIjoid3dpdG1hbkBhcGlnZWUuY29tIiwiZW1haWwiOiJ3d2l0bWFuQGFwaWdlZS5jb20iLCJhdXRoX3RpbWUiOjE0NzMyNjU4NzcsImFsIjoyLCJyZXZfc2lnIjoiZTc0ZGY0M2QiLCJpYXQiOjE0NzMyNjU4NzcsImV4cCI6MTQ3MzI2NzY3NywiaXNzIjoiaHR0cHM6Ly9sb2dpbi5hcGlnZWUuY29tL29hdXRoL3Rva2VuIiwiemlkIjoidWFhIiwi2ltLm1lIiwib3BlYXVkIjpbImVkZ2VjbGkiLCJzY2ltIiwib3BlbmlkIiwicGFzc3dvcmQiLCJhcHByb3ZhbHMiLCJvYXV0aCJdfQ.AFuevkeGGUGSPED8leyEKaT-xg1xk_VEiKJLEpipVvQBXIqEc9wqcpm-ZuoatA9DhjASRuFSRaHH8Fasx_vBxEBsUNhRY-GTMw7_8fv4yRMOb2AO3WUl_NWwPkC8XRSI1zCMbAZicojsJ1n3OSP487Mu9dl9ByX5A_QfHV2_cj4l9-SD7u6vOdfdbBxbNMAQkfZLrVIEU8myF2dhKnNeMiuoHSHANsQFcx0_BFA1HnSUnVi4RYj1FlTs9SbcPnS1d7t7eVdxWz_q2OFVXNIBMELAvvM0WhXPYTW3Osve3UvvUs6ekGs-K-RCPSok-4-NJbdCDpZQQTgqHsrf77NTsw",
  "token_type": "bearer",
  "refresh_token": "eyJhbGciOiJSUzI1NiJ9.eyJqdGkiOiJmZTIIMZWI0ZS00YzFmLTRjOTEtYmY5Mi1mMzZLEMzNjZhMDctciIsInN1YiI6IjQ2NmU2MzRkLTNmOWEtNGI0MS1iY17LLWRiMTYzYzk4YTM4ZiIsInNjb3BlIjpbInNjaW0ubWUiLCJvcGVuaWQiLCJwYXNzd29yZC53cml0ZSIsImFwcHJvdmFscy5tZSIsIm9hdXRoLmFwcHJvdmFscyJdLCJpYXQiOjE0NzMyNjU4NzcsImV4cCI6MTQ3NsaSIsImNsaWVudF9pZCI6ImVkZ2VjbGkiLCJpc3MiOiJodHRwczovL2xvZ2luLmFwaWdlZS5jb20vb2F1dGgvdG9rZW4iLCJ6aWQiOiJ1YWEiLCJncmFudF90eXBlIjoicGFzc3dvcmQiLCJ1c2VyX25hbWUiOiJ3d2l0bWFuQGFwaWdlZS5jbMzM1MDQ3NywiY2lkIjoiZWRnZW20iLCJvcmlnaW4iOiJ1c2VyZ3JpZCIsInVzZXJfaWQiOiI0NjZlNjM0ZC0zZjlhLTRiNDEtYmFjNi1kYjE2M2M5OGEzOGYiLCJhbCI6MiwicmV2X3NpZyI6ImU3NGRmNDNkIiwiYXVkIjpbImVkZ2VjbGkiLCJzY2ltIiwib3BlbmlkIiwicGFzc3dvcmQiLCJhcHByb3ZhbHMiLCJvYXV0aCJdfQ.kBP5AkbRS7Tnp-5VAfTLVfkUbUer4gFEU6A7g202KTKiXbqTwPSmOIGFTK12XevVPQYmAaSMFAnempWKfY7sjaY7HC7q3mGl53_A18cnkKhtNq15wCnyMom_bX_MYLW1RQPFytJ6akSJ-JkoPFU0x_FQg1JIvub1A8eqQxcR0KP-QRCxYAS4HTjH80vDIxHNt1tg7clmpa3RlHri0dlPVVsSpTXXhkpXRg5QbiWMrpkACSV22c0x0KiNu7vx5A520VOCO7hQ7IzmVIcSWcRqI97L7WdCjH_q4105bs2qmW73670MC0UGiJ9t5B1S1cxwqpUEd-NAuCsY8SVn6eWzbA",
  "expires_in": 1799,
  "scope": "scim.me openid password.write approvals.me oauth.approvals",
  "jti": "9bf2cb2a-c6cb-4858-b6d1-ff924ada95ae"
}

Simpan nilai respons:

  • Menggunakan access_token dalam panggilan ke Edge API
  • Gunakan refresh_token saat masa berlaku token akses Anda berakhir dan Anda harus muat ulang

Jika Anda menerima respons seperti berikut:

{
  "error": "unauthorized",
  "error_description": "Bad credentials"
}

Pastikan bahwa Anda menggunakan {i>string<i} persis seperti yang diberikan di atas ("ZWRnZWNsaTplZGdlY2xpc2VjcmV0") untuk atribut Authorization dalam permintaan Anda.