將 SAML 與 Edge Management API 搭配使用

Private Cloud v4.19.01 版

基本驗證是在呼叫 Edge Management API 時進行驗證的一種方式。適用對象 舉例來說,您可以向 Edge Management API 提出以下 cURL 要求,以便存取資訊 您的機構:

curl -u userName:pWord https://ms_IP_DNS:8080/v1/organizations/orgName

在這個範例中,使用 cURL -u 選項傳送基本驗證憑證。或者,您也可以 可以在 Bearer 標頭中傳遞 OAuth2 權杖,讓 Edge Management API 呼叫。例如:

curl -H "Authorization: Bearer access_token" https://ms_IP_DNS:8080/v1/organizations/orgName

啟用 SAML 後,您可以選擇停用基本驗證。如果您停用基本驗證 採用 Edge 的指令碼 (Maven 指令碼、殼層指令碼、apigeetool 等) 支援基本驗證的 Management API 呼叫已停止運作。您必須更新所有 API 呼叫,並且 使用基本驗證在 Bearer 標頭中傳遞 OAuth2 存取權杖的指令碼。

使用 get_token 取得及更新符記

get_token 公用程式 交換基本驗證憑證和密碼,以獲得 OAuth2 存取權和更新權杖。 get_token 公用程式接受 並輸出有效的存取權杖如果權杖可以重新整理,就會重新整理並 列印出來。如果更新權杖過期,系統會提示使用者憑證。

get_token 公用程式商店 這些符記隨時能使用該指令也會輸出有效的存取權杖至 stdout。 您可以在這裡使用 Postman,也可以將其嵌入環境變數中,以在 curl 中使用。

以下程序說明如何使用 get_token 取得 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 是機器的 DNS 名稱的 IP 位址 負責託管 Edge SSO 模組如果您在邊緣單一登入 (SSO) 上設定了 TLS,請使用 https 和 正確的 TLS 通訊埠號碼。

  2. 解壓縮 ssocli-bundle.zip 套件:
    unzip ssocli-bundle.zip
  3. get_token /usr/local/bin:
    >./install 使用 -b 選項來指定 不同位置:>./install -b 路徑
  4. 設定 SSO_LOGIN_URL 將環境變數連結至您的登入網址,格式如下:
    匯出 SSO_LOGIN_URL="http://edge_sso_IP_DNS:9099"

    其中 edge_sso_IP_DNS 是機器的 DNS 名稱 IP 位址 負責託管 Edge SSO 模組如果您已在邊緣單一登入 (SSO) 中設定 TLS,請使用 https 和正確的 TLS 通訊埠編號。
  5. 在瀏覽器中前往下列網址,取得一次性密碼:
    http://edge_sso_IP_DNS:9099/passcode

    如果您已在邊緣單一登入 (SSO) 中設定 TLS,請使用 https 和正確的 TLS 通訊埠編號。

    注意:如果您目前未登入識別資訊提供者, 會收到登入提示

    這個網址會傳回一次性密碼,直到您重新整理該網址來取得 新的密碼,或使用 get_token 產生存取權杖。
  6. 叫用 get_token 以取得 OAuth2 存取權杖:
    >get_token -u emailAddress

    其中 emailAddress 是 Edge 使用者的電子郵件地址。你正在 系統會提示您輸入您在步驟 3 取得的一次性密碼:
    一次性代碼 ( 取得 https://edge_sso_IP.com/passcode )
    如果 SAML 已啟用,請輸入密碼,或按下 Enter 鍵:


    輸入密碼。get_token 公用程式會取得 OAuth2 存取權 權杖輸出到畫面上,並將權杖和更新權杖寫入 ~/.sso-cli

    您可以在指令列中使用 get_token 指令輸入密碼,格式如下:
    >get_token -u emailAddress -p 通行碼
  7. 將存取權杖做為 Bearer 標頭傳遞至 Edge Management API 呼叫:
    >curl -H「Authorization: Bearer access_token" https://ms_IP:8080/v1/organizations/orgName

    首次取得新的存取權杖後,您可以取得存取權杖 透過單一指令將其傳遞至 API 呼叫,如下所示:
    >header=`get_token` && curl -H「Authorization: Bearer $header」 https://ms_IP:8080/v1/o/orgName

    使用這個形式的指令時,如果存取權杖已過期,會自動重新整理 直到更新權杖過期為止

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

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

使用 OAuth2 Apigee Edge Management API 確保安全性包含如何使用 用於取得及更新權杖的 Edge Management API。您也能透過 Edge API 呼叫取得權杖 。

唯一的 API 呼叫不同之處,請參閱「使用 OAuth2 安全性」一節 使用 Apigee Edge Management API:呼叫的網址必須參照您的可用區 名稱。此外,為產生初始存取權杖,您必須加入通行碼,例如 如上述程序步驟 3 所示。

舉例來說,請使用下列 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'  

如要進行授權,請在 Authorization 標頭中傳送保留的 OAuth2 用戶端憑證。呼叫會輸出 存取及重新整理符記

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

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=refreshToken'