第 2 部分:產生並測試 API 金鑰

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

經過重構並重新導向至「透過要求 API 金鑰保護 API」。

開發人員會建構應用程式,向您的 API 發出要求,藉此存取後端服務。如要控管 API 存取權,您可以要求開發人員在每個要求中傳遞 API 金鑰。如果缺少或無效,要求就會失敗。

發布是指將 API 提供給應用程式開發人員使用的程序。發布 API 大致可定義為下列工作:

  1. 在 Apigee Edge 上建立 API 產品,將 API 組合在一起。
  2. 在 Edge 上註冊應用程式開發人員。只有已註冊的應用程式開發人員可以註冊應用程式。
  3. 開發人員會在 Edge 註冊應用程式,以便存取 API 產品。開發人員會收到 API 金鑰。開發人員取得 API 金鑰後,就能向您的 API 提出要求。

詳情請參閱「發布簡介」。

下表定義了註冊應用程式和產生金鑰時使用的部分術語:

字詞 定義
API 產品 API Proxy 套裝組合,搭配服務方案,可設定這些 API 的存取限制。API 產品是 Apigee Edge 用於授權和存取控管 API 的主要機制。
開發人員 API 消費者。開發人員會編寫應用程式,向您的 API 發出要求。
應用程式 開發人員註冊的用戶端應用程式,用於存取 API 產品。向 API 產品註冊應用程式時,系統會產生 API 金鑰,用於存取該產品中的 API。
API 金鑰 授權資訊字串,用戶端應用程式會使用這項資訊存取 API 產品公開的資源。註冊的應用程式與 API 產品建立關聯時,系統會產生 API 金鑰。

本教學課程的事前準備

本教學課程假設您已完成第一個教學課程,並建立 API Proxy 來存取 Yahoo 天氣 API。如果您尚未完成第一個教學課程,請參閱「透過要求 API 金鑰來保護 API 安全」。

