Saat menggunakan IDP eksternal dengan Edge API, proses yang Anda gunakan untuk mendapatkan token akses dan refresh OAuth2 dari interaksi IDP disebut alur kode sandi. Dengan alur kode sandi, Anda menggunakan browser untuk mendapatkan kode sandi sekali pakai yang kemudian Anda gunakan untuk mendapatkan token OAuth2.
Namun, lingkungan pengembangan Anda mungkin mendukung otomatisasi untuk tugas pengembangan umum, seperti otomatisasi pengujian atau CI/CD. Untuk mengotomatiskan tugas ini saat IDP eksternal diaktifkan, Anda memerlukan cara untuk mendapatkan dan memperbarui token OAuth2 tanpa harus menyalin/menempel kode sandi dari browser.
Edge mendukung pembuatan token otomatis melalui penggunaan pengguna mesin dalam organisasi yang mengaktifkan IDP. Pengguna mesin dapat memperoleh token OAuth2 tanpa harus menentukan kode sandi. Artinya, Anda dapat sepenuhnya mengotomatiskan proses mendapatkan dan memperbarui token OAuth2 menggunakan Edge management API.
Ada dua cara untuk membuat pengguna mesin bagi organisasi yang mengaktifkan IDP:
Setiap metode ini dijelaskan di bagian berikut.
Anda tidak dapat membuat pengguna mesin untuk organisasi yang tidak mengaktifkan IDP eksternal.
Membuat pengguna mesin dengan apigee-ssoadminapi.sh
Gunakan utilitas apigee-ssoadminapi.sh
untuk membuat pengguna mesin dalam organisasi yang mengaktifkan IDP. Lihat Menggunakan
apigee-ssoadminapi.sh untuk mengetahui informasi selengkapnya. Anda dapat membuat satu pengguna mesin yang digunakan oleh semua
organisasi Anda, atau membuat pengguna mesin terpisah untuk setiap organisasi.
Pengguna mesin dibuat dan disimpan di datastore Edge, bukan di IDP Anda. Oleh karena itu, Anda tidak bertanggung jawab untuk memelihara pengguna mesin menggunakan Edge UI dan Edge management API.
Saat membuat pengguna mesin, Anda harus menentukan alamat email dan sandi. Setelah membuat pengguna mesin, Anda menetapkannya ke satu atau beberapa organisasi.
Untuk membuat pengguna mesin dengan apigee-ssoadminapi.sh:
- Gunakan perintah
apigee-ssoadminapi.shberikut untuk membuat pengguna mesin:apigee-ssoadminapi.sh saml machineuser add --admin SSO_ADMIN_NAME \ --secret SSO_ADMIN_SECRET --host Edge_SSO_IP_or_DNS \ -u machine_user_email -p machine_user_password
Dengan:
- SSO_ADMIN_NAME adalah nama pengguna admin yang ditentukan oleh properti
SSO_ADMIN_NAMEdalam file konfigurasi yang digunakan untuk mengonfigurasi modul Apigee SSO. Nilai defaultnya adalahssoadmin. - SSO_ADMIN_SECRET adalah sandi admin seperti yang ditentukan oleh properti
SSO_ADMIN_SECRETdalam file konfigurasi.Dalam contoh ini, Anda dapat menghilangkan nilai untuk
--portdan--sslkarena modulapigee-ssomenggunakan nilai default 9099 untuk--portdan http untuk--ssl. Jika penginstalan Anda tidak menggunakan nilai default ini, tentukan nilai yang sesuai.
- SSO_ADMIN_NAME adalah nama pengguna admin yang ditentukan oleh properti
- Login ke Edge UI dan tambahkan email pengguna mesin ke organisasi Anda, lalu tetapkan pengguna mesin ke peran yang diperlukan. Lihat Menambahkan pengguna global untuk mengetahui informasi selengkapnya.
Membuat pengguna mesin dengan Edge management API
Anda dapat membuat pengguna mesin menggunakan Edge management API, bukan menggunakan utilitas
apigee-ssoadminapi.sh.
Untuk membuat pengguna mesin dengan management API:
- Gunakan perintah
curlberikut untuk mendapatkan token bagi penggunassoadmin, nama pengguna akun admin untukapigee-sso:curl "http://Edge_SSO_IP_DNS:9099/oauth/token" -i -X POST \ -H 'Accept: application/json' / -H 'Content-Type: application/x-www-form-urlencoded' \ -d "response_type=token" -d "grant_type=client_credentials" \ --data-urlencode "client_secret=SSO_ADMIN_SECRET" \ --data-urlencode "client_id=ssoadmin"
Dengan SSO_ADMIN_SECRET adalah sandi admin yang Anda tetapkan saat menginstal
apigee-ssoseperti yang ditentukan oleh propertiSSO_ADMIN_SECRETdalam file konfigurasi.Perintah ini menampilkan token yang Anda perlukan untuk melakukan panggilan berikutnya.
- Gunakan perintah
curlberikut untuk membuat pengguna mesin, dengan meneruskan token yang Anda terima pada langkah sebelumnya:curl "http://edge_sso_IP_DNS:9099/Users" -i -X POST \ -H "Accept: application/json" -H "Content-Type: application/json" \ -d '{"userName" : "machine_user_email", "name" : {"formatted":"DevOps", "familyName" : "last_name", "givenName" : "first_name"}, "emails" : [ {"value" : "machine_user_email", "primary" : true } ], "active" : true, "verified" : true, "password" : "machine_user_password" }' \ -H "Authorization: Bearer token"Anda memerlukan sandi pengguna mesin pada langkah berikutnya.
- Login ke Edge UI.
- Tambahkan email pengguna mesin ke organisasi Anda dan tetapkan pengguna mesin ke peran yang diperlukan. Lihat Menambahkan pengguna global untuk mengetahui informasi selengkapnya.
Mendapatkan dan memperbarui token pengguna mesin
Gunakan Edge API untuk mendapatkan dan memperbarui token OAuth2 dengan meneruskan kredensial pengguna mesin, bukan kode sandi.
Untuk mendapatkan token OAuth2 bagi pengguna mesin:
- Gunakan panggilan API berikut untuk membuat token akses dan refresh awal:
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 \ http://Edge_SSO_IP_DNS:9099/oauth/token -s \ -d 'grant_type=password&username=m_user_email&password=m_user_password'
Simpan token untuk digunakan nanti.
- Teruskan token akses ke panggilan Edge management API sebagai header
Bearer, seperti yang ditunjukkan contoh berikut:curl -H "Authorization: Bearer access_token" \ http://MS_IP_DNS:8080/v1/organizations/org_name
Dengan org_name adalah nama organisasi yang berisi pengguna mesin.
- Untuk memperbarui token akses nanti, gunakan panggilan berikut yang menyertakan token refresh:
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 \ http://edge_sso_IP_DNS:9099/oauth/token \ -d 'grant_type=refresh_token&refresh_token=refreshToken'