當您的某個微服務應用有安全要求時,您可以對該應用進行介面或方法粒度的存取控制,對調用方進行訪問鑒權,僅允許匹配鑒權規則的調用方發起調用,以此提高應用的安全性。本文介紹如何使用服務鑒權實現Dubbo應用的存取控制。
使用情境
未佈建服務鑒權
- 同一命名空間內的服務可以相互調用,Consumer 1、Consumer 2和Consumer 3預設可以調用Provider的所有Path(Path 1、Path 2和Path 3)。
- 使用MSE網關對Consumer服務進行路由轉寄,Gateway 1和Gateway 2可以調用Consumer 1、Consumer 2、Consumer 3三個應用執行個體。
佈建服務鑒權
- 設定所有介面的鑒權:
- 對Provider的所有介面設定鑒權規則。例如,Provider設定所有介面鑒權規則為:將Consumer 1加入黑名單(拒絕訪問),Consumer 2、Consumer 3加入白名單(允許調用)。
- 對Consumer的所有介面設定鑒權規則。例如,Consumer 1隻允許Gateway 1的調用,Consumer 2、Consumer 3隻允許Gateway 2的調用,需進行如下操作。
- Consumer 1設定所有介面鑒權規則,將Gateway 1加入白名單(允許調用)。
- Consumer 2、Consumer 3設定所有介面鑒權規則,將Gateway 2加入白名單(允許調用)。
- 設定指定介面的鑒權:
在設定所有Path的鑒權基礎上,還可設定Consumer指定Path的鑒權規則。例如,在設定所有Path的鑒權方式下,Consumer 2、Consumer 3可以訪問Provider的所有Path,但Provider的Path 2涉及一些核心業務或資料,不希望Consumer 2調用,可以將Path 2對Consumer 2的鑒權方式設定為黑名單(拒絕調用),則Consumer 2隻能訪問Provider的Path 1和Path 3。
設定鑒權規則的調用示意圖如下所示。
- 對於作為Readiness或Liveness健康探針的介面,為避免因服務鑒權規則導致應用健全狀態檢查失敗,請設定該介面的鑒權方式為白名單(允許調用),且調用方為任意來源。
- 對於在EDAS服務鑒權規則中引用的MSE網關執行個體,EDAS會預設開啟網關外掛程式edas-service-auth。請勿在MSE網關管理主控台隨意更改該外掛程式的開啟狀態和配置內容。
建立服務鑒權規則
登入EDAS控制台。
在左側導覽列,選擇 。
在Dubbo左側導覽列,單擊服務鑒權。
在服務鑒權頁面,單擊建立規則。
在建立規則面板設定服務鑒權參數,然後單擊確定。
服務鑒權規則參數說明:
配置項
說明
微服務空間
服務所在的地區和微服務空間。
規則名稱
鑒權規則名稱,支援大小寫字母、數字、底線(_)和短劃線(-),長度不超過64個字元。
被呼叫者類型
預設為應用。
被呼叫者(應用)
被調用的應用。
被呼叫者架構
被調用的應用所使用的架構,選擇Dubbo。
添加所有介面規則
重要所有介面的通用規則僅支援添加一次。
被呼叫者介面
預設為所有服務 / 所有介面,且該參數值不可修改。
鑒權方式
服務鑒權的方式。包含白名單(允許調用)和黑名單(拒絕調用),請根據實際鑒權需求選擇。
調用方
需要鑒權的調用方。
調用方類型:應用、網關和任意來源。您可按需選擇EDAS應用和MSE網關作為需要鑒權的調用方,也可選擇任意來源將介面完全公開。
說明應用和網關可同時選擇,您可添加多個應用和多個網關。
任意來源與應用、網關互斥。
添加指定介面規則
重要指定介面添加的規則不是追加,而是覆蓋針對所有介面的通用規則,請謹慎配置。
被呼叫者介面
指定被調用應用的服務和介面。
鑒權方式
服務鑒權的方式,包含白名單(允許調用)和黑名單(拒絕調用),請根據實際鑒權需求選擇。
調用方
需要鑒權的調用方。
調用方類型:應用、網關和任意來源。您可按需選擇EDAS應用和MSE網關作為需要鑒權的調用方,也可選擇任意來源將介面完全公開。
說明應用和網關可同時選擇,您可添加多個應用和多個網關。
任意來源與應用、網關互斥。
預設狀態
規則的啟用開關。
開啟:建立後即啟用,預設開啟。
關閉:建立後不啟用,需要在服務鑒權頁面規則的操作列,單擊開啟規則。
結果驗證
服務鑒權規則配置完成且開啟後,請根據實際業務驗證服務鑒權規則是否生效。
相關操作
服務鑒權規則建立完成後,您還可以在服務鑒權頁面,單擊對應規則操作列的編輯、開啟、關閉以及刪除,對規則進行管理。