Menggunakan IDP eksternal dengan Edge management API

Autentikasi dasar adalah salah satu cara untuk mengautentikasi saat melakukan panggilan ke Edge Management API. Misalnya, Anda dapat membuat permintaan curl berikut ke Edge management API untuk mengakses informasi tentang organisasi Anda:

curl -u USER_NAME:PASSWORD https://MS_IP_DNS:8080/v1/organizations/ORG_NAME

Dalam contoh ini, Anda menggunakan opsi curl -u untuk meneruskan kredensial autentikasi Dasar. Atau, Anda dapat meneruskan token OAuth2 di header Bearer untuk melakukan panggilan API pengelolaan Edge, seperti yang ditunjukkan dalam contoh berikut:

curl -H "Authorization: Bearer ACCESS_TOKEN" https://MS_IP_DNS:8080/v1/organizations/ORG_NAME

Setelah mengaktifkan IDP eksternal untuk autentikasi, Anda dapat menonaktifkan autentikasi Dasar. Jika Anda menonaktifkan autentikasi Dasar, semua skrip (seperti Maven, shell, dan apigeetool) yang mengandalkan panggilan API pengelolaan Edge yang mendukung autentikasi Dasar tidak akan berfungsi lagi. Anda harus mengupdate semua panggilan dan skrip API yang menggunakan Autentikasi dasar untuk meneruskan token akses OAuth2 di header Bearer.

Mendapatkan dan memuat ulang token dengan get_token

Utilitas get_token menukar kredensial autentikasi Dasar Anda (dan dalam beberapa kasus, kode sandi) dengan akses OAuth2 dan token refresh. Utilitas get_token menerima kredensial Anda dan menampilkan token akses yang valid. Jika token dapat diperbarui, utilitas akan dimuat ulang dan menampilkannya. Jika masa berlaku token refresh berakhir, token pengguna akan diminta.

Utilitas get_token menyimpan token di disk, yang siap digunakan saat diperlukan. Tindakan ini juga mencetak token akses yang valid ke stdout. Dari sana, Anda dapat menggunakan ekstensi browser seperti Postman atau menyematkannya dalam variabel lingkungan untuk digunakan di curl.

Untuk mendapatkan token akses OAuth2 guna melakukan panggilan API pengelolaan Edge:

  1. Download paket sso-cli:
    curl http://EDGE_SSO_IP_DNS:9099/resources/scripts/sso-cli/ssocli-bundle.zip -o "ssocli-bundle.zip"

    Dengan EDGE_SSO_IP_DNS adalah alamat IP atau nama DNS mesin yang menghosting modul SSO Apigee. Jika Anda mengonfigurasi TLS di SSO Apigee, gunakan https dan nomor port TLS yang benar.

  2. Ekstrak paket ssocli-bundle.zip, seperti yang ditunjukkan pada contoh berikut:
    unzip ssocli-bundle.zip
  3. Instal get_token di /usr/local/bin, seperti yang ditunjukkan pada contoh berikut:
    ./install -b PATH

    Opsi -b menentukan lokasi yang berbeda.

  4. Tetapkan variabel lingkungan SSO_LOGIN_URL ke URL login Anda, dalam bentuk berikut:
    export SSO_LOGIN_URL="http://EDGE_SSO_IP_DNS:9099"

    Dengan EDGE_SSO_IP_DNS adalah alamat IP mesin yang menghosting modul SSO Apigee. Jika Anda mengonfigurasi TLS di SSO Apigee, gunakan https dan nomor port TLS yang benar.

  5. (SAML only) Di browser, buka URL berikut untuk mendapatkan kode sandi sekali pakai:
    http://EDGE_SSO_IP_DNS:9099/passcode

    Jika Anda mengonfigurasi TLS di SSO Apigee, gunakan https dan nomor port TLS yang benar.

    Permintaan ini menampilkan kode sandi sekali pakai yang tetap valid hingga Anda me-refresh URL tersebut untuk mendapatkan kode sandi baru atau Anda menggunakan kode sandi dengan get_token untuk membuat token akses.

    Perlu diperhatikan bahwa Anda hanya dapat menggunakan kode sandi saat melakukan autentikasi dengan IDP SAML. Anda tidak dapat menggunakan kode sandi untuk melakukan autentikasi dengan IDP LDAP.

  6. Panggil get_token untuk mendapatkan token akses OAuth2, seperti yang ditunjukkan pada contoh berikut:
    get_token -u EMAIL_ADDRESS

    Dengan EMAIL_ADDRESS adalah alamat email pengguna Edge.

    (SAML only) Masukkan kode sandi di command line selain alamat email, yang ditunjukkan pada contoh berikut:

    get_token -u EMAIL_ADDRESS -p PASSCODE

    Utilitas get_token mendapatkan token akses OAuth2, mencetaknya ke layar, dan menulisnya serta token refresh ke ~/.sso-cli.

  7. Teruskan token akses ke panggilan API pengelolaan Edge sebagai header Bearer, seperti yang ditunjukkan pada contoh berikut:
    curl -H "Authorization: Bearer ACCESS_TOKEN"
      https://MS_IP:8080/v1/organizations/ORG_NAME
  8. Setelah mendapatkan token akses baru untuk pertama kalinya, Anda bisa mendapatkan token akses dan meneruskannya ke panggilan API dalam satu perintah, seperti yang ditampilkan dalam contoh berikut:
    header=`get_token` && curl -H "Authorization: Bearer $header"
      https://MS_IP:8080/v1/o/ORG_NAME

    Dengan bentuk perintah ini, jika masa berlaku token akses telah berakhir, token tersebut akan otomatis diperbarui hingga masa berlaku token refresh berakhir.

(Khusus SAML) Setelah masa berlaku token refresh berakhir, get_token akan meminta kode sandi baru kepada Anda. Anda harus membuka URL yang ditunjukkan di atas pada langkah 3 dan membuat kode sandi baru sebelum Anda dapat membuat token akses OAuth baru.

Gunakan Management API untuk mendapatkan dan memperbarui token

Gunakan keamanan OAuth2 dengan API pengelolaan Apigee Edge yang menunjukkan cara menggunakan Edge Management API untuk mendapatkan dan memperbarui token. Anda juga dapat menggunakan panggilan Edge API untuk mendapatkan token yang dihasilkan dari pernyataan SAML.

Satu-satunya perbedaan antara panggilan API yang didokumentasikan dalam Menggunakan keamanan OAuth2 dengan API pengelolaan Apigee Edge adalah URL panggilan harus merujuk ke nama zona Anda. Selain itu, untuk membuat token akses awal dengan IDP SAML, Anda harus menyertakan kode sandi, seperti yang ditunjukkan pada langkah 3 dari prosedur di atas.

Untuk otorisasi, teruskan kredensial klien OAuth2 yang dicadangkan di header Authorization. Panggilan tersebut akan mencetak akses dan token refresh ke layar.

Mendapatkan token akses

(LDAP) 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=USER_EMAIL&password=USER_PASSWORD'

(SAML) Gunakan panggilan API berikut untuk menghasilkan 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 \
  https://EDGE_SSO_IP_DNS:9099/oauth/token -s \
  -d 'grant_type=password&response_type=token&passcode=PASSCODE'

Perlu diperhatikan bahwa autentikasi dengan IDP SAML memerlukan kode sandi sementara, sedangkan IDP LDAP tidak.

Memperbarui token akses

Untuk memperbarui token akses di lain waktu, 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 \
  https://EDGE_SSO_IP_DNS:9099/oauth/token \
  -d 'grant_type=refresh_token&refresh_token=REFRESH_TOKEN'