公共平臺服務治理與鑑權

聊一聊最近了解的公司服務治理平臺,主要是思想,理念,而不是一種技術或框架。整個平臺設計,融入了OAUTH2認證,融入了微服務思想,幫助公司各系統在複雜的IT架構下,實現一種便捷統一的調用方案,同時完成調用的管理(監控、註冊、鑑權等)。架構

問題

一種思想或理念的出現,是否有價值,我認爲主要在於它實際解決了哪些問題。基於這個價值觀,咱們先看看,當一個公司有成百上千個系統時,會有哪些問題?
pi如:負載均衡

  1. 接口訪問有沒有鑑權?如何鑑權?這個話題很大,歸根揭底就是,要讓提供方知道調用方是誰(身份),而且贊成調用(受權)。
  2. 想看看系統間調用關係,得查代碼或文檔
  3. 某個系統異常,怎麼評估影響範圍?誰調了它,它調了誰?
  4. 某系統調用量如何?負載均衡以前需不須要流量控制?

解決問題

服務治理平臺,目標就是把全部系統的全部接口,管理起來,對調用方進行鑑權,對提供方開放接口註冊,運營來統一管理受權。最終,解決權限問題,監控系統間調用關係,實現公司級的服務治理。
框架

鑑權


開放平臺,很重要的一個點,就是對訪問進行權限控制。比較老的Basic Auth認證方式,在請求中加入用戶名和密碼,由服務端來進行鑑權。目前較通用的OAuth認證,經過Access Token完成受權與認證,具體不在詳述,目前咱們使用OAUTH2。
其實,抽象來看,鑑權主要圍繞兩個問題,1,你是誰,2,贊成不一樣意你調。
圍繞這兩個問題,咱們來捋一捋怎麼設計,來完成這兩個事:

  1. 首先,得有個系統,讓調用方註冊用戶,申請訪問接口等,暫且命名爲portal
  2. 其次,提供方能夠在平臺註冊本身的接口
  3. 平臺管理人員,通常是運營同事,得有個系統能夠查看註冊接口、訪問申請、註冊用戶、發佈到公共平臺等等,並完成對各類訪問的受權,暫且命名爲admin
  4. 另,既然使用了oauth2,就得有個取token的系統,暫且命名爲oauth
  5. 最後,得有個對外的統一入口吧(即公共平臺),暫且名爲open

整個調用鑑權流程,以下:微服務

1. 調用方註冊用戶
2. protal返回用戶id和secret
3. 管理員,審覈用戶(你是誰?)
4. 用戶id經過審覈
5. 經過審覈的用戶id申請相關訪問資源
6. 管理員,受權資源訪問(同不一樣意你調?)
7. 資源申請經過
8. 根據用戶id和secret到oauth取token
9. 到公共平臺(open)訪問你申請的資源,須要帶上token
10. open對token進行鑑權

註冊

提供方系統註冊接口到公共平臺,有不少種方式,目前,咱們主要使用兩種方式:設計

  1. 系統內置平臺註冊SDK,在代碼中實現接口註冊
  2. 系統調用平臺開放註冊接口,經過HTTP請求完成註冊。這種方式,提供方自己又成了公共平臺的調用方,須要走一遍上面的鑑權過程=。=

整個註冊流程比較簡單,以下:code

管理

基於以上分析,有個提供方並在平臺註冊了接口,有了調用方並在平臺得到了受權,那麼整個管理平臺的基本職能就能夠推斷出來:blog

  1. 服務註冊、維護
  2. 消費維護、受權
  3. 應用申請受權、接口發佈
  4. 系統運行態數據監控

總結

以上,僅僅是一個梗概,認識一個東西,我喜歡先看輪廓,在扣細節。
扣個細節,好比,受權單位若是是個接口的話,咱們公司將近2w個openAPI接口,受權起來比較瑣碎,此時能夠用分組來進行管理。如某個小系統的全部接口放到一個組裏面,調用方經過申請組資源的訪問,來完成對組內接口的訪問。
在好比,受權時能夠設置用戶token的時效,過時token失效,須要從新取token。時效設置多久合適,你們能夠另行分析。咱們系統是金融領域=。=token


以上來自天團運營總監:坤少
感謝觀看,點個贊,我以爲不過度。接口

相關文章
相關標籤/搜索