RABC權限管理


RABC權限管理

一、權限管理的目的

1、統一精細化、標准化權限管理。

2、業務應用數據權限多樣性,不同的應用數據管控的方式要求不同;同一個應用不同的場景和功能對權限的控制不同,需要建設通用性的權限模型;

3、權限模型的建模需要支持多級管控。

4、權限自管控

二、RABC權限管理

1、基本概念

基於角色的訪問控制。簡稱RABC,分為隱式的或者顯式的。

1)隱式

基於角色的安全檢查:如果權限需求變了,導致我們重新開發。

 

2)顯式

 

2、Apache Shiro

讓人容易理解和使用,安全整體考慮的問題特別多,提供了一下簡單的API,簡化了安全性的開發。

協助我們完成身份驗證和用戶信息,角色分配,確定用戶可以做什么事兒,session API,匯總了安全數據源。支持sso單點登錄的功能、記住我。

Shiro的整體架構:

1)Subject

本質就是當前執行用戶的一個視圖。包含用戶登錄的信息。

2)Security Manager

Shiro的整體核心。Authenticator,用戶身份認證,通過與realm交互獲取用戶信息,它有認證策略;Authorizer,用戶授權,允許用戶做哪些事兒;SessionManeger,創建和管理session的生命周期;SessionDAOsession持久化的類;

3)Realm

1個接口,充當shiro與應用程序安全數據訪問的橋梁。

3、登錄驗證的例子

 

4、自定義realm

繼承AuthorizingRealm

自定義MD5 realm,加鹽

5、shiro的授權流程

6、shiro的授權方式

1)基於角色的訪問控制

If(subject.haseRole(admin)){

//操作什么資源

}

2)基於資源的訪問控制

if (subject. isPermission(user:update:01)) {

//資源實例 //01用戶進行修改

}

if (subject. isPermission(user:update:*)) {

//資源類型 //對用戶進行修改

}

7、ShiroSpringBoot的整合

1)引入jar

2)ShiroConfig

①Shiro的過濾器鏈

Anon不需要認證

②自定義shiroDbRealm,進行身份驗證

8、Shiro提供的filter

9、權限場景

1)功能權限場景

2)數據權限場景

3)數據管控權限場景

整體架構

角色建成一個樹形結構,功能也建成一個樹結構,不用每次建立一個功能都綁定一次角色。

用斷言的方式驗證參數是否為空

 

 

 

 

 

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM