單點系統(tǒng)中如何防止超級權限泛濫

1 評論 9501 瀏覽 59 收藏 15 分鐘

導語:權限管理在一個單點管理系統(tǒng)中是不可或缺的重要組成部分,權限控制可以實現(xiàn)不同身份登錄驗證后所擁有資源的不同,一旦用戶權限分配或管理不適當,必將給系統(tǒng)帶來潛在的威脅,甚至造成不可預計的損失。本文作者從單點系統(tǒng)介紹出發(fā),對權限設計需要注意的問題進行了分析說明,供大家一同參考和學習。

一、單點系統(tǒng)目的

單點登錄(Single Sign On),簡稱為 SSO,是比較流行的企業(yè)業(yè)務整合的解決方案之一。SSO的定義是在多個應用系統(tǒng)中,用戶只需要登錄一次就可以訪問所有相互信任的應用系統(tǒng)。

單點登錄及統(tǒng)一授權管理實現(xiàn)了統(tǒng)一的用戶管理、應用系統(tǒng)單點登錄、集中的應用管理、統(tǒng)一的授權管理。用戶采用單點登錄方式后,實現(xiàn)用戶訪問系統(tǒng)時,能夠一次登錄,多次使用,全網(wǎng)通行,不再需要每次輸入用戶名稱和用戶密碼,也不需要牢記多套用戶名稱和用戶密碼,能夠很好的改善用戶對系統(tǒng)的使用體驗,同時也大大地降低了安全的風險和管理的消耗。

同時,提供唯一的用戶身份授權服務,各應用只需遵循統(tǒng)一授權服務調(diào)用接口即可實現(xiàn)用戶身份的授權驗證過程,從而避免在各個應用系統(tǒng)的身份信息數(shù)據(jù)庫的數(shù)據(jù)同步更新,用戶只須在統(tǒng)一授權管理系統(tǒng)中注冊或改變自己注冊信息即可,保證了數(shù)據(jù)的完整性,減少了數(shù)據(jù)冗余,同時實現(xiàn)了基于多個應用系統(tǒng)的單點登錄,提高系統(tǒng)的易用性。

二、單點系統(tǒng)主要建設內(nèi)容

單點系統(tǒng)的整體功能框架,如下圖:

1. 單點登錄

單點登錄允許用戶只認證登錄一次,就可以訪問網(wǎng)絡內(nèi)所有經(jīng)授權的應用系統(tǒng)。

(1)單點登錄

網(wǎng)內(nèi)用戶只需要在任意一個接入單點登錄與統(tǒng)一授權管理系統(tǒng)的應用系統(tǒng)中登錄,就可以直接訪問所有網(wǎng)絡內(nèi)經(jīng)授權的應用系統(tǒng),享受應用系統(tǒng)提供的信息和業(yè)務服務。

(2)單點認證

用戶可以基于用戶名/密碼的方式,也可以基于域帳號方式,還可以基于CA證書登錄系統(tǒng)。用戶在登錄時可以選擇采用以上三種方式的任意一種方式。

用戶可以查看個人信息,修改密碼,并可以配置擴展屬性中的密碼屬性值。

支持用戶密碼策略設定(可以配置密碼長度,是否包含字母及字母的長度,是否包含數(shù)字及數(shù)字的長度,是否包含符號及符號的長度等),根據(jù)設定的策略來約束密碼設置。

(3)單點注銷

網(wǎng)內(nèi)用戶只需要在任意一個接入單點登錄與統(tǒng)一授權管理系統(tǒng)的應用系統(tǒng)中注銷用戶信息,就可以退出曾經(jīng)或正在訪問的所有應用系統(tǒng)。

平臺管理員可以實時查看統(tǒng)一用戶與身份認證系統(tǒng)中的在線用戶,并可以進行用戶強制注銷。

單點登錄時序圖:

2. 機構用戶管理

統(tǒng)一授權管理系統(tǒng)提供創(chuàng)建和管理機構、部門、用戶的功能。通過創(chuàng)建與現(xiàn)實組織結構相符的機構、部門、用戶,并給用戶賦予某種角色,使之擁有給定的權限。機構在統(tǒng)一用戶與身份認證系統(tǒng)中是一個獨立的組織單位,部門、用戶、角色是以機構為單位存儲。

