Nacos 3.0 的這個設計,值得我們學習
大家好,我是君哥。
最近 Nacos 發布了第一個 3.0 版本 Nacos 3.0-ALPHA,這個版本主要改進點在于安全性和標準化的提升。
API 接口的調用方可能有很多類型,我們看下圖,業務系統1 中服務 A 的一個 API 接口被多個系統和服務調用:
我們日常接觸的系統中,一個 API 可能會有下列的調用情況:
- 被同一個系統內的其他服務調用。
- 被不同系統的服務調用。
- 被公司內部的運維系統調用。
- 被控制臺通過命令調用。
- 被可視化頁面調用。
- 被公司外部的三方系統調用。
系統內部、系統間、運維控制臺、可視化頁面、三方調用這個接口時,如果使用相同的認證機制和接口文檔,顯然是不合適的,有很大的安全隱患。
在 Nacos 3.0 之前,Nacos 把 API 分為兩類,一類是系統間調用的,一類是供運維人員管理使用的。這樣分類比較粗,無法滿足安全認證的需求。
在 Nacos 3.0-ALPHA 版本中,對 API 進行了更加精細的分類,主要分為了四類,參考下圖:
這種 API 設計方式變得更加靈活,可以滿足不用用戶和場景的需求。
基于這種 API 劃分方式,Nacos 3.0-ALPHA 版本提出了不同的認證方式:
- 對于集群內部訪問和運維人員訪問的 API,默認使用 ServerIdentity 做身份驗證。
- 對于 Nacos 控制臺 UI 訪問的 API,默認使用用戶名和密碼進行身份和權限認證。
- 對于客戶端和應用程序訪問的 API,默認不開啟安全認證。
這樣對 API 的設計,不僅可以滿足 API 調用的安全性要求,對易用性也有了很大提升。在我們平時 API 的設計和管理中,可以作為一個參考。