使用 get_token 和 acurl 公用程式

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 引數。公用程式會讀取快取的權杖,並自動插入。