如何設(shè)計(jì)一個(gè)通用的權(quán)限管理系統(tǒng)
來自:掘金,作者:PioneerYi
鏈接:https://juejin.cn/post/6850037267554287629
一、CAS身份認(rèn)證
1.1、名詞概念
1.1.1、CAS的Ticket
1.1.2、CAS的服務(wù)
KDC(Key Distribution Center );
AS(Authentication Service)它索取 Crendential,發(fā)放 TGT;
TGS(Ticket ?Granting Service),索取 TGT ,發(fā)放 ST。
1.1.3、CAS的媒介
1.2、CAS工作原理

二、基于角色的權(quán)限管理模型
2.1、基本的RBAC模型

2.2、引入用戶組的RBAC模型
2.3、角色分級的RBAC模型
2.4、角色限制的RBAC模型
2.5、權(quán)限管理的基本元素
是否關(guān)系
繼承關(guān)系
限制關(guān)系(互斥、范圍限制、邊界限制、字段限制)
三、數(shù)據(jù)表設(shè)計(jì)
1、產(chǎn)品表(t_product_info)

2、產(chǎn)品成員表(t_product_member)

3、用戶信息表(t_user_info)

4、用戶角色表(t_user_role)

5、角色表(t_role)

6、基礎(chǔ)角色表(t_role_base)

7、角色權(quán)限表(t_role_permission)

8、用戶組表(t_user_group,可選)

9、組角色表(t_user_group_role,可選)

10、用戶權(quán)限表(t_user_permission,可選)

四、角色及權(quán)限點(diǎn)設(shè)計(jì)
4.1、定義系統(tǒng)中的用戶角色
4.2、定義系統(tǒng)中的資源以及操作
4.3、權(quán)限體策略
資源:操作:實(shí)例:BU:密級五、身份認(rèn)證加權(quán)限管理實(shí)施
5.1、身份認(rèn)證
@Override
protected?AuthenticationInfo?doGetAuthenticationInfo(AuthenticationToken?token){}
public?class?MyRealm1?implements?AuthenticatingRealm?{??
????@Override
??protected?AuthenticationInfo?doGetAuthenticationInfo(AuthenticationToken?token)?throws?AuthenticationException?{??
????????String?username?=?(String)token.getPrincipal();??//得到用戶名?
????????String?password?=?new?String((char[])token.getCredentials());?//得到密碼??
????????//取數(shù)據(jù)庫中看用戶名是否有效
????????//checkUserInfo();
????????
????????//如果身份認(rèn)證驗(yàn)證成功,返回一個(gè)AuthenticationInfo實(shí)現(xiàn);??
????????return?new?SimpleAuthenticationInfo(username,?password,?getName());??
????}??
}??
5.2、權(quán)限校驗(yàn)
//獲取用戶身份信息,Authorization前需要先獲取用戶身份信息
@Override
protected?AuthenticationInfo?doGetAuthenticationInfo(AuthenticationToken?token){}
//獲取用戶權(quán)限信息
@Override
protected?AuthorizationInfo?doGetAuthorizationInfo(PrincipalCollection?principalCollection){
}
六、參考資料
https://shiro.apache.org/ https://github.com/apache/shiro https://jinnianshilongnian.iteye.com/blog/2018398 https://my.oschina.net/bochs/blog/2248956 https://blog.itning.top/posts/Essays/20190408-A-brief-explanation-of-single-sign-on-SSO-and-centralized-authentication-service-CAS-and-open-authorized-OAuth.html
逆鋒起筆是一個(gè)專注于程序員圈子的技術(shù)平臺,你可以收獲最新技術(shù)動態(tài)、最新內(nèi)測資格、BAT等大廠的經(jīng)驗(yàn)、精品學(xué)習(xí)資料、職業(yè)路線、副業(yè)思維,微信搜索逆鋒起筆關(guān)注!
帶你真正認(rèn)識 Linux 系統(tǒng)結(jié)構(gòu)
你應(yīng)該知道的 89 個(gè)"操作系統(tǒng)"核心概念
評論
圖片
表情
