1、概述
為了提高系統(tǒng)的安全性,引入認證功能是非常迫切和必須的。由于認證是一個通用功能,沒有必要每個系統(tǒng)各自實現(xiàn),造成重復(fù)勞動,因此,我們在Kong轉(zhuǎn)發(fā)時配置了認證插件。
2、選型
Kong官網(wǎng)提供的關(guān)于認證插件很多,有17個之多,我們挑選了其中三個比較適合的插件作出對比:
| 插件 | 名稱 | 功能 | 安全系數(shù) |
|---|---|---|---|
| key-auth | Key認證 | 在Headers中添加apikey作為認證憑證 | 低 |
| basic-auth | Basic認證 | 在Headers中添加Authorization認證信息,其中用戶名/密碼使用BASE64編碼 | 低,適用于機器之間認證 |
| hmac-auth | HMAC認證 | 在Headers中添加Authorization認證信息,包括用戶名、簽名等,可防止請求內(nèi)容被篡改 | 中,適用于人機認證 |
參考淘寶及中通開放平臺的api協(xié)議規(guī)則,它們也是采用類似HMAC這種帶簽名的認證方式實現(xiàn)防篡改功能,因而,我們決定采用hmac-auth插件提供認證功能。
3、添加插件
由于我們不能確定日后所有 Service 都必須支持認證功能,所以暫時不能把這個認證插件配置成全局插件。于是,我們的配置插件步驟是:
- 找到指定 Service 并打開它的詳細頁面,并點擊【Plugins】菜單
image.png -
在當前服務(wù)的插件頁面中,點擊【ADD PLUGIN】按鈕
image.png -
在彈出的插件列表窗口中,選擇 Hmac Auth 插件
image.png - 在彈出的插件配置窗口中,根據(jù)需求填寫相關(guān)項目內(nèi)容,請注意 enforce headers 和 algorithms 項目在輸入內(nèi)容后需要回車才能有效提交
image.png
至此,認證插件已經(jīng)成功添加到 Service 上。
4、添加消費者和證書
雖然插件已經(jīng)生效,但沒有相關(guān)證書是無法有效使用的,所以此時要添加消費者和證書。此處步驟相對簡單。
-
添加消費者
image.png -
在當前消費者中添加證書,建議 secret 不填則自動生成
image.png
5、參考資料
系列鏈接





