欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

如何利用RBAC模型設(shè)計一個權(quán)限系統(tǒng)

本篇文章為大家展示了如何利用RBAC模型設(shè)計一個權(quán)限系統(tǒng),內(nèi)容簡明扼要并且容易理解,絕對能使你眼前一亮,通過這篇文章的詳細(xì)介紹希望你能有所收獲。

成都創(chuàng)新互聯(lián)是一家專業(yè)提供通山企業(yè)網(wǎng)站建設(shè),專注與成都網(wǎng)站建設(shè)、成都網(wǎng)站制作、H5技術(shù)、小程序制作等業(yè)務(wù)。10年已為通山眾多企業(yè)、政府機構(gòu)等服務(wù)。創(chuàng)新互聯(lián)專業(yè)網(wǎng)站設(shè)計公司優(yōu)惠進(jìn)行中。

前言

權(quán)限管理是所有后臺系統(tǒng)的都會涉及的一個重要組成部分,主要目的是對不同的人訪問資源進(jìn)行權(quán)限的控制,避免因權(quán)限控制缺失或操作不當(dāng)引發(fā)的風(fēng)險問題,如操作錯誤,隱私數(shù)據(jù)泄露等問題。
目前在公司負(fù)責(zé)權(quán)限這塊,所以對權(quán)限這塊的設(shè)計比較熟悉,公司采用微服務(wù)架構(gòu),權(quán)限系統(tǒng)自然就獨立出來了,其他業(yè)務(wù)系統(tǒng)包括商品中心,訂單中心,用戶中心,倉庫系統(tǒng),小程序,多個APP等十幾個系統(tǒng)和終端

1.權(quán)限模型

迄今為止最為普及的權(quán)限設(shè)計模型是RBAC模型,基于角色的訪問控制(Role-Based Access Control)

1.1 RBAC0模型

RBAC0模型如下:

如何利用RBAC模型設(shè)計一個權(quán)限系統(tǒng)

