呼叫 Edge 管理 API 時,基本驗證是其中一種驗證方式。
舉例來說,您可以向 Edge Management API 提出下列 curl 要求,存取貴機構的相關資訊:
curl -u USER_NAME:PASSWORD http://MS_IP_DNS:8080/v1/organizations/ORG_NAME
在本例中,您可以使用 curl -u 選項傳遞基本驗證憑證。或者,您也可以在 Authorization: Bearer 標頭中傳遞 OIDC/OAuth2 權杖,發出 Edge Management API 呼叫,如以下範例所示:
curl -H "Authorization: Bearer ACCESS_TOKEN" http://MS_IP_DNS:8080/v1/organizations/ORG_NAME
啟用外部 IDP 進行驗證後,您可以選擇停用基本驗證。如果停用基本驗證,所有依賴 Edge Management API 呼叫 (支援基本驗證) 的指令碼 (例如 Maven、殼層和 apigeetool) 都將無法運作。您必須更新所有使用基本驗證的 API 呼叫和指令碼,在 Bearer 標頭中傳遞 OAuth2 存取權杖。
使用 get_token 取得及更新權杖
get_token 公用程式會使用標準 OAuth 2.0 裝置代碼流程,取得 OIDC/OAuth2 存取權和更新權杖。公用程式會提示您在瀏覽器中造訪網址,透過外部 IDP (或本機 LDAP) 進行驗證,然後自動解除封鎖終端機,列印有效的存取權杖。
get_token 公用程式會將權杖安全地快取到 ~/.sso-cli/ 的磁碟中,以備不時之需。此外,它也會將有效的存取權杖列印至 stdout。如果現有權杖可以重新整理,公用程式會自動重新整理。如果更新權杖過期,系統會啟動新的瀏覽器授權流程。
如要取得 OAuth2 存取權杖,以便發出 Edge Management API 呼叫,請按照下列步驟操作:
get_token和acurl公用程式已預先安裝在託管 Apigee SSO (OpenLDAP 節點) 的節點上,位置如下:/opt/apigee/apigee-openldap/bin/- (選用) 將
SSO_LOGIN_URL環境變數設為單一登入 (SSO) 簽發者網址,格式如下:export SSO_LOGIN_URL="http://EDGE_SSO_IP_DNS:9099"
其中 EDGE_SSO_IP_DNS 是託管 Apigee SSO 的機器 IP 位址或 DNS 名稱。如果您在 Apigee SSO 上設定了 TLS,請使用
https和正確的 TLS 連接埠號碼。 - 使用您的電子郵件地址叫用
get_token,啟動 OAuth 2.0 裝置程式碼流程:/opt/apigee/apigee-openldap/bin/get_token -u EMAIL_ADDRESS
其中 EMAIL_ADDRESS 是 Edge 使用者的電子郵件地址。
- 公用程式會暫停,並在終端機中顯示網址和 8 個字元的裝置代碼:
Please visit: http://EDGE_SSO_IP_DNS:9099/device And enter code: ABCD-EFGH
- 在瀏覽器中開啟指定網址,輸入裝置代碼,然後按一下「提交」。系統會將你重新導向至外部 IDP (或當地 LDAP 表單),以驗證並核准要求。
- 在瀏覽器中成功完成驗證後,請返回終端機。
get_token公用程式會自動偵測核准、取得 OAuth2 存取權杖、將權杖顯示在畫面上,並安全地快取權杖。 - 使用
acurl公用程式將存取權杖傳遞至 Edge Management API 呼叫,這個公用程式會自動讀取快取權杖並插入 Bearer 標頭:/opt/apigee/apigee-openldap/bin/acurl http://MS_IP_DNS:8080/v1/organizations/ORG_NAME
或者,您也可以使用標準
curl手動傳遞權杖:curl -H "Authorization: Bearer ACCESS_TOKEN" \ http://MS_IP_DNS:8080/v1/organizations/ORG_NAME
使用 Management API 取得及更新權杖
舊版 /passcode 端點已移除。因此,人類使用者必須使用先前所述的 get_token 公用程式,啟動以瀏覽器為基礎的 OAuth 2.0 裝置代碼流程,進行初始驗證。
如果您編寫的指令碼或 CI/CD 管道無法與瀏覽器互動,請參閱「使用機器使用者自動執行工作」。自動化機器使用者或具備有效憑證的應用程式,可使用標準 API 呼叫取得及更新權杖。