關於 acurl 和 get_token

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

Apigee 提供下列實用工具,可產生及傳遞 OAuth2 存取和更新權杖。您可以使用這些權杖,在 Edge API 呼叫中透過 OAuth 驗證身分 (包括 SAML 和 LDAP 工作流程):

  • acurl(1):提供標準 curl 指令的便利包裝函式。建構 Edge API 的 HTTP 要求、從 get_token 取得存取和重新整理權杖,並將存取權杖傳遞至 Edge API。
  • get_token(1):將 Apigee 憑證換成存取和更新權杖,以便呼叫 Edge API。

這兩項公用程式都會以您的 Apigee 帳戶憑證 (使用者名稱和密碼或密碼) 換取 OAuth2 權杖。

Apigee 公用程式建立的權杖符合 OAuth 2.0 授權架構規格

您可以選擇是否使用 Apigee 公用程式取得權杖,或存取 Edge API 的驗證伺服器。 您可以自行實作產生 OAuth2 存取權杖的機制,並在傳送至 Edge API 的要求中提供權杖。

安裝 acurl 和 get_token

Apigee 會提供 ZIP 檔案,內含 acurl(1)get_token(1) 和安裝指令碼。

如何安裝 acurlget_token

  1. 在電腦上建立安裝目錄,或使用預設的 usr/local/bin 目錄。
  2. 從 Apigee 下載安裝 ZIP 檔案:
    curl https://login.apigee.com/resources/scripts/sso-cli/ssocli-bundle.zip -O
  3. 解壓縮下載的檔案。
  4. 執行安裝指令碼:
    sudo ./install -b /usr/local/bin

    -b 選項會指定執行檔的位置。如未指定這個選項,安裝指令碼會在 /usr/local/bin 中安裝公用程式。

  5. 測試安裝項目:
        acurl -h
        get_token -h

    如果安裝成功,這些指令會傳回公用程式的說明文字。

權杖到期

acurlget_token 會產生下列時效的權杖:

  • 存取權杖會在 12 小時後失效。
  • 重新整理權杖的有效期限為 30 天。

因此,只要您使用 acurlget_token 成功發出 API 呼叫,即可在 30 天內繼續使用權杖配對。過期後,您必須重新輸入憑證並取得新權杖。

設定單一登入端點

首次呼叫前,您必須為要搭配 acurlget_token 使用的 Edge API 設定授權伺服器端點。

在終端機中,將 SSO_LOGIN_URL 環境變數設為授權伺服器端點。例如:

  • 適用於沒有可用區的 Cloud 客戶:
    export SSO_LOGIN_URL=https://login.apigee.com
  • 適用於有可用區的 Cloud 客戶:
    export SSO_LOGIN_URL=https://zone_name.login.apigee.com
  • 如果是私有雲客戶,請向管理員索取適當的 SSO 端點。

使用動態密碼 (SAML 必須使用)

使用 acurlget_token 呼叫 API 時,您必須向公用程式驗證身分,才能取得權杖組合。如要這麼做,請傳遞 Apigee 帳戶的使用者名稱、密碼和 MFA 驗證碼。不過,如果您使用 SAML IDP,或不想使用密碼,可以改用一次性驗證碼。

如何取得動態密碼:

  1. 在瀏覽器中輸入下列網址:
    • 適用於沒有可用區的 Cloud 客戶:
      https://login.apigee.com/passcode
    • 適用於有可用區的 Cloud 客戶:
      https://zone_name.login.apigee.com/passcode
    • 如果是私有雲客戶,請向管理員索取適當的 SSO 端點。
  2. 登入 Apigee 帳戶。
  3. 複製 6 位數的密碼。
  4. 使用 acurlget_token,並加上 -p 選項,然後傳遞密碼,如下列範例所示:
    get_token -p 1a2b3c

查看權杖

成功執行 acurlget_token 後,公用程式會在 ~/.sso-cli 中建立資料檔案,內含權杖和其他中繼資料。

如要查看權杖,可以使用類似以下的指令:

get_token -v

這項指令會顯示已解碼的權杖聲明,例如:

Decoded token claims:
 {
  "jti": "8018507e-9f34-4a90-bf97-ff226a06b19b",
  "sub": "858217a9-01a1-4111-8525-75ca555f5d5c",
  "scope": [
    "scim.emails.read",
    "scim.me",
    "openid",
    "password.write",
    "approvals.me",
    "scim.ids.read",
    "oauth.approvals"
          ],
  "client_id": "edgecli",
  "cid": "edgecli",
  "azp": "edgecli",
  "grant_type": "password",
  "user_id": "858217a9-01a1-4111-8525-75ca555f5d5c",
  "origin": "usergrid",
  "user_name": "myusername@google.com",
  "email": "myusername@google.com",
  "auth_time": 1597444772,
  "al": 0,
  "rev_sig": "6271c527",
  "iat": 1597444772,
  "exp": 1597487972,
  "iss": "https://login.apigee.com",
  "zid": "uaa",
  "aud": [
    "edgecli",
    "scim.emails",
    "scim",
    "openid",
    "password",
    "approvals",
    "scim.ids",
    "oauth"
        ]
    }
Current timestamp: 1597444983
Existing access token is still valid

(1) 版權所有 2023 Google LLC
acurlget_token 工具以「軟體」形式提供,遵循使用 Google Cloud Platform 相關的管理協議,包含以下《服務專屬條款》:https://cloud.google.com/terms/service-terms