天天看點

Shiro系列(1) - 權限管理的介紹與原理

1. 什麼是權限管理

        一般來說,隻要有使用者參與,那麼該系統都會需要權限管理,權限管理實作了對使用者通路系統  指定功能的限制,按照管理者定義的安全規則或權限政策,限制使用者隻能通路自己被授權的那些資源路徑。

        權限管理包括使用者認證和授權兩部分(俗稱登入和鑒權)。也就是說先要進行使用者的登入,登入以後會對使用者通路的功能子產品(即:通路資源的url路徑)進行權限驗證。

2. 使用者認證(使用者登入)

        身份認證,簡單來說就是登入。檢驗一個使用者是否為合法使用者的業務處理過程。最常見的方式為系統對使用者輸入的使用者名和密碼判斷是否比對資料庫中的記錄。

        除此之外還有指紋認證,一卡通認證,臉部掃描,這些都需要硬體裝置,比如指紋采集儀,pose機,刷臉(臉部識别系統/iphoneX)等。

3. 登入認證流程

流程中的出現主要對象:

Subject:主體,大部分情況下就是使用者,但也可以是api接口(rest服務,手機端通路等),去通路系統的功能,系統需要對Subject進行身份認證。

Principal:身份資訊,一般來說是唯一的,一個主體可以有多個身份,但是都有一個主身份資訊(primary principal)。主要展現在賬戶系統和子賬戶。

Credential:憑證token,可以是密碼 、證書、指紋、人臉等。

總結一句話:主體使用者在進行身份認證時需要提供身份資訊和憑證資訊。簡單來說就是登入。

Shiro系列(1) - 權限管理的介紹與原理

4. 使用者授權(驗證使用者是否擁有通路的權限)

        授權,即通路控制,控制使用者能否通路哪些資源。在使用者進行身份認證後需要配置設定權限方可通路系統的資源,對于某些資源沒有權限是無法通路的

Subject:主體,此時的主體已經經過登入之後認證過了的。

Resource:主體使用者所通路的資源或者功能。比如使用者要删除一個員工記錄,這個員工記錄在資料庫中的主鍵pid為1001,那麼這個資源就是1001這條在資料庫中所對應的記錄。在java中就是一個對象。或者查詢所有員工的頁面,這些員工所在資料庫中的資料集也是這個資源resource。

Permission:憑證token,可以是密碼 、證書、指紋、人臉等。

總結一句話:[主體使用者] 對 [資源] 進行 [增删改查] 的操作

Shiro系列(1) - 權限管理的介紹與原理

<未完待續...>

具體内容同步更新文章以及視訊到公衆号,知乎,豆瓣,cnblogs以及新浪微網誌,以官網itzixi.com為主