001 許可權原理基礎知識

2021-09-07 12:45:39 字數 1486 閱讀 3779

只要有使用者參與的系統一般都要有許可權管理,許可權管理實現對使用者訪問系統的控制,按照安全規則或者安全策略控制使用者可以訪問而且只能訪問自己被授權的資源。

許可權管理包括使用者認證和使用者

授權兩部分。

使用者認證,使用者去訪問系統,系統要驗證使用者身份的合法性。最常用的使用者身份驗證的方法:1、使用者名稱密碼方式、2、指紋打卡機、3、基於證書驗證方法。。系統驗證使用者身份合法,使用者方可訪問系統的資源。

總結:主體在進行身份認證時需要提供身份資訊和憑證資訊。

使用者授權,簡單理解為訪問控制,在使用者認證通過後,系統對使用者訪問資源進行控制,使用者具有資源的訪問許可權方可訪問。

how:許可權/許可(permission) ,針對資源的許可權或許可,subject具有permission訪問資源,如何訪問/操作需要定義permission,許可權比如:使用者新增、使用者修改、商品刪除。

通常企業開發中將資源和許可權表合併為一張許可權表,如下:

資源(資源名稱、訪問位址)

許可權(許可權名稱、資源id)

合併為:

許可權(許可權名稱、資源名稱、資源訪問位址)

上圖常被稱為許可權管理的通用模型,不過企業在開發中根據系統自身的特點還會對上圖進行修改,但是使用者、角色、許可權、使用者角色關係、角色許可權關係是需要去理解的。

比如:系統角色包括 :部門經理、總經理。。(角色針對使用者來劃分)

系統**中實現:

//如果該user是部門經理則可以訪問if中的**

if(user.hasrole('部門經理'))

問題:角色針對人劃分的,人作為使用者在系統中屬於活動內容,如果該 角色可以訪問的資源出現變更,需要修改你的**了,比如:需要變更為部門經理和總經理都可以進行使用者報表檢視,**改為:

if(user.hasrole('部門經理') || user.hasrole('總經理') )

基於角色的訪問控制是不利於系統維護(可擴充套件性不強)。

資源在系統中是不變的,比如資源有:類中的方法,頁面中的按鈕。

對資源的訪問需要具有permission許可權,**可以寫為:

if(user.haspermission ('使用者報表檢視(許可權識別符號)'))

上邊的方法就可以解決使用者角色變更不用修改上邊許可權控制的**。

如果需要變更許可權只需要在分配許可權模組去操作,給部門經理或總經理增或刪除許可權。

建議使用基於資源的訪問控制實現許可權管理。

C 基礎知識001

1 c 簡介 c 是在c語言的基礎上進一步優化而來的,它既可以進行c語 言的過程化程式設計,又可以進行以抽象資料型別為特點的基於物件的程式設計,還可以進行物件導向的程式設計。2 命名空間 用來避免識別符號命名汙染與命名重複的。命名空間的定義及使用 命名空間 用來避免c語言中的命名衝突 作用域限定符 ...

linux基礎知識001

5 mac不能安裝git ssh 之類。5 配置vim 6 更新軟體源 6 安裝防火牆並開放埠 sudo rm usr bin python第三步 sudo ln s usr bin python3.7 usr bin python比如說安裝 protobuf。安裝3步 configure make...

python(day001 基礎知識)

1.pip 給python安裝各種程式包。在cmd下輸入pip獲取相關資訊。如果沒有則檢視是否配置環境變數。2.isinstance的用法 print a 1 a hello type a a 1 b hello a b traceback most recent call last file li...