這是權(quán)限最基礎(chǔ)也是最核心的模型,它包括用戶/角色/權(quán)限,其中用戶和角色是多對多的關(guān)系,角色和權(quán)限也是多對多的關(guān)系。
用戶是發(fā)起操作的主體,按類型分可分為2B和2C用戶,可以是后臺管理系統(tǒng)的用戶,可以是OA系統(tǒng)的內(nèi)部員工,也可以是面向C端的用戶,比如阿里云的用戶。
角色起到了橋梁的作用,連接了用戶和權(quán)限的關(guān)系,每個角色可以關(guān)聯(lián)多個權(quán)限,同時一個用戶關(guān)聯(lián)多個角色,那么這個用戶就有了多個角色的多個權(quán)限。有人會問了為什么用戶不直接關(guān)聯(lián)權(quán)限呢?在用戶基數(shù)小的系統(tǒng),比如20個人的小系統(tǒng),管理員可以直接把用戶和權(quán)限關(guān)聯(lián),工作量并不大,選擇一個用戶勾選下需要的權(quán)限就完事了。但是在實際企業(yè)系統(tǒng)中,用戶基數(shù)比較大,其中很多人的權(quán)限都是一樣的,就是個普通訪問權(quán)限,如果管理員給100人甚至更多授權(quán),工作量巨大。這就引入了"角色(Role)"概念,一個角色可以與多個用戶關(guān)聯(lián),管理員只需要把該角色賦予用戶,那么用戶就有了該角色下的所有權(quán)限,這樣設(shè)計既提升了效率,也有很大的拓展性。
權(quán)限是用戶可以訪問的資源,包括頁面權(quán)限,操作權(quán)限,數(shù)據(jù)權(quán)限:

  • 頁面權(quán)限: 即用戶登錄系統(tǒng)可以看到的頁面,由菜單來控制,菜單包括一級菜單和二級菜單,只要用戶有一級和二級菜單的權(quán)限,那么用戶就可以訪問頁面

  • 操作權(quán)限: 即頁面的功能按鈕,包括查看,新增,修改,刪除,審核等,用戶點擊刪除按鈕時,后臺會校驗用戶角色下的所有權(quán)限是否包含該刪除權(quán)限,如果是,就可以進(jìn)行下一步操作,反之提示無權(quán)限。有的系統(tǒng)要求"可見即可操作",意思是如果頁面上能夠看到操作按鈕,那么用戶就可以操作,要實現(xiàn)此需求,這里就需要前端來配合,前端開發(fā)把用戶的權(quán)限信息緩存,在頁面判斷用戶是否包含此權(quán)限,如果有,就顯示該按鈕,如果沒有,就隱藏該按鈕。某種程度上提升了用戶體驗,但是在實際場景可自行選擇是否需要這樣做

  • 數(shù)據(jù)權(quán)限: 數(shù)據(jù)權(quán)限就是用戶在同一頁面看到的數(shù)據(jù)是不同的,比如財務(wù)部只能看到其部門下的用戶數(shù)據(jù),采購部只看采購部的數(shù)據(jù),在一些大型的公司,全國有很多城市和分公司,比如杭州用戶登錄系統(tǒng)只能看到杭州的數(shù)據(jù),上海用戶只能看到上海的數(shù)據(jù),解決方案一般是把數(shù)據(jù)和具體的組織架構(gòu)關(guān)聯(lián)起來,舉個例子,再給用戶授權(quán)的時候,用戶選擇某個角色同時綁定組織如財務(wù)部或者合肥分公司,那么該用戶就有了該角色下財務(wù)部或合肥分公司下的的數(shù)據(jù)權(quán)限。
    如何利用RBAC模型設(shè)計一個權(quán)限系統(tǒng)

    此模型引入了角色繼承(Hierarchical Role)概念,即角色具有上下級的關(guān)系,角色間的繼承關(guān)系可分為一般繼承關(guān)系和受限繼承關(guān)系。一般繼承關(guān)系僅要求角色繼承關(guān)系是一個絕對偏序關(guān)系,允許角色間的多繼承。而受限繼承關(guān)系則進(jìn)一步要求角色繼承關(guān)系是一個樹結(jié)構(gòu),實現(xiàn)角色間的單繼承。這種設(shè)計可以給角色分組和分層,一定程度簡化了權(quán)限管理工作。

    1.3 RBAC2模型

    基于核心模型的基礎(chǔ)上,進(jìn)行了角色的約束控制,RBAC2模型中添加了責(zé)任分離關(guān)系,其規(guī)定了權(quán)限被賦予角色時,或角色被賦予用戶時,以及當(dāng)用戶在某一時刻激活一個角色時所應(yīng)遵循的強制性規(guī)則。責(zé)任分離包括靜態(tài)責(zé)任分離和動態(tài)責(zé)任分離。主要包括以下約束:

    • 互斥角色: 同一用戶只能分配到一組互斥角色集合中至多一個角色,支持責(zé)任分離的原則。互斥角色是指各自權(quán)限互相制約的兩個角色。比如財務(wù)部有會計和審核員兩個角色,他們是互斥角色,那么用戶不能同時擁有這兩個角色,體現(xiàn)了職責(zé)分離原則

    • 基數(shù)約束: 一個角色被分配的用戶數(shù)量受限;一個用戶可擁有的角色數(shù)目受限;同樣一個角色對應(yīng)的訪問權(quán)限數(shù)目也應(yīng)受限,以控制高級權(quán)限在系統(tǒng)中的分配

    • 先決條件角色: 即用戶想獲得某上級角色,必須先獲得其下一級的角色

    1.4 RBAC3模型

    即最全面的權(quán)限管理,它是基于RBAC0,將RBAC1和RBAC2進(jìn)行了整合

    1.5 用戶組

    當(dāng)平臺用戶基數(shù)增大,角色類型增多時,而且有一部分人具有相同的屬性,比如財務(wù)部的所有員工,如果直接給用戶分配角色,管理員的工作量就會很大,如果把相同屬性的用戶歸類到某用戶組,那么管理員直接給用戶組分配角色,用戶組里的每個用戶即可擁有該角色,以后其他用戶加入用戶組后,即可自動獲取用戶組的所有角色,退出用戶組,同時也撤銷了用戶組下的角色,無須管理員手動管理角色。
    根據(jù)用戶組是否有上下級關(guān)系,可以分為有上下級的用戶組和普通用戶組:

    • 具有上下級關(guān)系的用戶組: 最典型的例子就是部門和職位,可能多數(shù)人沒有把部門職位和用戶組關(guān)聯(lián)起來吧。當(dāng)然用戶組是可以拓展的,部門和職位常用于內(nèi)部的管理系統(tǒng),如果是面向C端的系統(tǒng),比如淘寶網(wǎng)的商家,商家自身也有一套組織架構(gòu),比如采購部,銷售部,客服部,后勤部等,有些人擁有客服權(quán)限,有些人擁有上架權(quán)限等等,所以用戶組是可以拓展的

    • 普通用戶組: 即沒有上下級關(guān)系,和組織架構(gòu),職位都沒有關(guān)系,也就是說可以跨部門,跨職位,舉個例子,某電商后臺管理系統(tǒng),有拼團(tuán)活動管理角色,我們可以設(shè)置一個拼團(tuán)用戶組,該組可以包括研發(fā)部的后臺開發(fā)人員,運營部的運營人員,采購部的人員等等。

    每個公司都會涉及到到組織和職位,下面就重點介紹這兩個。

    1.5.1 組織架構(gòu)

    常見的組織架構(gòu)如下圖:
    如何利用RBAC模型設(shè)計一個權(quán)限系統(tǒng)

    每個組織部門下都會有多個職位,比如財務(wù)部有總監(jiān),會計,出納等職位,雖然都在同一部門,但是每個職位的權(quán)限是不同的,職位高的擁有更多的權(quán)限。總監(jiān)擁有所有權(quán)限,會計和出納擁有部分權(quán)限。特殊情況下,一個人可能身兼多職。

    1.6 含有組織/職位/用戶組的模型

    根據(jù)以上場景,新的權(quán)限模型就可以設(shè)計出來了,如下圖:
    如何利用RBAC模型設(shè)計一個權(quán)限系統(tǒng)

    4.權(quán)限框架

    • Apache Shrio

    • Spring Security

    權(quán)限系統(tǒng)可以說是整個系統(tǒng)中最基礎(chǔ),同時也可以很復(fù)雜的,在實際項目中,會遇到多個系統(tǒng),多個用戶類型,多個使用場景,這就需要具體問題具體分析,但最核心的RBAC模型是不變的,我們可以在其基礎(chǔ)上進(jìn)行擴(kuò)展來滿足需求。
    最后,如果您覺得這篇文章對您有幫助,可以點個贊,謝謝支持!

    上述內(nèi)容就是如何利用RBAC模型設(shè)計一個權(quán)限系統(tǒng),你們學(xué)到知識或技能了嗎?如果還想學(xué)到更多技能或者豐富自己的知識儲備,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。

    分享文章:如何利用RBAC模型設(shè)計一個權(quán)限系統(tǒng)
    文章轉(zhuǎn)載:http://www.chinadenli.net/article44/pgcpee.html

    成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供手機網(wǎng)站建設(shè)Google關(guān)鍵詞優(yōu)化自適應(yīng)網(wǎng)站品牌網(wǎng)站建設(shè)定制開發(fā)

    廣告

    聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

營銷型網(wǎng)站建設(shè)