在微服務架構中,如果某個服務具有特定的安全訪問控制需求,并且不希望任意其他服務進行調用,可以通過實施鑒權機制來實現。這樣做可以確保只有經過身份驗證且符合預設權限標準的服務才能成功調用該受保護的服務,從而保障系統的安全性和可靠性。
背景信息
下面以一個示例介紹Spring Cloud服務鑒權的使用場景。Dubbo服務鑒權同樣適用。
未配置服務鑒權
Consumer 1、2、3和Provider在同一個命名空間內,Consumer 1、2和3默認可以調用Provider的所有Path(Path 1、2和3)。
配置服務鑒權
設置所有Path的鑒權
可以對Provider的所有Path設置鑒權規則,例如Provider所有Path的鑒權規則設置為拒絕Consumer 1調用(黑名單),則允許Consumer 2、3調用(白名單)。
設置指定Path的鑒權
在設置所有Path的鑒權基礎上,還可以設置Consumer指定Path的鑒權規則,例如按所有Path的鑒權方式,Consumer 2、3可以訪問Provider的所有Path,但Provider的Path2涉及一些核心業務或數據,不希望Consumer 2調用,可以將Path 2對Consumer 2的鑒權方式設置為黑名單(拒絕調用),則Consumer 2只能訪問Provider的Path 1和Path 3。
設置完鑒權規則的調用關系如下圖所示。
視頻教程
操作步驟
登錄MSE治理中心控制臺,并在頂部菜單欄選擇地域。
在左側導航欄,選擇治理中心 > 安全 > 服務鑒權。
在服務鑒權頁面單擊創建規則。
在創建規則頁面設置服務鑒權參數,然后單擊確定。
參數
說明
規則名稱
鑒權規則名稱,支持大小寫字母、數字、下劃線(_)和短劃線(-),長度不超過64個字符。
被調用方類型
根據實際情況選擇應用或K8s Namespace。
被調用方(應用)
當被調用方類型選擇應用時,選擇被調用的應用。
被調用方(K8s Namespace)
當被調用方類型選擇K8s Namespace時,選擇被調用的應用集群和所在的命名空間。
被調用方框架
被調用的應用所使用的框架,根據需要選擇Spring Cloud或者Dubbo。
添加所有接口規則
重要所有接口的通用規則僅支持添加一次。
被調用方Path
默認為所有Path,不可設置。
說明此參數僅適用于Spring Cloud。
被調用方接口
默認為所有服務/所有接口,不可設置。
說明此參數僅適用于Dubbo。
鑒權方式
服務鑒權的方式,包含白名單(允許調用)和黑名單(拒絕調用),請根據實際鑒權需求選擇。
調用方
需要鑒權的調用方應用,可以單擊添加調用方設置多個需要鑒權的調用方應用。
添加指定接口規則
重要指定接口添加的規則不是追加,而是覆蓋針對所有接口的通用規則,請謹慎配置。
被調用方Path
指定被調用應用的Path。
說明此參數僅適用于Spring Cloud。
被調用方接口
指定被調用應用的服務和接口。
說明此參數僅適用于Dubbo。
鑒權方式
服務鑒權的方式,包含白名單(允許調用)和黑名單(拒絕調用),請根據實際鑒權需求選擇。
調用方
需要鑒權的調用方應用,可以單擊添加調用方設置多個需要鑒權的調用方應用。
默認狀態
規則的啟用開關。
打開:創建后即啟用,默認打開。
關閉:創建后不啟用,如果需要啟用,請在服務鑒權頁面規則的操作列單擊開啟。
結果驗證
服務鑒權規則配置完成且開啟后,請根據實際業務驗證服務鑒權規則是否生效。
相關操作
服務鑒權規則創建完成后,您還可以編輯規則、根據規則的不同狀態關閉規則或開啟規則。當不再需要服務鑒權時,刪除規則。