前言
為了讓數據庫開發的安全性與可靠性得以充分保障,數據庫開發工具的管控能力顯得尤為關鍵。構建一個健全的賬號體系,能夠協助開發團隊實現對數據庫開發工具的全方位管控,從而有效防范各類數據安全隱患,確保數據庫開發的順利進行。
得益于分布式數據庫的強大的可擴展性,數據量在快速增長,數據庫實例數量在快速增長,行業的從業人員也在快速增長,但是不同角色并不是等比例增長。DBA需要管理越來越多的協同人數,這對數據庫開發工具的賬號管理系統提出了更高的要求。特別是針對于大規模團隊協同的場景,企業通常已經建立員工的賬號權限系統,作為一個數據庫開發工具如何快速地對賬號系統的集成,如何對不同賬號、不同部門的人員進行自動化的賬號權限管控,就成為了破題的關鍵。
如何快速集成企業級的賬號體系?
隨著管理制度的現代性,越來越多的企業已經開始建立自己的賬號體系進行團隊人員的管理,賬號體系可以通過SSO的方式,基于一定的授權認證的協議,進行企業級所有應用的賬號管控。熟知的有GitHub、GitLab、Google,開源應用比如CAS,企業級IM比如釘釘等。企業通過在建立統一的賬號體系,打通了不同應用之間的壁壘,真正做到了同一個賬號登錄所有的企業應用。
隨著OceanBase ODC V4.2版本的發布,對原本的SSO集成的能力做了產品級的優化,讓一個DBA最快不到三分鐘,就可以完成SSO系統的集成。
創建SSO應用
? ? ? ?我們以GitHub的OAUTH服務為例,實際上ODC支持任意支持標準OAUTH2協議和OIDC協議的SSO服務的集成。
配置外部集成配置
? ? ? ?在github的設置中創建一個SSO的應用,獲取到對應的client ID 和 Client Secrets連同對應授權的Endpoint(不同應該參照各自的SSO服務的文檔)填入ODC后,點擊測試連接即可獲取到當前登錄人的登錄信息的結構。
? ? ? ?通過配置用戶字段映射,選擇odc的用戶名和昵稱怎么從SSO的賬號體系中獲取。外部集成增加了自定義的用戶信息的字段的配置,通過解析JsonPath,來獲取到所需要的字段。
為了更好的適配豐富多樣的SSO服務,ODC針對OAUTH2和OIDC做了很多的兼容性配置,詳細的配置可以參照官網的配置文檔。
使用第三方登錄
? ? ? ?保存后配置后重新回到登錄頁面,即可通過GitHub的賬號進行odc的登錄了。
如何對賬號進行自動權限管理?
僅僅對SSO集成僅僅解決的賬號的創建和登錄的問題,解決了賬號體系搭建的第一塊磚。最重要的就是要基于創建的賬號自動進行相關的權限、資源的管理。真正做到人員的登錄信息一改變,工具內的管控相關的權限也會自動進行相應的權限的賦予。
隨著ODC的420的發布,原來的自動授權的能力也得到了增強。針對性的對存量的用戶增加了 登陸成功、用戶創建、用戶修改 三個事件。 用戶的信息在上述事件觸發的時候,可以直接選擇用戶的屬性進行判斷,來決定是否賦予某個權限。比如上述例子中配置的工作區域、公司名稱等相關字段進行比較判斷。在同一個企業內,這些字段更有可能是部門、職級、角色等相關的字段。DBA可以根據自己企業的賬號體系中的字段,進行自動權限規則的配置。
完成自動授權規則的獲取之后,就可以為觸發對應事件,并且符合相應的匹配規則的用戶,就會被賦予相關的權限。這一切權限的賦予都會在用戶登錄的時候自動進行,做到了DBA一次配置之后,所有的賬號權限的管理都可以自動進行,完成了賬號集成到權限賦予的閉環。
?關于ODC的權限體系,可以參照文章?DBA 日常:規模用戶數據庫訪問權限管理,詳細解釋了ODC權限體系的建立和設計。