服務驗證
了解 dubbo3 服務驗證
功能說明
支付等安全敏感型業務可能有需要限制匿名調用的需求。在安全增強方面,2.7.5 引入了基於 AK/SK 機制的驗證和鑑權機制,並引入了鑑權服務中心。主要原理是當消費者請求需要驗證的服務時,會將 SK、請求數據、時間戳、參數等信息生成對應的請求簽名,通過 Dubbo 的 Attahcment 機制攜帶到對端進行簽名驗證,只有簽名驗證通過後才會進行業務邏輯處理。如下圖所示
使用場景
使用方法
接入方式
用戶需要在微服務站點填寫應用信息,並為應用生成唯一的證書。
在管理端提交工單申請使用某個敏感業務服務的許可權,由對應的業務經理進行審批,審批通過後會生成對應的 AK/SK 並下發到鑑權服務中心。
將證書導入到對應的應用並進行配置,配置方式也很簡單,以註解方式為例
服務提供者
只需要將
service.auth
設置為 true,表示該服務的調用需要通過驗證。param.sign
為true
,表示需要對參數進行驗證。@Service(parameters = {"service.auth","true","param.sign","true"}) public class AuthDemoServiceImpl implements AuthService { }
服務消費者
您只需要配置相應的證書和其他信息,然後在調用這些需要身份驗證的接口之前,會自動執行簽名操作。 通過與認證服務的交互,用戶無需在代碼中配置AK/SK等敏感信息,也無需重啟應用程序即可刷新AK/SK,從而達到動態發放權限的目的。
該方案已提交至 Dubbo 開源社區,基本框架已合併。 除了 AK/SK 認證方式外,SPI 機制還支持用戶自定義認證和加密方式,以適應公司內部基礎設施的密钥存储。
上次修改時間:2023 年 2 月 23 日:搜索引擎優化/圖像替代文字更新 (35090e3f9b4)