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_tokenakan 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 keget_token. Metode ini meneruskan semua argumen lainnya (seperti-X,-H,-d,-v,-s) langsung kecurlstandar. - Eksekusi: Setelah berhasil memperoleh atau mengambil token yang valid dari
get_token,acurlakan otomatis memasukkan header-H "Authorization: Bearer <token>"ke dalam pemanggilancurl.
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.