使用 get_token

您目前查看的是 Apigee Edge 說明文件。
前往 Apigee X 說明文件
info

您可以使用 get_token(1) 公用程式,以 Apigee 憑證換取存取和更新權杖,以便存取 Edge API。權杖也可用於 OAuth2 工作流程的 SAML 和 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 並已啟用多重驗證,就必須提供這個代碼。 如果省略,系統會提示您輸入 (除非處於密碼模式)。如果未啟用多重驗證,或使用指令碼流程,可以指定 -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) 驗證,則為密碼。
  • 否則請提供使用者名稱、密碼和臨時多重驗證碼。

下列範例會首次呼叫 get_token,並使用使用者名稱/密碼組合和選用的多重驗證代碼進行驗證:

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) 版權所有 2023 Google LLC
我們提供的 get_token 工具是「軟體」,遵循使用 Google Cloud Platform 相關的管理協議,包含以下《服務專屬條款》:https://cloud.google.com/terms/service-terms