關於使用者角色許可權的一點想法 1

2021-06-16 01:00:52 字數 1895 閱讀 5447

標題    

關於使用者角色許可權的

一點想法(1)    biggie(原作)關鍵字    

關於使用者角色許可權的

一點想法

前言:許可權往往是乙個極其複雜的問題,但也可簡單表述為這樣的邏輯表示式:判斷「who對what(which)進行how的操作」的邏輯表示式是否為真。針對不同的應用,需要根據專案的實際情況和具體架構,在維護性、靈活性、完整性等n多個方案之間比較權衡,選擇符合的方案。

目標:直觀,因為系統最終會由終端使用者來維護,許可權分配的直觀和容易理解,顯得比較重要,系統不辭勞苦的實現了組的繼承,除了功能的必須,更主要的就是因為它足夠直觀。

簡單,包括概念數量上的簡單和意義上的簡單還有功能上的簡單。想用乙個許可權系統解決所有的許可權問題是不現實的。中將常常變化的「定製」特點比較強的部分判斷為業務邏輯,而將常常相同的「通用」特點比較強的部分判斷為許可權邏輯就是基於這樣的思路。

擴充套件,採用可繼承在擴充套件上的困難。的group概念在支援許可權以組方式定義的同時有效避免了重定義時

現狀:對於在企業環境中的訪問控制方法,一般有三種:

1.自主型訪問控制方法。目前在我國的大多數的資訊系統中的訪問控制模組中基本是借助於自主型訪問控制方法中的訪問控制列表(acls)。

2.強制型訪問控制方法。用於多層次級別的軍事應用。

3.基於角色的訪問控制方法(rbac)。是目前公認的解決大型企業的統一資源訪問控制的有效方法。其顯著的兩大特徵是:1.減小授權管理的複雜性,降低管理開銷。2.靈活地支援企業的安全策略,並對企業的變化有很大的伸縮性。

名詞:粗粒度:表示類別級,即僅考慮物件的類別(thetypeofobject),不考慮物件的某個特

定例項。比如,使用者管理中,建立、刪除,對所有的使用者都一視同仁,並不區分操作的具體物件例項。

細粒度:表示例項級,即需要考慮具體物件的例項(theinstanceofobject),當然,細

粒度是在考慮粗粒度的物件類別之後才再考慮特定例項。比如,合同管理中,列表、刪除,需要區分該合同例項是否為當前使用者所建立。

原則:許可權邏輯配合業務邏輯。即許可權系統以為業務邏輯提供服務為目標。相當多細粒度的許可權問題因其極其獨特而不具通用意義,它們也能被理解為是「業務邏輯」的一部分。比如,要求:「合同資源只能被它的建立者刪除,與建立者同組的使用者可以修改,所有的使用者能夠瀏覽」。這既可以認為是乙個細粒度的許可權問題,也可以認為是乙個業務邏輯問題。在這裡它是業務邏輯問題,在整個許可權系統的架構設計之中不予過多考慮。當然,許可權系統的架構也必須要能支援這樣的控制判斷。或者說,系統提供足夠多但不是完全的控制能力。即,設計原則歸結為:「系統只提供粗粒度的許可權,細粒度的許可權被認為是業務邏輯的職責」。

需要再次強調的是,這裡表述的許可權系統僅是乙個「不完全」的許可權系統,即,它不提供所有

關於許可權的問題的解決方法。它提供乙個基礎,並解決那些具有「共性」的(或者說粗粒度的)部分。在這個基礎之上,根據「業務邏輯」的獨特許可權需求,編碼實現剩餘部分(或者說細粒度的)部分,才算完整。回到許可權的問題公式,通用的設計僅解決了who+what+how的問題,其他的許可權問題留給業務邏輯解決。

概念:who:許可權的擁用者或主體(principal、user、group、role、actor等等)

what:許可權針對的物件或資源(resource、class)。

how:具體的許可權(privilege,正向授權與負向授權)。

role:是角色,擁有一定數量的許可權。

operator:操作。表明對what的how操作。

說明:user:與role相關,使用者僅僅是純粹的使用者,許可權是被分離出去了的。user是不能與privilege直接相關的,user要擁有對某種資源的許可權,必須通過role去關聯。解決who的問題。

resource:就是系統的資源,比如部門新聞,文件等各種可以被提供給使用者訪問的物件。資源可以反向包含自身,即樹狀結構,每乙個資源節點可以與若干指定許可權類別相關可定義是否將其許可權應用於子節點。共2頁  第1頁 

關於MVC許可權控制的一點小想法

近來一直在學習mvc。先檢討一下自己,本來一直在看wpf並向silverlight靠攏的,可xaml這個東西一時半會領會不了它的真諦,所以暫時先放下了。雖然mvc看的比較系統,但暫時閒置了wpf和silverlight還是有點沮喪感,覺得自己沒有堅持。mvc的許可權控制一直是乙個麻煩事。webfor...

關於MVC許可權控制的一點小想法

近來一直在學習mvc。先檢討一下自己,本來一直在看wpf並向silverlight靠攏的,可xaml這個東西一時半會領會不了它的真諦,所以暫時先放下了。雖然mvc看的比較系統,但暫時閒置了wpf和silverlight還是有點沮喪感,覺得自己沒有堅持。mvc的許可權控制一直是乙個麻煩事。webfor...

關於學習的一點想法

上了十幾年學,才發現自己很多本質的問題從來沒有想過。人類在發展過程中會遇到各種各樣的問題,面對各種各樣的問題,人們提出了各種解決方法。但是如果不用文字記錄下來,讓更多的人看到,實現知識的傳播,那麼未來的人類面對相同的問題就會一臉懵逼,然後花很多重複時間解決乙個解決過的問題。所以人類把各種問題的解決方...