步驟 1:建立 API 產品

  1. 在管理使用者介面中,依序點選「發布」分頁和「產品」
  2. 按一下「(+) 產品」
  3. 在「新增產品」對話方塊欄位中輸入或選取下列項目:
    欄位
    名稱 免費 API 產品
    顯示名稱 免費 API 產品
    說明 免費 API 產品
    環境 測試
    存取權 僅供內部使用
    核准類型 自動
    (系統會在產生 API 金鑰後自動核准)
    配額 每 1 小時 10 項要求
    (每小時要求數上限為 10 項)
    允許的 OAuth 範圍 留空

    填寫完畢的對話方塊應如下所示:

  4. 在「資源」部分中,選擇下列選項:
    • API Proxyweatherapikey
    • 修訂版本:1
    • 資源路徑:/forecastrss**

      資源路徑會指定產品允許應用程式存取的資源 URI。在本例中,應用程式只能透過這個 API 產品,存取 weatherapikey Proxy 上的 /forecastrss 資源。禁止嘗試使用這個 API 產品,存取 weatherapiproxy Proxy 或任何其他 Proxy 上的任何其他資源。

      「資源路徑」可使用萬用字元。萬用字元「/**」表示包含所有子 URI,也就是 /forecastrss/foo/bar 形式的資源。萬用字元「/」表示只會納入下一層級的 URI。詳情請參閱「建立 API 產品」。

      請注意,「資源路徑」下拉式清單會顯示指定 API Proxy 上定義的所有條件流程。API Proxy 的條件流程會定義與資源路徑相關聯的邏輯或處理步驟。API 產品可控管這些資源路徑的存取權。
  5. 按一下「匯入資源」。資源路徑已新增,且「weatherapikey」API Proxy 會自動新增至「API Proxies for Product」部分。
  6. 按一下 [儲存]。新產品會列在「產品」頁面。

瞭解詳情:

步驟 2:註冊開發人員

如要產生 API 金鑰,請註冊應用程式並與 API 產品建立關聯。不過,您必須先註冊應用程式開發人員,才能註冊應用程式。

  1. 在管理 UI 中,依序點選「發布」分頁標籤和「開發人員」
  2. 按一下「(+) 開發人員」
  3. 在「New Developer」對話方塊中,輸入下列值:
    • 名字Jane
    • 「Last Name」(姓氏)Tutorial
    • 電子郵件地址janetutorial@example.com
    • 使用者名稱jtutorial
  4. 按一下 [儲存]。新的開發人員會顯示在「開發人員」頁面的開發人員清單中。

瞭解詳情:

步驟 3:註冊應用程式

您已擁有 API 產品和開發人員,現在可以向 API 產品註冊應用程式。註冊應用程式後,系統會為與該應用程式相關聯的 API 產品產生 API 金鑰。接著,您可以將金鑰發放給應用程式開發人員,讓他們透過應用程式存取 API 產品中的功能。

  1. 在 API 平台 UI 中,依序點選「發布」分頁標籤和「開發人員應用程式」
  2. 按一下「(+) 開發人員應用程式」
  3. 在「新增應用程式」對話方塊中,輸入下列值:
    • 顯示名稱Weather API Key App
    • 開發人員Jane Tutorial (janetutorial@example.com)
    • 回呼網址:留空
  4. 將應用程式與產品建立關聯:
    1. 在「產品」部分,按一下「+ 產品」
    2. 選取「Free API Product」(免費 API 產品)
    3. 按一下勾號圖示,接受變更。
  5. 按一下「儲存」。新應用程式會顯示在「開發人員應用程式」頁面的應用程式清單中。
  6. 在應用程式清單中選取「Weather API Key App」。系統會開啟應用程式的詳細資料頁面。
  7. 由於您在建立 API 產品時選取「金鑰核准類型:自動」,因此系統會自動核准 API 金鑰,您可以立即查看。(如果選取「核准類型:手動」,則須在「免費 API 產品」的「動作」欄中點選「核准」,才能核准 API 金鑰)。
  8. 在「產品」部分中,點選「Free API Product」項目旁邊的「顯示」,即可在「用戶端金鑰」和「用戶端密鑰」欄中查看產生的金鑰。

    「消費者金鑰」是 API 金鑰的別名,也是應用程式透過 API Proxy 存取預報資源時,唯一需要的金鑰。如要透過 OAuth 2.0 保護 API 安全,必須提供用戶端密鑰 (以及用戶端金鑰)。請參閱「OAuth 2.0:設定新的 API Proxy」一文。

瞭解詳情:

步驟 4:在要求中使用 API 金鑰

如要確保 VerifyAPIKey 政策正常運作,您必須使用有效的 API 金鑰呼叫 API Proxy,藉此進行測試。您可以在瀏覽器中、API Proxy 的「追蹤」頁面、Apigee 控制台,或使用 cURL 要求 API Proxy。要求的網址格式如下:

http://{org-name}-test.apigee.net/v1/weatherapikey/forecastrss?w=12797282&apikey=IEYRtW2cb7A5Gs54A1wKElECBL65GVls

{org-name} 替換成您的 Apigee 機構名稱,並將 apikey 值替換成正確的值。

請在回應中找出下列內容:

<rss xmlns:yweather="http://xml.weather.yahoo.com/ns/rss/1.0" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" version="2.0"> 
<channel> <title>Yahoo! Weather - Palo Alto, CA</title> 
<link>http://us.rd.yahoo.com/dailynews/rss/weather/Palo_Alto__CA/*http://weather.yahoo.com/forecast/USCA1093_f.html</link> 
<description>Yahoo! Weather for Palo Alto, CA</description> <language>en-us</language>

如果要求中省略 API 金鑰,或指定無效的金鑰值,您會收到以下形式的錯誤回應:

{"fault":{"faultstring":"Failed to resolve API Key variable null","detail":{"errorcode":"steps.oauth.v2.FailedToResolveAPIKey"}}}

步驟 5:後續步驟

您已使用查詢參數傳遞 API 金鑰,向 API 發出要求,現在請修改 API,將金鑰做為標頭傳遞。

請繼續參閱要求 API 金鑰,確保 API 安全無虞