Menggunakan SAML dengan tugas otomatis

Edge for Private Cloud v. 4.17.09

Saat menggunakan SAML dengan Edge API, proses yang Anda gunakan untuk mendapatkan akses OAuth2 dan token refresh dari pernyataan SAML disebut alur kode sandi. Dengan alur kode sandi, Anda menggunakan browser untuk mendapatkan kode sandi sekali pakai yang kemudian digunakan untuk mendapatkan token OAuth2.

Namun, lingkungan pengembangan Anda mungkin mendukung otomatisasi untuk tugas pengembangan umum, seperti otomatisasi pengujian atau Continuous Integration/Continuous Deployment (CI/CD). Untuk mengotomatiskan tugas ini saat SAML diaktifkan, Anda memerlukan cara untuk mendapatkan dan memuat ulang token OAuth2 tanpa harus menyalin/menempelkan kode sandi dari browser.

Edge mendukung pembuatan token otomatis melalui penggunaan pengguna mesin. Pengguna mesin dapat mendapatkan token OAuth2 tanpa harus menentukan kode sandi. Artinya, Anda dapat sepenuhnya mengotomatiskan proses mendapatkan dan memperbarui token OAuth2 menggunakan Edge management API.

Membuat pengguna mesin

Gunakan utilitas apigee-ssoadminapi.sh untuk membuat pengguna mesin untuk organisasi SAML. Lihat Menggunakan apigee-ssoadminapi.sh untuk mengetahui informasi selengkapnya. Anda dapat membuat satu pengguna mesin yang digunakan oleh semua organisasi, atau membuat pengguna mesin terpisah untuk setiap organisasi.

Pengguna mesin dibuat dan disimpan di datastore Edge, bukan di penyedia identitas SAML Anda. Oleh karena itu, Anda tidak bertanggung jawab untuk mengelola pengguna mesin menggunakan UI Edge dan API pengelolaan Edge.

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:

  1. Gunakan perintah apigee-ssoadminapi.sh berikut 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_NAME dalam file konfigurasi yang digunakan untuk mengonfigurasi modul SSO Edge. Defaultnya adalah ssoadmin.
    • SSO_ADMIN_SECRET adalah sandi admin seperti yang ditentukan oleh properti SSO_ADMIN_SECRET dalam file konfigurasi.

      Dalam contoh ini, Anda dapat menghilangkan nilai untuk --port dan --ssl karena modul apigee-sso menggunakan nilai default 9099 untuk --port dan http untuk --ssl. Jika penginstalan Anda tidak menggunakan setelan default ini, tentukan setelan tersebut sebagaimana mestinya.
  2. Login ke UI Edge dan tambahkan email pengguna mesin ke organisasi Anda, lalu 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 memuat ulang token OAuth2 dengan meneruskan kredensial pengguna mesin, bukan kode sandi.

Untuk mendapatkan token OAuth2 bagi pengguna mesin:

  1. 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
    '

    Untuk otorisasi, teruskan kredensial klien OAuth2 yang dicadangkan di header Authorization. Panggilan akan mencetak token akses dan token refresh ke layar. Simpan token untuk digunakan nanti.
  2. Teruskan token akses ke panggilan API pengelolaan Edge sebagai header Bearer:
    > curl -H "Authorization: Bearer access_token" http://ms_IP_DNS:8080/v1/organizations/orgName

    dengan orgName adalah nama organisasi yang berisi pengguna mesin.
  3. Untuk memuat ulang 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'


    Untuk otorisasi, teruskan kredensial klien OAuth2 yang dicadangkan di header Authorization.

Membuat pengguna mesin menggunakan Edge management API

Anda dapat membuat pengguna mesin menggunakan API pengelolaan Edge, bukan menggunakan utilitas apigee-ssoadminapi.sh. Untuk membuat pengguna mesin:

  1. Gunakan perintah cURL berikut untuk mendapatkan token bagi pengguna ssoadmin, nama pengguna akun admin untuk apigee-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-sso seperti yang ditentukan oleh properti SSO_ADMIN_SECRET dalam file konfigurasi.

    Perintah ini menampilkan token yang Anda perlukan untuk melakukan panggilan berikutnya.
  2. Gunakan perintah cURL berikut untuk membuat pengguna mesin, dengan meneruskan token yang Anda terima di 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 di langkah berikutnya.
  3. Login ke UI Edge dan tambahkan email pengguna mesin ke organisasi Anda, lalu tetapkan pengguna mesin ke peran yang diperlukan. Lihat Menambahkan pengguna global untuk mengetahui informasi selengkapnya.