搭配 Edge Management API 使用外部 IdP

基本驗證是對 Edge 管理 API 發出呼叫時驗證的一種方式。舉例來說,您可以向 Edge 管理 API 提出下列 curl 要求,以便存取貴機構的相關資訊:

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

在這個範例中,使用 curl -u 選項來通過基本驗證 憑證或者,您也可以透過 Bearer 標頭傳遞 OAuth2 權杖, Edge Management API 呼叫,如以下範例所示:

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

啟用外部 IdP 進行驗證後,您可以選擇停用基本版 驗證。停用基本版 驗證、所有可存取的指令碼 (例如 Maven、shell 和 apigeetool) 要求基本驗證的 Edge Management API 呼叫會停止運作。必須更新 使用基本驗證機制傳送 OAuth2 存取權杖的任何 API 呼叫和指令碼 Bearer 標頭。

使用 get_token 取得及更新符記

get_token 公用程式會交換您的基本驗證憑證 (在某些情況下, 密碼) 來進行 OAuth2 存取權及更新權杖。get_token 公用程式接受您的 憑證,並傳回有效的存取權杖。如果權杖可以重新整理,公用程式會重新整理 然後傳回如果重新整理權杖到期,系統會提示使用者提供憑證。

get_token 公用程式會將權杖儲存至磁碟,供需要時使用。這項服務 也會輸出有效的存取權杖至 stdout。接著,您可以使用瀏覽器擴充功能,例如 Postman 或將其嵌入環境變數中,以便在 curl 中使用。

如何取得 OAuth2 存取權杖以執行 Edge Management API 呼叫:

  1. 下載 sso-cli 軟體包:
    curl http://EDGE_SSO_IP_DNS:9099/resources/scripts/sso-cli/ssocli-bundle.zip -o "ssocli-bundle.zip"

    其中 EDGE_SSO_IP_DNS 是託管目標機器的 IP 位址或 DNS 名稱 Apigee 單一登入 (SSO) 模組。如果您已在 Apigee SSO 上設定 TLS,請使用 https 和正確的 TLS 通訊埠號碼。

  2. 解壓縮 ssocli-bundle.zip 套件,如以下範例所示:
    unzip ssocli-bundle.zip
  3. /usr/local/bin 中安裝 get_token,如以下範例所示:
    ./install -b PATH

    -b 選項指定其他位置。

  4. 在下方將 SSO_LOGIN_URL 環境變數設為您的登入網址 表單:
    export SSO_LOGIN_URL="http://EDGE_SSO_IP_DNS:9099"

    其中 EDGE_SSO_IP_DNS 是託管 Apigee 單一登入 (SSO) 服務的機器 IP 位址 後續課程我們將逐一介紹 預先訓練的 API、AutoML 和自訂訓練如果您在 Apigee 單一登入 (SSO) 上設定了 TLS,請使用 https 和正確的 TLS 通訊埠 號碼。

  5. (僅限 SAML) 在瀏覽器中前往以下網址,取得一次性憑證 密碼:
    http://EDGE_SSO_IP_DNS:9099/passcode

    如果您已在 Apigee SSO 上設定 TLS,請使用 https 和正確的 TLS 通訊埠號碼。

    此要求會傳回一次性密碼,直到您重新整理該網址, 取得新密碼或使用 get_token 的密碼來產生 存取權杖

    請注意,只有在透過 SAML IDP 進行驗證時,才能使用密碼。您無法使用 使用 LDAP IDP 進行驗證的密碼。

  6. 叫用 get_token 以取得 OAuth2 存取權杖,如以下範例所示:
    get_token -u EMAIL_ADDRESS

    其中 EMAIL_ADDRESS 是 Edge 使用者的電子郵件地址。

    (僅限 SAML) 除了電子郵件地址外,請在指令列中輸入密碼,如以下範例所示:

    get_token -u EMAIL_ADDRESS -p PASSCODE

    get_token 公用程式會取得 OAuth2 存取權杖,並將其輸出至螢幕,然後將該權杖和更新權杖寫入 ~/.sso-cli

  7. 將存取權杖做為 Bearer 標頭傳遞給 Edge Management API 呼叫。 如以下範例所示:
    curl -H "Authorization: Bearer ACCESS_TOKEN"
      https://MS_IP:8080/v1/organizations/ORG_NAME
  8. 首次取得新的存取權杖後,您可以取得存取權杖,並在單一指令中將其傳遞至 API 呼叫,如以下範例所示:
    header=`get_token` && curl -H "Authorization: Bearer $header"
      https://MS_IP:8080/v1/o/ORG_NAME

    使用這類指令時,如果存取權杖已過期,系統會自動重新整理存取權杖,直到更新權杖過期為止。

(僅限 SAML) 重新整理權杖到期後,get_token 會提示您輸入新的密碼。個人中心 必須先前往上方步驟 3 顯示的網址,並產生新的密碼,才能開始產生密碼 取得新的 OAuth 存取權杖

使用 Management API 取得及重新整理 權杖

使用 OAuth2 瞭解如何運用 Apigee Edge Management API 進行安全性 用於取得及更新權杖的 Edge Management API。您也可以使用 Edge API 呼叫取得權杖 。

和先前提過的 API 呼叫 使用 OAuth2 Apigee Edge Management API 的安全防護,表示呼叫的網址必須參照您的 可用區名稱此外,如要透過 SAML IDP 產生初始存取權杖,您必須加上 密碼,如上述程序的步驟 3 所示。

如要進行授權,請在 Authorization 中傳遞保留的 OAuth2 用戶端憑證 標題。呼叫會在畫面中列印存取權和更新權杖。

取得存取憑證

(LDAP) 使用下列 API 呼叫產生初始存取權並重新整理 符記:

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) 使用下列 API 呼叫產生初始存取權並重新整理 符記:

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'

請注意,SAML IDP 需要臨時密碼才能進行驗證,LDAP IDP 則是 則不需要。

重新整理存取權杖

稍後如要更新存取權杖,請使用下列包含更新權杖的呼叫:

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'