呼叫 Edge Management API 時,基本驗證是其中一種驗證方式。舉例來說,您可以向 Edge Management 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 進行驗證後,您可以選擇停用基本驗證。如果停用基本驗證,所有依賴 Edge Management API 呼叫支援基本驗證的指令碼 (例如 Maven、殼層和 apigeetool) 都將無法運作。您必須更新所有使用基本驗證的 API 呼叫和指令碼,在 Bearer 標頭中傳遞 OAuth2 存取權杖。
使用 get_token 取得及更新權杖
get_token 公用程式會將基本驗證憑證 (在某些情況下為密碼) 換成 OAuth2 存取和更新權杖。get_token 公用程式會接受您的憑證,並傳回有效的存取權杖。如果可以更新權杖,公用程式會更新並傳回權杖。如果更新權杖過期,系統會提示使用者輸入憑證。
get_token 公用程式會將權杖儲存在磁碟上,以便在需要時使用。此外,也會將有效的存取權杖輸出至 stdout。接著,您可以使用 Postman 等瀏覽器擴充功能,或將其嵌入環境變數,以便在 curl 中使用。
如要取得 OAuth2 存取權杖,以便發出 Edge Management API 呼叫,請按照下列步驟操作:
- 下載
sso-cli套件:curl http://EDGE_SSO_IP_DNS:9099/resources/scripts/sso-cli/ssocli-bundle.zip -o "ssocli-bundle.zip"
其中 EDGE_SSO_IP_DNS 是託管 Apigee SSO 模組的機器 IP 位址或 DNS 名稱。如果您在 Apigee SSO 上設定 TLS,請使用
https和正確的 TLS 通訊埠編號。 - 解壓縮
ssocli-bundle.zip套件,如以下範例所示:unzip ssocli-bundle.zip
- 在
/usr/local/bin中安裝get_token,如以下範例所示:./install -b PATH
-b選項會指定其他位置。 - 將
SSO_LOGIN_URL環境變數設為登入網址,格式如下:export SSO_LOGIN_URL="http://EDGE_SSO_IP_DNS:9099"
其中 EDGE_SSO_IP_DNS 是託管 Apigee SSO 模組的機器 IP 位址。如果您在 Apigee SSO 設定了 TLS,請使用
https和正確的 TLS 通訊埠編號。 - (僅限 SAML) 在瀏覽器中前往下列網址,取得動態密碼:
http://EDGE_SSO_IP_DNS:9099/passcode
如果您在 Apigee SSO 設定了 TLS,請使用
https和正確的 TLS 通訊埠編號。這項要求會傳回動態密碼,在您重新整理網址取得新密碼,或使用
get_token搭配密碼產生存取權杖前,該密碼都會保持有效。請注意,只有在使用 SAML IdP 進行驗證時,才能使用密碼。您無法使用密碼向 LDAP IDP 驗證身分。
- 叫用
get_token取得 OAuth2 存取權杖,如以下範例所示:get_token -u EMAIL_ADDRESS
其中 EMAIL_ADDRESS 是 Edge 使用者的電子郵件地址。
(僅限 SAML) 除了電子郵件地址外,請在指令列中輸入密碼,如以下範例所示:
get_token -u EMAIL_ADDRESS -p PASSCODE
get_token公用程式會取得 OAuth2 存取權杖,並將其列印到螢幕上,然後將其和更新權杖寫入~/.sso-cli。 - 將存取權杖做為
Bearer標頭傳遞至 Edge Management API 呼叫,如以下範例所示:curl -H "Authorization: Bearer ACCESS_TOKEN" https://MS_IP:8080/v1/organizations/ORG_NAME
- 首次取得新的存取權杖後,您可以使用單一指令取得存取權杖,並將其傳遞至 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 呼叫,取得從 SAML 斷言產生的權杖。
「搭配 Apigee Edge Management API 使用 OAuth2 安全性」一文所述的 API 呼叫,與本節所述的 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'