1. 程式人生 > >許可權管理系統如何分別實現對使用者和角色的授權

許可權管理系統如何分別實現對使用者和角色的授權

目前,大多數許可權系統,都是基於RBAC的理念來設計的,關於RBAC,摘抄一下百度百科的解釋:

在RBAC中,許可權與角色相關聯,使用者通過成為適當角色的成員而 得到這些角色的許可權。這就極大地簡化了許可權的管理。在一個組織中,角色是為了完成各種工作而創造,使用者則依據它的責任和資格來被指派相應的角色,使用者可以 很容易地從一個角色被指派到另一個角色。角色可依新的需求和系統的合併而賦予新的許可權,而許可權也可根據需要而從某角色中回收。角色與角色的關係可以建立起 來以囊括更廣泛的客觀情況。

http://baike.baidu.com/link?url=vS4hKX1RrOgUUO325gBs_VdhDFCc4d07-6fqvu19bDWnE8Ljy_2ema98BA8LlQBBd-mnFzzix-CaTv1_0avfD_

簡而言之:具體操作時,在系統中建立一個角色,給角色新增人,給角色授予操作許可權,那麼這些人就具有了這些操作許可權,在應用中判斷的時候最終應該是判斷某個人是否有某個許可權(關於許可權的最終判斷,可參考這篇文章http://www.cnblogs.com/hnsongbiao/p/5087359.html),

一、給使用者授權

實際應用中,完全基於RBAC可能並不滿足需求,就比如 Windows 雖然有 管理員組 / 普通使用者組 / 來賓組之分,但它的私人資料夾還是會按使用者的許可權進行分配,而不會為了某一使用者增加一個角色,那麼在通用的許可權管理系統中如何實現呢,先看下介面


給指定的使用者授予許可權,右邊的子系統,表示是給該使用者授予這個系統的操作許可權,點選上面的使用者按鈕,彈出授權頁面,選中後儲存,使用者就具有選中的操作許可權了,見下圖:


二、給角色授權

角色許可權配置是許可權系統必備的,主要功能就是建立角色,向角色中新增人(或者給人設定角色),給角色配置操作許可權,

給人設定角色,在第一個頁面中也可以實現,如下圖


角色許可權管理中也可以為角色新增人,


上面是為角色新增人或為人設定角色的方法。

現在,再看看如何給角色設定操作許可權,角色的操作許可權也就是角色裡的人的操作許可權。


 設定及儲存使用者的操作許可權,操作許可權可能是一個地址,也有可能是一個按鈕,下圖:


在介面上選中操作許可權儲存,這樣角色就具有了對應的操作許可權了。

在具體應用中,判斷使用者操作許可權時,應該先獲取給使用者單獨設定的許可權,以及使用者的角色具有的許可權,兩者取並集,大部分許可權系統只做到按角色的許可權判斷。

通過這個方式,我們實現了按人設定許可權,及按角色設定許可權,滿足系統中的一些特殊需求。

大多數情況下,使用者(User)、角色(Role)、操作許可權(Permission),三者之間的關係,可以把角色看做一個個容器,這個容器裡有很多使用者,有很多操作許可權,使用者和操作許可權之間是多對多的關係,使用者通過角色與操作許可權關聯起來,某些情況,也要求使用者不通過角色,直接與操作許可權關聯,通用許可權管理系統就可以解決這類需求。

使用者始終是授權的主體,片面上說,有了角色,實際上就為很多人同時授權提供了方便,但是不應該因為有了角色,給使用者授權就必須要建立一個角色,那樣就不太靈活了。

原文連結:http://www.cnblogs.com/hnsongbiao/articles/5173878.aspx