作業指南

查看 Apigee Edge 說明文件。
前往 Apigee X說明文件
資訊

如何取得 API 金鑰

以下範例說明如何取得可用來驗證資料的 API 金鑰 透過 Apigee Adapter for Envoy 對目標服務進行 API 呼叫。

1. 登入 Apigee

  1. 在瀏覽器中開啟 Apigee UI。
  2. 進入使用者介面後,請選取您用來設定 Envoy 專用 Apigee Adapter 的機構。

2. 可建立開發人員

您可以使用現有的開發人員來測試,或建立新的開發人員,方法如下:

  1. 選取「發布」>「發布」開發人員
  2. 按一下「+ 開發人員」
  3. 填寫對話方塊,建立新的開發人員。您可以視需要使用任何開發人員名稱/電子郵件地址。

3. 可建立 API 產品

請遵循下方提供的「產品建立」範例。其他參考資訊 關於 API 產品設定

  1. 選取「發布」>「發布」API 產品
  2. 按一下「+ API 產品」
  3. 按照下圖所示填寫「產品詳細資料」頁面。如未收到指示,請勿點選「儲存」
  4. 欄位
    名稱 httpbin-product
    顯示名稱 httpbin product
    環境 your_environment

    請設為您使用以下伺服器佈建 Apigee Adapter for Envoy 時使用的環境 apigee-remote-service-cli

    存取 Private
    配額 每分鐘 5 個要求

    另請參閱瞭解配額

  5. 在「Apigee 遠端服務目標」專區中,按一下「新增 Apigee 遠端服務目標」
  6. 在 Apigee 遠端服務目標對話方塊中,新增下列值:
    屬性 說明
    目標名稱 輸入 目標服務例如:httpbin.org Envoy Proxy 前方的目標端點。
    API Proxy remote-service 在 Envoy Adapter 安裝期間,在 Apigee 中佈建的 remote-service Proxy。
    路徑 輸入 /resource_path 來比對特定路徑。適用對象 範例:/httpbin 要比對目標端點的要求路徑。對此路徑的 API Proxy 呼叫 會與這個 API 產品相符

    Edge 公有雲或私有雲: 下方螢幕截圖顯示已正確配置的 httpbin.org 目標,這是適用於 Apigee Edge 公開或私有雲的適當設定。

  7. 按一下 [儲存]

4. 可建立開發人員應用程式

  1. 選取「發布」>「發布」應用程式
  2. 按一下「+ 應用程式」
  3. 按照下圖所示填寫開發人員應用程式頁面。除非收到指示,否則請勿儲存。
  4. 名稱 httpbin-app
    顯示名稱 httpbin app
    開發人員版 選取您先前建立的開發人員,或從清單中選取所需的開發人員。
  5. 接著,在應用程式中新增兩項產品:
    1. 首先,在「憑證」部分中按一下「+ 新增產品」,然後選取產品。 最新設定:httpbin-product
    2. 然後新增 remote-service 產品。這項產品已建立 啟用 Cloud CDN
  6. 按一下「建立」
  7. 在「憑證」下方,按一下「金鑰」旁邊的「顯示」
  8. 複製用戶端金鑰的值。這是 API 金鑰 您稍後會使用這個金鑰對 httpbin 服務發出 API 呼叫。

關於 API 產品

API 產品是主要控管機制 Apigee Remote Service 的資料點。 建立 API 產品並繫結至 您建立的政策 適用於您設定 Apigee Adapter for Envoy 的任何要求 來處理。

API 產品定義

在 Apigee 中定義 API 產品時,您可以設定多個參數。 將用於評估要求:

  • 目標
  • 要求路徑
  • 配額
  • OAuth 範圍

遠端服務目標

如果請求同時符合指定目標,則 API 產品定義會套用到請求 繫結 (例如 httpbin.org) 和要求路徑 (例如 /httpbin)。 系統會將可能目標的清單儲存為屬性,並儲存在 API 產品。

根據預設,Apigee 遠端服務會檢查 Envoy 的特殊 :authority (host) 標頭 目標清單但可設為使用其他標頭

API 資源路徑

輸入的路徑會根據下列規則相符:

  • 單一個斜線 (/) 會比對任何路徑。
  • * 適用於任何位置,且在區段內 (斜線之間) 相符。
  • ** 於結尾有效,且比對到該行結尾的任何項目。

配額

配額可指定應用程式可提交要求訊息的數量 每小時、每天、每週或每月的 API 數量。如果應用程式達到配額上限 就拒絕後續的 API 呼叫。

配額用途

設定配額,即可強制規定用戶端可發出的要求數量 達到一定時間條件配額通常用於強制執行業務合約或服務水準協議 而非運算流量管理。舉例來說 配額可用於限制免費服務的流量 付費客戶

API 產品中定義配額

您可以在 API 產品中設定配額參數。例如,建立 API 產品中,您可以視需要設定允許的配額限制、時間範圍和間隔。

由於 API 金鑰會對應回 API 產品,因此每次 API 金鑰驗證 適當的配額計數器可以減少 (如果在關聯產品中定義了配額)。

