服務驗證

了解 dubbo3 服務驗證

功能說明

支付等安全敏感型業務可能有需要限制匿名調用的需求。在安全增強方面,2.7.5 引入了基於 AK/SK 機制的驗證和鑑權機制,並引入了鑑權服務中心。主要原理是當消費者請求需要驗證的服務時,會將 SK、請求數據、時間戳、參數等信息生成對應的請求簽名,通過 Dubbo 的 Attahcment 機制攜帶到對端進行簽名驗證,只有簽名驗證通過後才會進行業務邏輯處理。如下圖所示

img

使用場景

使用方法

接入方式

  1. 用戶需要在微服務站點填寫應用信息,並為應用生成唯一的證書。

  2. 在管理端提交工單申請使用某個敏感業務服務的許可權,由對應的業務經理進行審批,審批通過後會生成對應的 AK/SK 並下發到鑑權服務中心。

  3. 將證書導入到對應的應用並進行配置,配置方式也很簡單,以註解方式為例

    服務提供者

    只需要將 service.auth 設置為 true,表示該服務的調用需要通過驗證。param.signtrue,表示需要對參數進行驗證。

    @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)