左剛 胡昌平 卞德志 單文金 閆四洋


摘要:隨著授權管理在企業(yè)管理應用中的普及,對授權安全性的需求也日益突出。文章根據(jù)需求,提供了一種企業(yè)管理應用的安全授權的設計方案,通過設定三員分立模式,指定相互制約的管理員角色賬號,實現(xiàn)用戶、角色、權限之間的相互分配及確認功能,以及查看三者之間歷史變更數(shù)據(jù)關系的功能,從而達到安全授權管理的需求。
關鍵詞:企業(yè)管理應用;授權管理;安全性需求;三員分立
中圖分類號;TP311 文獻標識碼:A 文章編號:1006-8228(2020)07-43-04
0引言
授權管理作為一種現(xiàn)代新型管理理念,已經(jīng)在各個領域得到普及。授權的含義是分配他人具體任務以及完成這些任務的權利,并且雙方能夠對任務的結果達到一致的認可。這種管理理念的實現(xiàn)方式也一致得到企業(yè)管理者和員工的肯定。企業(yè)管理者通過授權管理,能夠高效率的利用好時間,在承擔重任的同時,完成自己必須做的工作;企業(yè)員工在得到授權的情況下可以在沒有上級領導的干擾下,完成任務并做出一些重大決定。
評價任何一個企業(yè)授權管理應用系統(tǒng),其安全管理方式可以說是主要指標之一。健全有效的安全管理方式可以保障用戶合理地使用應用資源,防止用戶獲取機密信息或破壞信息。應用級的安全管理,主要取決于應用系統(tǒng)的構成。對于一個大型的管理應用系統(tǒng),多種崗位、多種級別的用戶所擁有的權限也是不同的,這就要求系統(tǒng)能夠提供一種安全管理權限體系,確保具有權限資格的用戶獲取數(shù)據(jù)和進行數(shù)據(jù)操作,并禁止未被授權的用戶接近數(shù)據(jù)的信息。在近年來的權限管理方面的研究中,包括基于角色的授權管理的實現(xiàn)研究、基于RBAC模型法的權限管理的實現(xiàn)研究等等,雖然都提供了有效的權限安全管理的控制方案,但是針對分配權限本身動作的安全防范措施有所欠缺,表現(xiàn)為一個管理者可以實現(xiàn)分配權限的動作,但是管理者本身是否達到安全分配的要求卻不可知。本文不僅提供了一種有效靈活的安全授權方案,同時也保障了分配權限動作的安全防范。
1總體設計
1.1授權管理機制
本設計的應用安全授權體系采用RBAc模型(如圖1所示),同時為了分配權限動作的安全防范,為企業(yè)應用分配了三種管理員角色,這三種管理員角色擁有固定不可變的管理權限,并且各自指定一位管理員賬戶,比如管理員A、管理員B、管理員c,可使管理員之間實現(xiàn)相互制約的機制,從而達到分配權限動作的安全防范。
授權管理體制結構定義如下。
(1)一位管理員賬戶只能指定一種管理員角色。
(2)權限按照應用模塊和功能劃分方法以樹形結構定義,便于應用管理員按業(yè)務模塊和功能進行授權。
(3)角色可以理解為一組權限的集合,為方便授權而設立。
(4)用戶在應用中能起到效果的權限都來自于有效權限表數(shù)據(jù)。
(5)一個角色可以作為下級角色,從屬于多個其他角色,一個角色也可以作為上級角色,擁有多個其他角色,但是不能循環(huán)嵌套。下級角色繼承上級角色的權限。
(6)角色之間具有互斥關系,互斥角色不能同時授予同一用戶;定義角色互斥關系時,應檢查是否已經(jīng)有用戶同時授予了兩個角色。
(7)一個用戶可以授予多個角色,一個角色也可以授予多個用戶,用戶擁有角色的權限以及角色所有上級角色的權限。
(8)權限既可以授予(grrant),也可以禁用(revoke),禁用關系在同級別角色中具有較高優(yōu)先級;即假如用戶a被授予角色b和角色c(b和c之間不存在隸屬關系),b被授予權限x,c被禁用權限x,那么用戶a應該被禁用權限x,權限x應從用戶a的最終有效權限集合中排除;用戶權限的授予關系具有更高的優(yōu)先級,如前例中,直接給用戶a授予權限x,那么用戶最終有效權限集合中也具有x;同時角色隸屬關系中下級角色也可以取代上級角色的禁用關系。
(9)級聯(lián)授予權限,授予一個權限同時必須授予其所有祖先權限;級聯(lián)禁用權限,禁用一個權限同時必須禁用其所有子孫權限。
(10)為用戶、角色授權或者更改用戶、角色的隸屬關系后,都需要重新計算相關用戶的有效權限,記入用戶的有效權限表。
(11)管理員B可以給角色和用戶授權,授權后需要管理員A確認生效;管理員c可查看角色、用戶、權限三者之間的歷史變更數(shù)據(jù)。
(12)管理員A為用戶確認角色和權限后,系統(tǒng)計算用戶的最終有效權限,即用戶繼承的所有角色權限和用戶自身被直接授予的權限合集。即用戶a繼承權限b以及角色c關系,角色c繼承權限d關系,則用戶a的有效權限集合為權限b和權限d。
1.2授權制約機制
用戶、權限、角色三者關系需要在管理員B授權后,同時管理員A再確認后才能激活使用,形成相互制約機制(設計如圖2所示),審計員可查看三者之間的歷史變更數(shù)據(jù)。
以角色授權為例,建立角色授權數(shù)據(jù)的當前版本和歷史版本兩張記錄表,管理員B授權操作僅修改當前版本記錄表,修改后,角色當前版本數(shù)據(jù)標記為待激活。管理員A確認激活授權后,激活后的版本復制到歷史版本表中,存為新版本。當需要計算用戶的有效權限時,系統(tǒng)始終從歷史版本庫中取最新版本角色授權數(shù)據(jù)進行有效權限計算,這樣就可以避免使用未激活狀態(tài)的授權數(shù)據(jù),同時也可以對授權狀態(tài)的歷史進行跟蹤審計。用戶授權、角色用戶分配與角色授權類似,不再贅述。
2詳細設計
2.1授予設計
管理員B擁有授予的功能,能夠實現(xiàn)分配角色、用戶、權限三者之間的關系。管理員B在登陸應用之后,擁有用戶授權、角色授權、權限授權、角色分配這幾個菜單功能。
在用戶授權菜單中,選定用戶來分配權限關系。關系信息會保存在數(shù)據(jù)庫角色權限關系表(SYS_AUTH_USER)中,表中USER_ID列保存用戶表的主鍵信息,AUTH_ID列來保存權限表的主鍵信息,IS_REVOKE列來判定是授予(grant)還是禁用(revoke)關系。待激活權限關系的用戶信息也會記錄在待激活權限關系表(SYS_WAIT_GRANT_AUTH)中,其中ACTIVATE_ID列為用戶表主鍵信息,TYPE列的值設為0,表明該條數(shù)據(jù)為待激活的用戶信息。角色授權菜單的實現(xiàn)方式與之相似,不再記述。