Apigee 提供 get_token 和 acurl 公用程式,可簡化與 Apigee SSO 和 Edge Management API 的互動。這些工具會自動處理權杖的產生、快取、重新整理和插入作業。
公用程式會安裝在 OpenLDAP 節點的 /opt/apigee/apigee-openldap/bin/。
get_token 公用程式
get_token 公用程式負責取得 OIDC/OAuth2 存取權和更新權杖。支援兩種主要驗證流程,並內建權杖快取功能。
驗證流程
- 裝置代碼流程 (RFC 8628):專為透過外部身分識別提供者 (例如 SAML、Okta 或 OIDC) 驗證身分的使用者設計。如果您只傳遞電子郵件地址 (
-u <email>),公用程式會啟動這項流程,並提示您在瀏覽器中核准的網址和代碼。 - 密碼授權 (ROPC):適用於無頭機器使用者和自動化指令碼。如果您同時傳遞使用者名稱和密碼 (
-u <user>:<password>),系統會直接對 Apigee SSO 進行驗證,不必與瀏覽器互動。
權杖快取和自動重新整理
get_token 公用程式會自動管理權杖生命週期,因此您不必手動追蹤到期時間:
- 快取檢查:叫用時,
get_token會檢查~/.sso-cli/<username>-token.json的本機快取。如果有效的權杖存在且尚未過期,系統會重複使用該權杖,而不會重新驗證。 - 自動重新整理:如果快取的存取權杖已過期,但有有效的更新權杖,公用程式會自動在 Apigee SSO 交換更新權杖,取得新的存取權杖。
環境變數
您可以視需要使用下列環境變數,自訂 get_token 的行為:
SSO_LOGIN_URL:Apigee SSO 網址 (預設值:http://localhost:9099)。CLIENT_ID:OAuth2 用戶端 ID (預設:edgecli)。CLIENT_SECRET:OAuth2 用戶端密鑰 (預設值:edgeclisecret)。
acurl 公用程式
acurl 公用程式是標準 curl 的透明包裝函式。確保每項 API 要求都包含有效的不記名權杖。
- 引數分隔:這個公用程式會擷取
-u <user:password>或-u <user>引數,並傳遞至get_token。並將所有其他引數 (例如-X、-H、-d、-v、-s) 直接轉送至標準curl。 - 執行:成功從
get_token取得或擷取有效權杖後,acurl會自動將-H "Authorization: Bearer <token>"標頭插入curl叫用。
使用範例
範例 1:人類使用者的互動式登入
/opt/apigee/apigee-openldap/bin/acurl -u developer@apigee.com http://MS_IP_DNS:8080/v1/organizations
這項指令會暫停,提示使用者前往瀏覽器,透過外部 IDP 驗證,然後在核准後執行 API 呼叫。
範例 2:機器使用者無介面登入
/opt/apigee/apigee-openldap/bin/acurl -u jenkins-bot@apigee.com:Secret123! http://MS_IP_DNS:8080/v1/organizations
這項指令會直接透過密碼授權進行驗證,並立即執行 API 呼叫。
範例 3:重複使用快取權杖
/opt/apigee/apigee-openldap/bin/acurl http://MS_IP_DNS:8080/v1/users
由於權杖已在先前步驟中快取,因此您不必再次提供 -u 引數。公用程式會讀取快取的權杖,並自動插入。