使用 get_token

您目前查看的是 Apigee Edge 說明文件。
參閱 Apigee X 說明文件
資訊

get_token(1) 公用程式可讓您交換 Apigee 憑證,以便取得存取權及更新權杖,以便用來存取 Edge API。權杖也可以與 SAMLOAuth2 工作流程的 LDAP 實作搭配使用。

get_token 可讓您:

  • 取得存取權或更新權杖。
  • 將權杖列印至 stdout,以便用於變數和指令。
  • 在磁碟中儲存權杖。

然後,您可以在傳送至 Edge API 的要求中加入有效權杖,並在權杖過期時取得新權杖。

事前準備:您必須先安裝,才能使用 get_token

get_token 語法

get_token 公用程式使用下列語法:

get_token -u USERNAME:PASSWORD [-m MFACODE]

get_token -p passcode

在此情況下:

元素 必填與否 說明
USERNAME 選用:必須輸入使用者名稱和密碼組合或密碼。 您的 Apigee 使用者名稱,通常是與您的 Apigee 帳戶相關聯的電子郵件地址。第一次呼叫 get_token 時,必須傳遞使用者名稱或密碼。 您無須再次傳送您的電子郵件地址,直到存取權和重新整理權杖過期為止。如果要為多位使用者快取權杖,您必須在每次呼叫中指定使用者名稱。
PASSWORD 選用:必須輸入使用者名稱和密碼組合或密碼。 Apigee 帳戶的密碼。如果省略密碼,則您第一次使用 get_token,以及後續呼叫時,在沒有有效的重新整理權杖時,系統會提示您輸入密碼。如果您不想直接在指令中使用您的密碼,可使用動態密碼,而不要使用密碼。
MFACODE 選用 臨時的六位數多重驗證 (MFA) 代碼。如果您使用 -u 且已啟用 MFA,就必須提供這個代碼。如省略密碼,則會收到提示 (除非密碼模式)。如未啟用 MFA,或您有使用指令碼的流程,可以指定 -m "" 來避免收到提示。
PASSCODE 選用:必須輸入使用者名稱和密碼組合或密碼。 「動態密碼」,可用來取代密碼。透過 SAML IDP 進行驗證時必須提供密碼,且可能可用於透過 LDAP IDP 進行驗證。

例如:

get_token
get_token -u ahamilton@apigee.com:mypassw0rd -m 424242
get_token -p mypass

呼叫成功後,系統會將有效的存取權杖列印至 stdout,並將存取權和更新權杖儲存在 ~/.sso-cli 中。您可以使用這些權杖,直到權杖過期,詳情請參閱「權杖效期」。

首次成功呼叫 get_token 後,在權杖過期前,您無須提供憑證。

初次呼叫 get_token

如果您未在第一次呼叫中指定任何選項,get_token 會提示您輸入下列內容:

  • 透過 SAML 識別資訊提供者 (IDP) 進行驗證時的密碼。
  • 您的使用者名稱、密碼和臨時 MFA 代碼。

以下範例會首次呼叫 get_token,並使用使用者名稱/密碼組合,搭配選用的 MFA 代碼進行驗證:

get_token
Enter username:
ahamilton@apigee.com
Enter the password for user 'ahamilton@apigee.com':
[hidden input]
Enter the six-digit code if 'ahamilton@apigee.com' is MFA-enabled or press ENTER:
123456

ey42bGciOiJSUzI1NiJ9.eyJqdGkiOiJhM2YwNjA5ZC1lZTIxLTQ1YjAtOGQyMi04MTQ0MTYxNjNhNTMiLCJzdWIiOiIyZDFl
  <snip>
VlLmNvbSIsInppZCI6InVhYSIsImF1ZCI6WyJlZGdlY2xpIiwic2NpbSIsIm9wZW5pZCIsInBhc3N3b3JkIiwiYXBwcm54242

將存取權杖新增到要求中

成功呼叫 get_token 後,您可以透過多種方式將存取權杖傳入至 Edge API 呼叫的 Authorization 標頭中,藉此使用存取權杖。方法如下:

  • 複製 get_token 回應的內容,並直接插入標頭:
    curl https://api.enterprise.apigee.com/v1/organizations/danger4242-eval \
      -H "Authorization: Bearer B42CnTIYPxr...88NI5Q"
  • 結合多個指令來取得權杖,並將權杖新增至標頭:
    token=$(get_token); curl -H "Authorization: Bearer $token" \
      https://api.enterprise.apigee.com/v1/organizations/ahamilton-eval

    請注意,get_token 會使用指令替換語法 $(...) 來執行。

  • curl 呼叫中呼叫 get_token
    curl -H "Authorization: Bearer $(get_token)" \
      https://api.enterprise.apigee.com/v1/organizations/ahamilton-eval

    請注意,get_token 會使用指令替換語法 $(...) 來執行。

這些要求範例會取得「ahamilton-eval」機構的詳細資料。如需 Edge API 端點的完整清單,請參閱 Apigee Edge API 參考資料

搭配 SAML 和 LDAP 使用 get_token

get_token 公用程式可與 SAML、LDAP 或任何其他基礎 IDP 搭配使用。 get_token 支援使用多個單一登入 (SSO) 登入網址和多個帳戶。系統會提示擁有多個帳戶的使用者為每個 get_token 呼叫指定使用者名稱。

清除 get_token 快取

您可以使用下列選用旗標來清除 get_token 快取:

  • --clear-sso-cache

    清除 $HOME/.sso-cli 底下 SSO_LOGIN_URL 的快取目錄,捨棄伺服器的任何快取存取權和重新整理權杖。

  • --clear-all-sso-cache

    清除 $HOME/.sso-cli 下的所有目錄,捨棄所有快取權杖。


(1) Copyright 2023 Google LLC
get_token 工具會依據規範 Google Cloud Platform 使用行為的協議提供「軟體」(包括 https://cloud.google.com/terms/service-terms 所列的《服務專屬條款》)。