關於 acurl 和 get_token

您正在查看 Apigee Edge 說明文件。
查看 Apigee X 說明文件
資訊

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 提供包含 acurl(1)get_token(1) 和安裝指令碼的 ZIP 檔案。

如何安裝 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 天內繼續使用權杖組合。到期後,您必須重新輸入憑證並取得新權杖。

設定單一登入 (SSO) 端點

第一次呼叫之前,您必須先為要與 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. 搭配 -p 選項使用 acurlget_token,並傳遞密碼,如以下範例所示:
    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) Copyright 2023 Google LLC
acurlget_token 工具以「軟體」形式提供,遵循 Google Cloud Platform 使用規範的協議,包括《服務專屬條款》,列載於 https://cloud.google.com/terms/service-terms