與 Apigee 執行階段不同,「產品」定義中輸入的「配額」: 由 Apigee Remote Service 自動執行。如果要求已授權 要求會計入允許的配額。

配額維護位置

配額是由遠端服務程序在本機進行和檢查,而且會以非同步的方式進行 持續推送軟體更新這代表配額並未精確, 如果您有多個維護配額的遠端服務,某些服務就會遭到覆寫。如果 Apigee 執行階段的連線中斷,本機配額會繼續以獨立方式運作 限制。

OAuth 範圍

如果您使用 JWT 權杖,可以將權杖限定為許可 OAuth 範圍的子集。 系統會根據 API 產品的範圍,檢查指派給核發 JWT 權杖的範圍。

關於開發人員應用程式

設定 API 產品後,您將建立與開發人員相關聯的應用程式。應用程式 可讓用戶端透過 API 金鑰或 JWT 權杖存取相關聯的 API 產品。

使用 JWT 式驗證

您可以使用 JWT 權杖執行通過驗證的 API Proxy 呼叫,而不使用 API 金鑰。這個 本節說明如何使用 apigee-remote-service-cli token 指令 可以建立、檢查及輪替 JWT 權杖。

總覽

JWT 驗證和驗證是由 Envoy 使用其 JWT 驗證篩選器

驗證完畢後,Envoy ext-authz 篩選器會將要求標頭和 JWT 傳送至 apigee-remote-service-envoy。和 JWT 的 api_product_listscope 憑證附加資訊相符 對 Apigee API 產品提出要求,來授權給要求目標。

建立 Apigee JWT 權杖

Apigee JWT 權杖可使用 CLI 建立:

apigee-remote-service-cli token create -c config.yaml --id $KEY --secret $SECRET

或使用標準 OAuth 權杖端點。Curll 範例:

curl https://org-env.apigee.net/remote-service/token -d '{"client_id":"myclientid","client_secret":"myclientsecret","grant_type":"client_credentials"}' -H "Content-type: application/json"
敬上

使用 JWT 權杖

取得權杖後,只要在 Authorization 標頭中將該權杖傳遞至 Envoy 即可。範例:

curl localhost:8080/httpbin/headers -i -H "Authorization:Bearer $TOKEN"

JWT 權杖失敗

Envoy 拒絕

如果 Envoy 拒絕權杖,系統可能會顯示如下的訊息:

Jwks remote fetch is failed

如果是的話,請確認您的 Envoy 設定在 remote_jwks 部分,方便 Envoy 存取,而且你能順利存取 會在您安裝 Apigee Proxy 時設定憑證。應能 透過 GET 呼叫直接呼叫 URI,並取得有效的 JSON 回應。

範例:

curl --http1.1 https://myorg-eval-test.apigee.net/remote-service/certs

Envoy 傳送的其他訊息看起來可能會像這樣:

  • 「不允許使用 Jwt 的目標對象」
  • 「未設定 Jwt 核發者」

這些是可能需要修改的 Envoy 設定要求。

檢查權杖

您可以使用 CLI 檢查權杖。範例

apigee-remote-service-cli -c config.yaml token inspect -f path/to/file

apigee-remote-service-cli -c config.yaml token inspect <<< $TOKEN

偵錯

請參閱「有效的 API 金鑰失敗」一節。

記錄

您可以在 $REMOTE_SERVICE_HOME/apigee-remote-service-envoy 服務調整記錄層級。 所有記錄都會傳送至 stderr。

元素 必填 說明
-l、--log_level 有效層級:偵錯、資訊、警告、錯誤。 調整記錄層級。預設:資訊
-j、--json_log 以 JSON 記錄的形式發出記錄輸出。

Envoy 提供記錄功能。詳情請參閱下列 Envoy 說明文件連結:

使用網路 Proxy

您可以使用 HTTP_PROXY 和 HTTPS_PROXY 環境變數來插入 HTTP Proxy 就在 apigee-remote-service-envoy 二進位檔使用這些元件時,NO_PROXY 環境變數也可用來將特定主機從 Proxy 中排除。

HTTP_PROXY=http://[user]:[pass]@[proxy_ip]:[proxy_port]
HTTPS_PROXY=http://[user]:[pass]@[proxy_ip]:[proxy_port]
NO_PROXY=127.0.0.1,localhost

請記住,Proxy 必須可透過 apigee-remote-service-envoy 連線至。

關於指標和數據分析

Prometheus 指標端點位於 :5001/metrics。您可以設定 這組通訊埠編號請參閱設定檔

Envoy 數據分析

下方連結提供取得 Envoy Proxy 數據分析的資訊 資料:

Istio 數據分析

下方連結提供取得 Envoy Proxy 數據分析的資訊 資料:

Apigee 數據分析

Apigee Remote Service for Envoy 會將要求統計資料傳送至 Apigee 進行數據分析。 Apigee 會根據相關聯的 API 產品名稱回報這些要求。

如要瞭解 Apigee 數據分析 請參閱「Analytics 服務總覽」。