(1)機構管理

機構管理模塊以分層次、多結構的方式管理各種復雜的組織機構,政府機構建立機構的部門結構和人員結構??晒芾淼膶ο笥校簷C構、行業(yè)、部門、人員組。

除此之外,允許建立復雜的人員組織關系(一個職員可以被組織在多個部門中)。

通過組織機構管理模塊,實現(xiàn)政府組織和人員管理,并可以系統(tǒng)的角色、用戶進行關聯(lián),實現(xiàn)基于組織機構管理的強大的角色權限安全體系功能,滿足內(nèi)部網(wǎng)的功能需求。

通過此功能可以實現(xiàn)添加或刪除機構和部門、機構和部門信息的改變、查詢機構和部門等相關信息,是為用戶分配應用角色以及權限的基礎。

(2)用戶管理

用戶管理功能是單點登錄系統(tǒng)中的核心功能,管理著機構和應用系統(tǒng)中所有的相關用戶數(shù)據(jù),通過此功能可以實現(xiàn)添加或刪除用戶、用戶信息的改變、查詢用戶相關信息,為用戶增加角色以及權限等。

各機構系統(tǒng)管理員可以添加、刪除、修改、移動本機構下用戶基本信息,可以進行用戶擴展屬性處理,配置各個業(yè)務應用系統(tǒng)已有用戶帳號和密碼,建立統(tǒng)一用戶與身份認證系統(tǒng)與各個業(yè)務系統(tǒng)的用戶映射關系,賦予用戶關聯(lián)角色。

3. 權限管理

(1)角色管理

管理不同系統(tǒng)中不同的人所扮演的不同角色。由于不同系統(tǒng)關聯(lián)不同機構,因此角色分為應用角色(按照機構應用定義)、平臺角色(跨機構跨應用)。

通過此功能可以實現(xiàn)添加或刪除角色、角色信息的改變、查詢角色相關信息,為后續(xù)用戶分配角色權限等。

即角色是人員與權限的集合,多個人員可以同屬一種角色。比如:處級、副處級、辦事員,皆為角色。角色是可繼承的,對于一個分級的權限實現(xiàn),某個角色通過“繼承”就已經(jīng)直接獲得其父角色所擁有的所有“權限集合”。用戶也可以隸屬于角色,用戶繼承該角色所擁有的權限。只要某用戶直接或者間接的屬于某個角色,那么它就具備這個角色的所有操作許可。

用戶與角色是多對多的關系。即一個用戶可以屬于多個角色之中,一個角色可以包括多個用戶。子角色與父角色是多對一的關系。角色對系統(tǒng)的作用實質上就是提供了一個用戶載體和權限載體。

(2)角色授權管理

角色(Role)是一組訪問權限的集合,當需要對一組用戶賦予相同的權限時,可以使用角色來授權?;诮巧氖跈嗫梢源蟠蠛喕跈嗔鞒?,降低授權管理成本。當需要對用戶授權時,應當優(yōu)先考慮是否應該使用角色來完成。

通過此功能可以實現(xiàn)角色關聯(lián)應用系統(tǒng)資源權限。

4. 應用管理

應用管理是管理機構下中所有應用系統(tǒng)相關應用信息數(shù)據(jù),例如:資源管理、權限功能等,通過此功能可以實現(xiàn)添加或刪除應用、應用信息的改變、查詢應用相關信息,是為用戶分配應用角色以及權限的基礎。并提供創(chuàng)建和管理第三方應用程序的功能。對接入的各應用系統(tǒng)進行有效的監(jiān)督和控制,并面向所有用戶定制應用系統(tǒng)權限管理模型,制定權限規(guī)則和權限分配策略,實現(xiàn)不同用戶訪問不同應用系統(tǒng)。

(1)應用程序管理

應用程序管理負責統(tǒng)一管理第三方應用程序,各機構系統(tǒng)管理員可以在本機構下添加、刪除、修改應用程序基本信息。

(2)應用程序分類

