[摘要] 權(quán)限管理是信息管理系統(tǒng)不可或缺的一部分,其核心內(nèi)容是訪問控制,為整個系統(tǒng)的信息安全提供重要的保障機制。本文采用目前最為廣泛使用的RBAC模型,提出一套適合于汽車企業(yè)的通用權(quán)限管理系統(tǒng)設(shè)計方案,主要從設(shè)計原則、基本功能模塊介紹、系統(tǒng)設(shè)計與實現(xiàn)等3個方面對該系統(tǒng)的建設(shè)思路進行綜合闡述。
[關(guān)鍵詞] 權(quán)限管理;訪問控制;RBAC;建設(shè)思路
中圖分類號:U468.6 " 文獻標志碼:A " " "文章編號:1003-8639(2023)07
Design of General Authority Management System
for Automobile Enterprises Based on RBAC
(SAIC-GM-Wuling Automobile Co.,Ltd. Technology Center,Guangxi Liuzhou 545007)
Abstract:Permission management is an indispensable part of the information management system. Its core content is access control,which provides an important guarantee mechanism for the information security of the entire system. In this paper,the most widely used RBAC model is adopted,and a design scheme of general authority management system suitable for automobile enterprises is proposed. The construction idea of the system is comprehensively described from three aspects: design principles,introduction of basic function modules,and system design and implementation.
Keywords:Authority Management;Access Control;RBAC;Construction Ideas
收稿日期:2022-11-03
作者簡介:蘇德(1995—),男,助理工程師,研究方向為后端開發(fā)以及大數(shù)據(jù)開發(fā)。
隨著計算機網(wǎng)絡(luò)技術(shù)的飛速發(fā)展,如今社會已進入信息時代。在信息時代的大背景下,人們享受著信息時代所帶來的諸多便利,同時也在承擔著隨之而來的信息安全隱患。如何保障數(shù)據(jù)安全,成為信息管理系統(tǒng)亟待解決的問題[1]。
為保障信息管理系統(tǒng)的數(shù)據(jù)安全,必須對用戶的訪問進行有效控制,而對用戶權(quán)限的管理,即可實現(xiàn)訪問控制。權(quán)限管理作為信息管理系統(tǒng)的重要組成部分之一,它規(guī)定不同級別的用戶在整個信息管理系統(tǒng)流程中扮演的角色。由于權(quán)限管理功能在大多數(shù)信息管理系統(tǒng)中都會使用到,故各系統(tǒng)的權(quán)限管理功能具有一定程度的相似性,為避免重復(fù)開發(fā)造成人力、財力和時間的浪費,其通常作為一個獨立模塊進行開發(fā),并復(fù)用到各個信息管理系統(tǒng)當中[2]。
本文采用基于角色的訪問控制模型(Role-Based Access Control,簡稱RBAC),設(shè)計出一款適用于汽車企業(yè)的通用權(quán)限管理系統(tǒng)。基于RBAC模型屬于當前使用最為廣泛的一種權(quán)限管理方式,是一種基于安全策略且有效的訪問控制方式,它通過引進角色的概念實現(xiàn)了用戶和權(quán)限的邏輯分離。其中,RBAC 模型包含了用戶、角色和權(quán)限3大實體[3],其關(guān)系如圖1所示。
圖1 "用戶、角色和權(quán)限的關(guān)系
在這種模型中,用戶與角色相關(guān)聯(lián),角色與用戶相關(guān)聯(lián),通過賦予用戶相應(yīng)的角色,使得用戶擁有這些角色的權(quán)限,從而實現(xiàn)用戶的權(quán)限控制,極大地簡化了權(quán)限的管理。
1 "設(shè)計原則
通用權(quán)限管理系統(tǒng)的設(shè)計,應(yīng)遵循以下原則。
安全性原則:數(shù)據(jù)安全性是衡量一個信息系統(tǒng)是否成功的標準,數(shù)據(jù)安全至關(guān)重要,不容忽視,因此要求系統(tǒng)對敏感或重要數(shù)據(jù)在傳輸、存儲、顯示進行加密處理或脫敏處理,防止數(shù)據(jù)泄露對用戶或者系統(tǒng)造成不良影響。
實用性原則:系統(tǒng)最大限度地滿足實際工作要求,充分考慮業(yè)務(wù)的連續(xù)性和管理的便捷性,把滿足用戶的業(yè)務(wù)管理作為第一要素進行考慮。
可靠性原則:一個成功的信息管理系統(tǒng)必須具有高可靠性,要求系統(tǒng)擁有抵御各種外界不良干擾、正常工作的能力,系統(tǒng)可靠性可以通過系統(tǒng)平均無故障運行時間、系統(tǒng)開工率等指標來衡量。
可拓展性原則:為滿足業(yè)務(wù)需求增加或變更,順利完成系統(tǒng)功能的迭代升級,要求系統(tǒng)必須具備良好的拓展性。首先,系統(tǒng)可采用Spring MVC的3層架構(gòu),即視圖層、業(yè)務(wù)邏輯層、數(shù)據(jù)層,實現(xiàn)各業(yè)務(wù)層間分離[4];其次,對功能進行模塊化設(shè)計,保持模塊間的相對獨立性;最后,充分考慮未來的業(yè)務(wù)拓展需求,預(yù)留好相應(yīng)的接口和方法。
2 "基本功能模塊介紹
通用權(quán)限管理系統(tǒng)由5大基本功能模塊構(gòu)成,分別是機構(gòu)管理模塊、菜單管理模塊、角色管理模塊、用戶管理模塊、日志監(jiān)控模塊[5]。其功能架構(gòu)如圖2所示。
圖2 "功能架構(gòu)圖
2.1 "機構(gòu)管理模塊
機構(gòu)管理模塊主要用于管理組織機構(gòu)信息。對于機構(gòu)管理,采用的是樹形結(jié)構(gòu),該結(jié)構(gòu)適用于較為復(fù)雜的層級關(guān)系,特點是清晰直觀地展現(xiàn)組織機構(gòu)關(guān)系,并且查詢靈活豐富,支持樹目錄展開功能。系統(tǒng)管理員可通過機構(gòu)管理模塊新增組織機構(gòu),查詢組織機構(gòu)關(guān)系,修改組織機構(gòu)關(guān)系以及刪除組織架構(gòu)等一系列操作。
2.2 "菜單管理模塊
權(quán)限管理系統(tǒng)作為各個信息管理系統(tǒng)獨立出來的模塊,對多個系統(tǒng)的登錄和鑒權(quán)進行統(tǒng)一管理。菜單管理模塊主要用于配置系統(tǒng)菜單和操作權(quán)限,采用的是樹形目錄結(jié)構(gòu),1級目錄為系統(tǒng)名,2級目錄為系統(tǒng)的功能菜單項,3級目錄為操作權(quán)限,操作權(quán)限可包括查看權(quán)限、新增信息權(quán)限、修改信息權(quán)限、刪除信息權(quán)限、導(dǎo)出信息權(quán)限、凍結(jié)賬戶權(quán)限、解凍賬戶權(quán)限等一系列的權(quán)限。
系統(tǒng)管理員可以通過給角色分配系統(tǒng)及其菜單下的操作權(quán)限,再將角色賦予給用戶,從而實現(xiàn)用戶擁有系統(tǒng)的操作權(quán)限。例如:為了保證不同角色的用戶登陸系統(tǒng)后會進入不同的菜單界面,需要給用戶分配具有該系統(tǒng)菜單的訪問權(quán)限的角色。如用戶需要修改菜單下的信息,則需要給用戶分配具有該系統(tǒng)菜單的修改權(quán)限的角色,以此類推。
2.3 "角色管理模塊
角色通常是根據(jù)業(yè)務(wù)需求而預(yù)先在系統(tǒng)中設(shè)定好的固定標簽,每個角色對應(yīng)明確的系統(tǒng)權(quán)限。例如數(shù)據(jù)查詢業(yè)務(wù),則添加數(shù)據(jù)查詢角色。角色信息可包括角色名、中文名、角色說明、創(chuàng)建人和創(chuàng)建時間等基本信息。在角色管理模塊,系統(tǒng)管理員可以添加角色、刪除角色、查詢角色信息以及修改角色信息等一系列操作。
在創(chuàng)建角色時,除了填寫角色基本信息,還需要給角色進行授權(quán)。首先,需要設(shè)置角色可以登錄和訪問的系統(tǒng),其次,需要設(shè)置角色可以訪問的系統(tǒng)菜單,最后,設(shè)置系統(tǒng)菜單下的操作權(quán)限。例如,用戶需要查看與修改機構(gòu)管理信息,則管理員可以授權(quán)用戶訪問權(quán)限管理系統(tǒng)的機構(gòu)管理菜單,并授權(quán)用戶擁有修改的權(quán)限。
2.4 "用戶管理模塊
用戶管理模塊主要用于維護用戶信息,系統(tǒng)管理員可通過用戶管理模塊創(chuàng)建用戶、刪除用戶、修改用戶信息、查詢用戶信息、凍結(jié)或解凍用戶賬號等一系列操作。
系統(tǒng)用戶最基本的屬性是用戶賬號和密碼,這是用戶登錄系統(tǒng)的基本要素,除此之外,用戶還包括其他屬性,如所屬機構(gòu)、分配角色、啟用狀態(tài)、郵箱、手機號等。因此,除了密碼這類敏感信息外,管理員都可以通過用戶管理界面進行訪問。在此管理模塊,系統(tǒng)管理員可以根據(jù)用戶的行政機構(gòu),將用戶劃分到特定的組織機構(gòu)下。系統(tǒng)管理員還可以給用戶賦予角色,一個用戶可以是多個角色,即一個用戶擁有多種權(quán)限。
2.5 "日志監(jiān)控模塊
為記錄用戶在各個信息管理系統(tǒng)上的行為,系統(tǒng)日志記錄必不可少。管理員可以通過日志監(jiān)控模塊查看用戶在系統(tǒng)的訪問和使用情況,對于不安全行為的監(jiān)控以及問題排查等有很大的幫助。展示的內(nèi)容可包括系統(tǒng)名、接口地址、傳入?yún)?shù)、操作類型、操作狀態(tài)、操作人、操作IP等信息。
3 "系統(tǒng)設(shè)計與實現(xiàn)
3.1 "登錄鑒權(quán)設(shè)計
系統(tǒng)所有功能都必須在用戶成功登錄后才能正常使用,用戶登陸流程如圖3所示。用戶登陸流程設(shè)計具體如下。
圖3 "用戶登陸流程圖
1)用戶在客戶端輸入用戶名、密碼和驗證碼,請求登陸。
2)系統(tǒng)判斷驗證碼是否正確,是則下一步,否則返回“驗證碼錯誤”。
3)系統(tǒng)根據(jù)用戶名查詢數(shù)據(jù)庫是否存在該用戶,是則下一步,否則返回“用戶不存在”。
4)系統(tǒng)將用戶輸入的密碼和用戶對應(yīng)的salt進行MD5加密,得到密文。
5)密文與數(shù)據(jù)庫中用戶的加密密碼進行對比驗證,如一致則登陸系統(tǒng),否則返回“密碼錯誤”。
3.2 "操作權(quán)限控制設(shè)計
用戶成功登錄后才允許對系統(tǒng)進行操作,操作權(quán)限校驗流程圖如圖4所示。操作權(quán)限校驗流程設(shè)計具體如下。
1)用戶登陸系統(tǒng)后,系統(tǒng)會查詢用戶所有被賦予的角色。
2)系統(tǒng)根據(jù)用戶角色查詢出用戶所有可訪問的系統(tǒng)和菜單,以及所有的操作權(quán)限。
3)系統(tǒng)將權(quán)限信息存儲在內(nèi)存中,以用戶信息為索引,建立用戶信息與權(quán)限信息的對應(yīng)關(guān)系,形成信息庫。
4)當用戶發(fā)起操作請求時,系統(tǒng)去信息庫匹配該用戶是否有操作權(quán)限。
5)如有操作權(quán)限,則進行相應(yīng)操作,否則不允許用戶操作。
圖4 "操作權(quán)限校驗流程圖
3.3 "數(shù)據(jù)庫設(shè)計
數(shù)據(jù)庫結(jié)構(gòu)設(shè)計決定了系統(tǒng)的好壞,而是否擁有良好的內(nèi)在機制支持和功能拓展?jié)摿κ窃u判的標準。數(shù)據(jù)庫結(jié)構(gòu)需要基于RBAC模型的要求,并結(jié)合業(yè)務(wù)具體需求進行定制。本文采用開源的MySQL數(shù)據(jù)庫進行表結(jié)構(gòu)設(shè)計,一些基礎(chǔ)表的結(jié)構(gòu)見表1~表3。
表1 "用戶信息表
表1中的use_id是自增的主鍵,由數(shù)據(jù)庫自動生成;login_name是登錄用戶名,該字段屬于唯一約束(Unique Key),字段值不能重復(fù)出現(xiàn);dept_id是外鍵,用于與機構(gòu)信息表進行連表查詢;status是登錄賬戶是否可用的標志位,0代表賬號凍結(jié)不可用,1代表賬號正常。
表2 "角色信息表
表2中的role_id是自增的主鍵,由數(shù)據(jù)庫自動生成;del_flag是邏輯刪除標志位,-1代表角色已邏輯刪除,不可用,0代表角色正常。
表3 "機構(gòu)信息表
表3中的parent_id用于表示上級機構(gòu)ID,屬于一級機構(gòu)則為0;order_num用于表示同一層級機構(gòu)的序號,可通過最大的order_num值,判斷同一層級機構(gòu)的數(shù)量。
4 "結(jié)束語
權(quán)限管理作為一種通用性功能,單獨從各系統(tǒng)中劃分出來,設(shè)計成一款通用的權(quán)限管理系統(tǒng),不僅實現(xiàn)了權(quán)限管控的統(tǒng)一管理,還實現(xiàn)軟件復(fù)用,做到高內(nèi)聚低耦合,有效提高系統(tǒng)開發(fā)效率,降低系統(tǒng)開發(fā)和運維管理的成本。
參考文獻:
[1]于洪石. 基于網(wǎng)絡(luò)信息安全技術(shù)管理的計算機應(yīng)用[J]. 中國新通信,2022,24(7):78-80,90.
[2]史會余,王余輝,肖杰. 基于角色訪問控制的通用權(quán)限管理系統(tǒng)設(shè)計與實現(xiàn)[J]. 電腦編程技巧與維護,2016(13):52-53.
[3]李應(yīng)琪,王位杰,檀庭方. 基于屬性管控的RBAC模型權(quán)限管理設(shè)計[J]. 自動化應(yīng)用,2020(10):68-69,74.
[4]王建祥,王洪澤. 基于MVC的權(quán)限管理系統(tǒng)設(shè)計[J]. 電子元器件與信息技術(shù),2021,5(12):165-172.
[5]楊晟,羅奇. 基于RBAC的通用權(quán)限管理系統(tǒng)設(shè)計[J]. 科技創(chuàng)新與應(yīng)用,2022,12(9):123-126.
(編輯 "凌 "波)