Mengotomatiskan tugas untuk IDP eksternal

Saat menggunakan IDP eksternal dengan Edge API, proses yang Anda gunakan untuk mendapatkan OAuth2 token akses dan refresh dari interaksi IDP disebut alur kode sandi. Dengan alur kode sandi, Anda akan menggunakan browser untuk mendapatkan kode sandi sekali pakai yang kemudian Anda gunakan untuk mendapatkan OAuth2 token kata.

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 komputer dapat mendapatkan token OAuth2 tanpa harus menentukan kode sandi. Itu berarti Anda dapat sepenuhnya mengotomatiskan proses mendapatkan dan memuat ulang token OAuth2 menggunakan API pengelolaan Edge.

Ada dua cara untuk membuat pengguna mesin bagi organisasi yang mendukung IDP:

Setiap metode ini dijelaskan di bagian berikut.

Anda tidak dapat membuat pengguna mesin untuk organisasi yang belum mengaktifkan IDP eksternal.

Membuat pengguna perangkat dengan apigee-ssoadminapi.sh

Menggunakan apigee-ssoadminapi.sh utilitas untuk membuat pengguna komputer dalam organisasi yang mendukung IDP. Lihat Menggunakan apigee-ssoadminapi.sh untuk mengetahui informasi selengkapnya. Anda dapat membuat satu pengguna komputer yang digunakan oleh semua organisasi Anda, atau membuat pengguna komputer terpisah untuk setiap organisasi.

Pengguna mesin dibuat dan disimpan di datastore Edge, bukan di IDP Anda. Oleh karena itu, Anda tidak bertanggung jawab untuk mempertahankan pengguna mesin dengan menggunakan pengelolaan Edge dan UI Edge Compute Engine API.

Saat membuat pengguna mesin, Anda harus menentukan alamat email dan sandi. Sesudah yang membuat pengguna komputer, Anda menetapkannya ke satu atau beberapa organisasi.

Untuk membuat pengguna perangkat dengan apigee-ssoadminapi.sh:

  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

    QUESTION/TBD: Does apigee-ssoadminapi.sh also take "ldap" as an argument?

    Dengan keterangan:

    • SSO_ADMIN_NAME adalah nama pengguna admin yang ditentukan oleh SSO_ADMIN_NAME di file konfigurasi yang digunakan untuk mengonfigurasi Modul SSO Apigee. Defaultnya adalah ssoadmin.
    • SSO_ADMIN_SECRET adalah sandi admin seperti yang ditentukan oleh Properti SSO_ADMIN_SECRET di file konfigurasi.

      Dalam contoh ini, Anda dapat menghilangkan nilai untuk --port dan --ssl karena modul apigee-sso menggunakan nilai 9099 untuk --port dan http untuk --ssl. Jika instalasi tidak menggunakan bawaan ini, tentukan dengan benar.

  2. Login ke UI Edge dan tambahkan email pengguna perangkat ke organisasi Anda, lalu tetapkan pengguna komputer ke peran yang dibutuhkan. Lihat Menambahkan pengguna global untuk banyak lagi.

Membuat pengguna mesin dengan Edge API pengelolaan

Anda dapat membuat pengguna mesin dengan menggunakan API pengelolaan Edge, bukan menggunakan Utilitas apigee-ssoadminapi.sh.

Untuk membuat pengguna perangkat dengan API pengelolaan:

  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"

    Dalam hal ini, SSO_ADMIN_SECRET adalah sandi admin yang Anda setel saat menginstal apigee-sso seperti yang ditentukan oleh properti SSO_ADMIN_SECRET di file konfigurasi.

    Perintah ini menampilkan token yang diperlukan untuk melakukan panggilan berikutnya.

  2. Gunakan perintah curl berikut untuk membuat pengguna mesin, dengan meneruskan token yang telah diterima 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 perangkat pada langkah-langkah berikutnya.

  3. Login ke UI Edge.
  4. Tambahkan email pengguna perangkat ke organisasi Anda dan tetapkan pengguna perangkat ke peran yang diperlukan. Lihat Menambahkan pengguna global untuk mengetahui lebih lanjut.

Mendapatkan dan memperbarui token pengguna mesin

Gunakan Edge API untuk mendapatkan dan memperbarui token OAuth2 dengan meneruskan kredensial, bukannya kode sandi.

Untuk mendapatkan token OAuth2 bagi pengguna perangkat:

  1. Gunakan panggilan API berikut untuk membuat akses awal dan 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 -s \
      -d 'grant_type=password&username=m_user_email&password=m_user_password'

    Simpan token untuk digunakan nanti.

  2. Teruskan token akses ke panggilan API pengelolaan Edge sebagai header Bearer, sebagai contoh berikut menunjukkan:
    curl -H "Authorization: Bearer access_token" \
      http://MS_IP_DNS:8080/v1/organizations/org_name

    Dengan org_name adalah nama organisasi yang berisi pengguna perangkat.

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