應用程序分類提供應用程序組管理功能,包括添加、刪除、修改應用程序組信息,并將同屬于一類的應用程序組織在一起進行管理及展示。

(3)應用權限設置

應用權限設置提供權限設置和移除功能,根據(jù)設置好的權限組和權限元素,為角色或用戶授予或拒絕應用程序或應用程序組的相關權限。

(4)應用訪問策略

應用訪問策略為應用程序或應用程序組提供訪問策略設置功能,如限制可訪問的時間及IP等。

三、單點系統(tǒng)如何做權限

權限的目的:防止以后誤操作、人為破壞、數(shù)據(jù)泄露等,且不同用戶類型所持有不同的權限能看到及操作不同的數(shù)據(jù)來保障數(shù)據(jù)、業(yè)務安全。

權限管理是系統(tǒng)重要組成部分,其最常見模式RBAC模型:用戶、角色、權限,即一個用戶賬號對應多個角色,每個角色對應相應的權限集(RBAC模型),這種模型主要是通過角色可以實現(xiàn)靈活且多樣的的權限操作需求。

因此我們的數(shù)據(jù)庫設計模型,描述如下圖關系如下圖:

而單點系統(tǒng)會涉及應用管理,其應用管理就是提供創(chuàng)建和管理第三方應用程序的功能。對接入的各應用系統(tǒng)進行有效的監(jiān)督和控制,并面向所有用戶定制應用系統(tǒng)權限管理模型,制定權限規(guī)則和權限分配策略,實現(xiàn)不同用戶訪問不同應用系統(tǒng)。

即一個用戶賬號對應多個角色,每個角色對應相應的權限集,每個權限集是對應相應的應用,依然通過角色可以實現(xiàn)靈活且多樣的的權限操作需求。

因此我們的數(shù)據(jù)庫設計模型,描述如下圖關系如下圖:

四、超級權限泛濫的坑點及對應的解決方案

1. 假設我現(xiàn)在新增一個角色,該角色不小心被賦予了超級權限(即角色授權權限),并且賦予某一類用戶后,這樣最終角色權限維護亂了,權限也變得形同虛設

解決方案一:對角色設置不同安全級別

如:

  1. 如果為應用管理員:可擁有使用授權應用權限(即超級權限);
  2. 如果為一般管理員:無使用授權應用權限,使得的權限無法下放。

給角色分為好幾個等級,每個等級權限不同,從而實現(xiàn)更細粒度的權限管理。

即應用管理員、一般角色的角色等級用例圖:

解決方案二:采用角色繼承等級方案進行限制權限下放,即一個角色可以從另一個角色繼承許可權或者轉讓權

角色間的繼承關系可分為一般繼承關系和受限繼承關系。一般繼承關系允許角色間的多繼承,受限繼承關系則進一步要求角色繼承關系是一個樹結構。因此繼承的角色就算不小心被賦予了超級權限(即角色授權權限),用戶依然無權限對其他模塊操作。

2. 角色分配中角色未作角色過濾,一旦超級權限角色被賦予了某一個人,這樣最終角色權限也將變得形同虛色

  • 解決方案一:給角色分為好幾個等級,每個等級權限不同,從而實現(xiàn)用戶只能分配自己所持有的角色等級相同的角色,使得的超級權限無法下放。
  • 解決方案二:采用角色繼承等級方案進行限制權限下放,即一個角色可以從另一個角色繼承許可權或者轉讓權。角色間的繼承關系可分為一般繼承關系和受限繼承關系。一般繼承關系允許角色間的多繼承,受限繼承關系則進一步要求角色繼承關系是一個樹結構。

一般繼承關系如下圖:

受限繼承關系如下圖:

 

本文由 @黃泡泡 原創(chuàng)發(fā)布于人人都是產(chǎn)品經(jīng)理,未經(jīng)許可,禁止轉載

題圖來自?Unsplash,基于 CC0 協(xié)議

更多精彩內(nèi)容,請關注人人都是產(chǎn)品經(jīng)理微信公眾號或下載App
評論
評論請登錄
  1. 滿滿干貨~~

    來自江蘇 回復