作者:朱鵬飛
Nacos權限控制設計方案創建用戶:POST
/nacos/v1/auth/users?username=xx&password=yy
刪除用戶:DELETE
/nacos/v1/auth/users?username=xx&password=yy
更新用戶:PUT
/nacos/v1/auth/users?username=xx&oldPassword=yy&newPassword=zz
登錄:POST
/nacos/v1/auth/users/login?username=xxx&password=yyy
/nacos/v1/auth/roles?role=xx&username=yy /nacos/v1/auth/roles?role=xx&username=yy /nacos/v1/auth/roles?username=xxx權限管理給角色添加權限:POST
/nacos/v1/auth/permissions?role=xxx&resource=yyy&action=zzz
從角色刪除權限:DELETE
/nacos/v1/auth/permissions?role=xxx&resource=yyy&action=zzz
獲取某個角色的權限:GET
/nacos/v1/auth/permissions?role=xxx
mvn -Prelease-nacos -Dmaven.test.skip=true clean install -U2、安裝包解壓,然後使用 distribution/nacos-mysql.sql 進行資料庫初始化,主要是新增了 users, roles , permissions三張表,standalone模式使用 distribution/schema.sql 進行初始化。
3、Server 端打開權限控制開關。修改 con/application.properties 內容:nacos.core.auth.enabled=true這個開關採用了熱加載模式,無需重啟 Server 即可生效。因此當權限控制功能使用有異常時,可以直接回滾到不鑑權的模式。
使用權限控制1、使用管理員帳號登錄 Nacos 控制臺(如果頁面提示錯誤,可以情況瀏覽器緩存刷新頁面):可以看到,左側邊欄增加了一個父菜單和三個子菜單,分別用於權限控制裡的用戶創建、角色創建以及權限管理。這個菜單欄只會在管理員登錄的時候顯示,也就意味著只有管理員才能進行權限的管理和分配。2、管理用戶。點擊「用戶列表」,進入用戶管理頁面,可以進行用戶的創建、修改和刪除:3、管理角色。因為 Nacos 的自帶的權限是基於角色來進行分配的,因此需要給創建好的用戶綁定一些角色:4、管理權限。角色創建好以後,就可以給這個角色賦予特定的權限了:在「添加資源」對話框裡,可以選擇綁定的角色,命名空間資源以及對應的動作類型,例如在上圖中,我們給角色 role1 綁定命名空間test的讀寫權限。然後又因為剛剛我們是將 user1 綁定到了 role1 上,那麼 user1 這個用戶就可以對 test 這個命名空間的資源進行讀寫操作了。5、使用 user1 登錄控制臺。點擊控制臺右上角,退出 admin 帳號,然後用剛才創建的 user1 進行登錄:如上圖所示,首先是左側的權限管理菜單消失了,因為當前用戶不是管理員。其次是會彈出一個鑑權失敗的提示框。不用擔心,這個提示框意思是 user1 沒有 public 命名空間的讀權限,所以會彈出,但是不影響我們將命名空間切換到 test :如上圖所示,我們可以看到 test 命名空間的配置數據了,下面我們再來介紹客戶端的使用。6、先依賴最新的 nacos 1.2.0 客戶端,然後在初始化時添加如下代碼:
Properties properties = new Properties();properties.put(PropertyKeyConst.NAMESPACE, "99a791cf-41c4-4535-9e93-b0141652bad0");properties.put(PropertyKeyConst.SERVER_ADDR, "127.0.0.1:8848");// 配置用戶名:properties.put(PropertyKeyConst.USERNAME, "user1");// 配置密碼:properties.put(PropertyKeyConst.PASSWORD, "pwd1");ConfigService iconfig = NacosFactory.createConfigService(properties);我們在招人阿里巴巴雲原生基礎技術中臺是隸屬於阿里雲基礎產品事業部的核心研發團隊,致力於打造穩定、標準、先進的雲原生應用基礎平臺,推動行業面向雲原生技術升級與革命。目前在招聘技術專家崗位,詳情可參考:http://www.posterhr.com/html/CkgpBwD6f?from=timeline&isappinstalled=0(可以直接投遞,也可以將簡歷直接發送到 water.lyl@alibaba-inc.com)朱鵬飛,GitHub ID:@nkorange,Nacos Maintainer,Nacos 開源負責人。阿里巴巴技術專家,阿里雲 EDAS 註冊中心 ANS 負責人,目前主要專注於服務發現、服務管理等領域。熱文推薦
為我開發的API添加華麗的外衣
技術人的副業之道
RedisTemplate:我不背鍋,是你用錯了
得虧了它,我才把潛藏那麼深的Bug挖出來
驚訝!緩存剛Put再Get居然獲取不到?
好機會,我要幫女同事解決Maven衝突問題
如有收穫,點個在看,誠摯感謝