在本主題中,您將了解api閘道器身份驗證,設定金鑰身份驗證外掛程式以及新增使用者。
如果您根據入門指南學習,請確保已完成「kong入門指南 - 通過**快取提高效能 」。
api閘道器身份驗證是控制允許使用您的api傳輸的資料的重要方法。基本上,它使用一組預定義的憑據來檢查特定使用者是否有權訪問api。
kong gateway有乙個外掛程式庫,這些外掛程式提供了實現api閘道器身份驗證的最廣為人知和使用最廣泛的方法的簡單方法。以下是一些常用的:
身份驗證外掛程式可以配置為應用於kong gateway內的服務實體。反過來,服務實體與它們表示的上游服務是一對一對映的,從本質上講意味著認證外掛程式直接應用於那些上游服務。
啟用身份驗證後,除非客戶端首先成功進行身份驗證,否則kong gateway不會**請求。這意味著上游(api)不需要對客戶端請求進行身份驗證,也不會浪費用於驗證憑據的關鍵資源。
kong gateway可以檢視所有身份驗證嘗試(成功,失敗等等),從而可以對這些事件進行分類和控制,以證明適當的控制措施已經存在並實現合規性。身份驗證還使您有機會確定如何處理失敗的請求。這可能意味著僅阻止請求並返回錯誤**,或者在某些情況下,您可能仍希望提供有限的訪問許可權。
在此示例中,您將啟用金鑰驗證外掛程式。api金鑰身份驗證是進行api身份驗證的最流行的方法之一,可以實現以根據需要建立和刪除訪問金鑰。
有關更多資訊,請參見什麼是api閘道器身份驗證?。
1.在埠上呼叫admin api 8001並配置外掛程式以啟用金鑰身份驗證。對於此示例,將外掛程式應用於您建立的/ mock路由。
使用curl:
--data name=key-auth嘗試再次訪問該服務:
使用curl:
$ curl -i http://:8000/mock
由於新增了金鑰認證,因此您將無法訪問它:
...在kong**請求此路由之前,它需要乙個api金鑰。對於此示例,由於安裝了金鑰身份驗證外掛程式,因此需要首先建立具有關聯金鑰的使用者。
要建立使用者,請呼叫admin api和使用者的端點。下面建立了乙個新的消費者,稱為consumer。
使用curl:
$ curl -i -x post -d "username=consumer&custom_id=consumer" http://:8001/consumers/
設定後,呼叫admin api為上面建立的使用者設定金鑰。對於此示例,將金鑰設定為apikey。如果未輸入任何金鑰,則kong將自動生成金鑰。
使用curl:
$ curl -i -x post http://:8001/consumers/consumer/key-auth -d 'key=apikey'
結果:
}現在,您已經為使用者提供了api金鑰,以訪問該路由。
要驗證金鑰身份驗證外掛程式,請使用金鑰值為的標頭再次訪問模擬路由。apikeyapikey
使用curl:
$ curl -i http://:8000/mock/request -h 'apikey:apikey'
您應該得到一條http/1.1 200 ok訊息作為回應。
如果您按照主題逐個遵循此入門指南,則在以後的所有請求中都需要使用此api金鑰。如果您不想一直指定金鑰,請在繼續操作之前禁用外掛程式。
找到外掛程式id並複製。
使用curl:
$ curl -x get http://:8001/routes/mocking/plugins/
輸出:
"id": "2512e48d9-7by0-674c-84b7-00606792f96b"
禁用外掛程式。
使用curl:
Kong入門指南 1 總覽
本入門指南將向您介紹kong的概念以及api閘道器的基本功能。在本指南中,您將 kong gateway是為微服務優化的開源,輕量級api閘道器,可提供無與倫比的延遲效能和可伸縮性。如果您只需要基礎知識,則此選項將為您服務。本指南還包括一些特定於kong enterprise和kong gatewa...
SpringBoot 使用jwt進行身份驗證
這裡只供參考,比較使用jwt方式進行身份驗證感覺不好,最不行的就是不能退出 登陸時設定多長過期時間,只能等這個時間過了以後才算退出,服務端只能驗證請求過來的token是否通過驗證 code created by qhong on 2018 6 7 15 34 標註該註解的,就不需要登入 target...
Kong入門指南 4 保護您的服務
在本主題中,您將學習如何使用rate limiting外掛程式來實施速率限制。如果根據入門指南學習,請確保之前完成 kong入門指南 公開您的服務 學習。速率限制使您可以限制您的上游服務從api使用者接收的請求數量,或每個使用者可以呼叫api的頻率。速率限制可保護api免受意外或惡意的過度使用。在沒...