查看 Apigee Edge 說明文件。
前往
Apigee X說明文件。 資訊
課程內容
透過本教學課程,你將會瞭解:
- 建立需要 API 金鑰的 API Proxy。
- 新增 API 產品。
- 新增開發人員並註冊應用程式。
- 使用 API 金鑰呼叫 API。
請務必防止他人未經授權存取您的 API。單向 就是使用 API 金鑰 (也稱為公開金鑰、使用者 鍵或應用程式金鑰)。
當應用程式向您的 API,應用程式必須提供有效的金鑰。在執行階段,Verify API 金鑰政策 檢查提供的 API 金鑰:
- 有效
- 尚未撤銷
- 找出公開請求的 API 產品 API 金鑰 資源
如果金鑰有效,系統就會允許要求。如果鍵無效, 則會導致授權失敗。
在這個教學課程中,您會建立需要有效 API 的 API Proxy 。
軟硬體需求
- Apigee Edge 帳戶。如果還沒有 Google 帳戶,可以註冊 路線指示: 正在建立 Apigee Edge 帳戶。
- 執行 API 呼叫的網路瀏覽器。
- (適用於其他抵免額部分,並非必要) cURL 安裝位置: 讓機器透過指令列發出 API 呼叫
建立 API Proxy
- 前往 https://apigee.com/edge 並登入。
只要按一下網頁上的使用者名稱,即可切換至所需的機構 側邊導覽列頂端顯示使用者設定檔選單,然後 從清單中選取機構。
-
按一下到達網頁上的「API Proxy」以顯示 API Proxy 清單
- 按一下「+ Proxy」。
- 在「建立 Proxy」頁面中,選取「反向 Proxy (最常見)」。
- 在「Proxy 詳細資料」頁面上,按照下列方式設定 Proxy:
在這個欄位 正確做法 Proxy 名稱 輸入: helloworld_apikey
專案基礎路徑 變更為:
/helloapikey
專案基本路徑包含在用來產生 向 API Proxy 發出要求
注意:如需 Apigee 的 API 版本管理建議, 請參閱 版本管理的 Web API Design: The Missing 連結電子書。
現有 API 輸入:
http://mocktarget.apigee.net
這會定義 Apigee Edge 叫用特定值時要叫用的目標網址 要求傳送至 API Proxy
說明 輸入: hello world protected by API key
- 點選「下一步」。
- 在「一般政策」頁面中,於「安全性」部分查看 授權,選取 API 金鑰,然後按一下下一步。這個 會在您的 API Proxy 中新增兩項政策。
- 在「Virtual Hosts」頁面中,選取「default」並
「secure」,然後點選「Next」。選取「default」即可允許
您可以使用
http://
呼叫 API選取 [安全], 可讓您透過https://
呼叫 API。 - 在「Summary」頁面中,確認「test」部署 選取環境後,按一下「Create and deploy」。
- 系統會顯示確認訊息,告知新的 API Proxy 和 API 已成功建立產品,而且 API Proxy 已部署至 測試環境
- 按一下「編輯 Proxy」以顯示「總覽」頁面, 並存取 API Proxy
查看政策
- 在 API Proxy 編輯器中,按一下「Develop」(開發) 分頁標籤。您會發現
在 API Proxy 要求流程中加入兩項政策:
- 驗證 API 金鑰:檢查 API 呼叫,確認有效 API 金鑰存在 (以查詢參數傳送)。
- 移除查詢參數 APIkey:指派給符合下列條件的 AssignMessage 政策 系統會在檢查後移除 API 金鑰,以免金鑰遭到傳遞 以免過度曝光
-
按一下流程檢視畫面中的「Verify API 金鑰政策」圖示,然後查看 下方程式碼檢視畫面中的政策 XML 設定。
<APIKey>
元素可以向政策指出應在何處顯示 執行呼叫時尋找 API 金鑰根據預設,它會尋找 鍵做為查詢參數,在 HTTP 中稱為apikey
要求:<APIKey ref="request.queryparam.apikey" />
apikey
是任意名稱,可以是任何屬性 包含 API 金鑰
嘗試呼叫 API
在這個步驟中,您將直接對目標發出成功的 API 呼叫 就會嘗試向 API Proxy 傳送失敗的呼叫,藉此瞭解 就會受到政策規定的保護
-
成功
透過網路瀏覽器前往下列網址。 這是 API Proxy 設為要轉送的目標服務 但目前請直接傳送要求:
http://mocktarget.apigee.net
您應該會收到以下成功回應:
Hello, Guest!
-
失敗
現在嘗試呼叫 API Proxy:
http://ORG_NAME-test.apigee.net/helloapikey
將
ORG_NAME
替換為 Edge 機構。如果沒有「驗證 API 金鑰」政策,這個呼叫也會提供相同的 回應。但在這個例子中,您應該 下列錯誤回應:
{"fault":{"faultstring":"Failed to resolve API Key variable request.queryparam.apikey","detail":{"errorcode":"steps.oauth.v2.FailedToResolveAPIKey"}}}
這表示您未傳遞有效的 API 金鑰 ( 查詢參數)。
在後續步驟中,您將新增 API 產品。
新增 API 產品
如何使用 Apigee UI 新增 API 產品:
- 選取「發布」>「發布」API 產品。
- 按一下「+API 產品」。
輸入 API 產品的「產品詳細資料」。
欄位 說明 名稱 API 產品的內部名稱。禁止事項 在名稱中指定特殊字元
注意:您 API 產品建立後即無法修改名稱。適用對象 例如:helloworld_apikey-Product
。顯示名稱 API 產品的顯示名稱。顯示名稱會用於 您隨時可以編輯這個架構如果沒有指定, 系統會使用名稱值。這個欄位會使用 名稱值;你可以編輯或刪除其中的內容螢幕 名稱可包含特殊字元。例如: helloworld_apikey-Product
。說明 API 產品的說明。例如 Test product for tutorial
。環境 API 產品允許存取的環境。 例如 test
或prod
存取 選取「公開」。 自動核准存取要求 啟用這個 API 金鑰要求的自動核准功能 開發應用程式 配額 在本教學課程中忽略此設定。 允許的 OAuth 範圍 在本教學課程中忽略此設定。 - 在「API 資源」專區中,選取您剛才使用的 API Proxy
已建立。例如
helloworld_apikey
。 - 按一下 [新增]。
- 在「Paths」區段中,新增路徑「/」。
- 按一下 [新增]。
- 按一下 [儲存]。
在後續步驟中,您會取得必要的 API 金鑰。
將開發人員和應用程式加入 機構組織
接著,我們會模擬開發人員註冊 如何使用您的 API開發人員會有一或多個應用程式呼叫您的 API。 每個應用程式都會取得專屬的 API 金鑰這讓 API 供應商能 精細控管 API 存取權,以及 API 流量 (依應用程式區分)。
建立開發人員
如何建立開發人員:
- 選取「發布」>「發布」開發人員。
- 按一下「+ 開發人員」。
在「New Developer」視窗中輸入以下內容:
在這個欄位 輸入 名字 Keyser
姓氏 Soze
使用者名稱 keyser
電子郵件 keyser@example.com
- 按一下「建立」。
註冊應用程式
如何註冊開發人員應用程式:
- 選取「發布」>「發布」應用程式:
- 按一下「+ 應用程式」。
在「New App」視窗中輸入以下內容:
p在這個欄位 正確做法 名稱和顯示名稱 輸入: keyser_app
公司 / 開發人員 選取: Developer
開發人員 選取: Keyser Soze (keyser@example.com)
回呼網址和附註 留空 - 在「憑證」部分中,從以下位置選取「永不」: 選單。這個應用程式的憑證永遠不會過期。
- 按一下「產品」下方的「新增產品」。
- 選取「helloworld_apikey-Product」helloworld_apikey-Product。
- 按一下 [新增]。
- 按一下上方「應用程式詳細資料」右側的「建立」。 這個區段,以儲存作業。
取得 API 金鑰
取得 API 金鑰的方法如下:
- 在「應用程式」頁面 (依序點選「發布」>「應用程式」),按一下 keyser_app。
在「keyser_app」keyser_app頁面中,按一下「Key」keyser_app旁的「Show」keyser_app。 在「憑證」部分中。在「產品」部分中 您會發現金鑰與 helloworld_apikey
,直接在 Google Cloud 控制台實際操作。- 選取並複製金鑰。您會在下一個步驟中使用這項資訊。
使用金鑰呼叫 API
您已取得 API 金鑰,可以用它呼叫 API Proxy。輸入 在網路瀏覽器中將以下內容提供給您。使用您的 Edge 機構名稱 ORG_NAME 的 API 金鑰,以及下方 API_KEY 的 API 金鑰。 請確認查詢參數中沒有任何多餘的空格。
http://ORG_NAME-test.apigee.net/helloapikey?apikey=API_KEY
現在呼叫 API Proxy 時,您應該會看到以下回應:
Hello, Guest!
恭喜!您已建立 API Proxy 並受到下列保護: 需要在呼叫中加入有效的 API 金鑰。
請注意,一般而言,將 API 金鑰做為 查詢參數。建議採用 改為透過 HTTP 標頭傳遞
最佳做法:在 HTTP 標頭中傳遞金鑰
在這個步驟中,您將修改 Proxy,以在
名為 x-apikey
的標頭。
- 編輯 API Proxy。依序選取「開發」>「開發」API Proxy > helloworld_apikey,前往「Development」檢視畫面。
-
選取「Verify API Key」(驗證 API 金鑰) 政策,然後修改政策 XML 以告知使用者 「
header
」而非queryparam
:<APIKey ref="request.header.x-apikey"/>
- 儲存 API Proxy 以部署變更。
-
使用 cURL 進行以下 API 呼叫,將 API 金鑰做為 名為
x-apikey
的標頭。別忘了替換 機構名稱。curl -v -H "x-apikey: API_KEY" http://ORG_NAME-test.apigee.net/helloapikey
請注意,為了順利完成變更,您也必須設定 AssignMessage 政策會移除標頭,而非查詢參數。 例如:
<Remove> <Headers> <Header name="x-apikey"/> </Headers> </Remove>
相關主題
以下是與本教學課程直接相關的幾個主題:
更深入地保護使用 API 金鑰保護 API 只是案例的一部分。通常, API 防護功能包含 OAuth 等額外安全防護。
OAuth 是 簡單來說,這個通訊協定會交換憑證 (如使用者名稱和密碼) 存取權杖存取權杖是長又隨機的字串,可以在訊息中傳遞 也能在不影響原始憑證的情況下, 從應用程式到開發各種管道存取權 符記的生命值通常不長,所以系統一定會產生新的符記。