Menggunakan IDP eksternal dengan Edge management API

Autentikasi dasar adalah salah satu cara untuk melakukan autentikasi saat melakukan panggilan ke API pengelolaan Edge. 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 lulus Autentikasi dasar memiliki kredensial yang lengkap. Atau, Anda dapat meneruskan token OAuth2 di header Bearer untuk membuat Panggilan API pengelolaan edge, seperti yang ditampilkan 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 memilih untuk menonaktifkan IDP dasar autentikasi. Jika Anda menonaktifkan setelan semua skrip (seperti Maven, shell, dan apigeetool) yang mengandalkan panggilan API pengelolaan Edge yang mendukung autentikasi Dasar tidak lagi berfungsi. Anda harus memperbarui 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) untuk token akses dan refresh OAuth2. Utilitas get_token menerima kredensial, dan menghasilkan token akses yang valid. Jika token dapat dimuat ulang, utilitas akan dimuat ulang dan menampilkannya. Jika masa berlaku token refresh sudah berakhir, token tersebut akan meminta kredensial pengguna.

Utilitas get_token menyimpan token di disk, dan siap digunakan saat diperlukan. Ini juga mencetak token akses yang valid ke stdout. Dari sana, Anda dapat menggunakan ekstensi browser seperti Postman atau sematkan 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.

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

    Opsi -b menentukan lokasi yang berbeda.

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

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

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

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

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

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

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

    Dengan EMAIL_ADDRESS adalah alamat email pengguna Edge.

    (Khusus SAML) Masukkan kode sandi di command line selain alamat email, seperti yang ditunjukkan dalam 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 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 ditunjukkan contoh berikut:
    header=`get_token` && curl -H "Authorization: Bearer $header"
      https://MS_IP:8080/v1/o/ORG_NAME

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

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

Menggunakan API pengelolaan untuk mendapatkan dan memuat ulang token

Menggunakan OAuth2 keamanan dengan API pengelolaan Apigee Edge menunjukkan cara menggunakan API pengelolaan edge 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 OAuth2 dengan API pengelolaan Apigee Edge adalah URL panggilan harus merujuk nama zona. Selain itu, untuk membuat token akses awal dengan IDP SAML, Anda harus menyertakan kode sandi, seperti yang ditunjukkan di langkah 3 dari prosedur di atas.

Untuk otorisasi, teruskan kredensial klien OAuth2 yang dicadangkan di Authorization {i>header<i}. Panggilan akan mencetak token akses dan token pembaruan ke layar.

Mendapatkan token akses

(LDAP) Gunakan panggilan API berikut untuk membuat akses dan pembaruan awal token:

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 membuat akses dan pembaruan awal token:

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'

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

Memuat ulang token akses

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 \
  https://EDGE_SSO_IP_DNS:9099/oauth/token \
  -d 'grant_type=refresh_token&refresh_token=REFRESH_TOKEN'