Menggunakan utilitas get_token dan acurl

Apigee menyediakan utilitas get_token dan acurl untuk menyederhanakan interaksi dengan Apigee SSO dan API pengelolaan Edge. Alat ini menangani pembuatan, penyimpanan dalam cache, pembaruan, dan penyisipan token secara otomatis.

Utilitas diinstal pada node OpenLDAP di /opt/apigee/apigee-openldap/bin/.

Utilitas get_token

Utilitas get_token bertanggung jawab untuk mendapatkan token akses dan token refresh OIDC/OAuth2. Library ini mendukung dua alur autentikasi utama dan menyertakan penyimpanan token ke cache bawaan.

Alur autentikasi

  • Alur Kode Perangkat (RFC 8628): Dirancang untuk pengguna manusia yang melakukan autentikasi melalui Penyedia Identitas (seperti SAML, Okta, atau OIDC) eksternal. Jika Anda hanya meneruskan alamat email (-u <email>), utilitas akan memulai alur ini, yang akan meminta Anda memberikan URL dan kode untuk disetujui di browser.
  • Pemberian Sandi (ROPC): Dirancang untuk pengguna mesin headless dan skrip otomatis. Jika Anda meneruskan nama pengguna dan sandi (-u <user>:<password>), pengguna akan diautentikasi langsung terhadap Apigee SSO tanpa interaksi browser.

Penyimpanan token dalam cache dan pemuatan ulang otomatis

Utilitas get_token secara otomatis mengelola siklus proses token sehingga Anda tidak perlu melacak waktu habis masa berlaku secara manual:

  • Pemeriksaan Cache: Saat dipanggil, get_token akan memeriksa cache lokal di ~/.sso-cli/<username>-token.json. Jika token yang valid ada dan belum habis masa berlakunya, token tersebut akan digunakan kembali tanpa melakukan autentikasi ulang.
  • Perpanjangan Otomatis: Jika token akses yang di-cache telah habis masa berlakunya, tetapi ada token refresh yang valid, utilitas akan otomatis menukar token refresh di Apigee SSO dengan token akses baru.

Variabel lingkungan

Secara opsional, Anda dapat menyesuaikan perilaku get_token menggunakan variabel lingkungan berikut:

  • SSO_LOGIN_URL: URL SSO Apigee (default: http://localhost:9099).
  • CLIENT_ID: Client ID OAuth2 (default: edgecli).
  • CLIENT_SECRET: Rahasia klien OAuth2 (default: edgeclisecret).

Utilitas acurl

Utilitas acurl adalah wrapper transparan di sekitar curl standar. Kebijakan ini memastikan bahwa setiap permintaan API menyertakan token Bearer yang valid.

  • Pemisahan Argumen: Utilitas mengekstrak argumen -u <user:password> atau -u <user> dan meneruskannya ke get_token. Metode ini meneruskan semua argumen lainnya (seperti -X, -H, -d, -v, -s) langsung ke curl standar.
  • Eksekusi: Setelah berhasil memperoleh atau mengambil token yang valid dari get_token, acurl akan otomatis memasukkan header -H "Authorization: Bearer <token>" ke dalam pemanggilan curl.

Contoh penggunaan

Contoh 1: Login interaktif untuk pengguna manusia

/opt/apigee/apigee-openldap/bin/acurl -u developer@apigee.com http://MS_IP_DNS:8080/v1/organizations

Perintah ini akan menjeda, meminta pengguna untuk membuka browser guna melakukan autentikasi melalui IdP eksternal mereka, lalu menjalankan panggilan API setelah disetujui.

Contoh 2: Login tanpa browser untuk pengguna mesin

/opt/apigee/apigee-openldap/bin/acurl -u jenkins-bot@apigee.com:Secret123! http://MS_IP_DNS:8080/v1/organizations

Perintah ini melakukan autentikasi langsung melalui Pemberian Sandi dan segera mengeksekusi panggilan API.

Contoh 3: Menggunakan kembali token yang di-cache

/opt/apigee/apigee-openldap/bin/acurl http://MS_IP_DNS:8080/v1/users

Karena token di-cache pada langkah-langkah sebelumnya, Anda tidak perlu memberikan argumen -u lagi. Utilitas membaca token yang di-cache dan menyuntikkannya secara otomatis.