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