混合了RBAC和ACL的权限系统(一) -- 用户组织结构
最近的工作是一个基础设计,打造一个基于RBAC和ACL的权限基础组件。
这个基础组件的特点是:同时混合了RBAC和ACL的认证方式,也就是说同时提供系统级别的授权(RBAC)和对象级别的授权(ACL)。
1. 表结构说明
1)组织单位(Organization)
组织单位作为基本结构单位。在人员的组织结构中,是用来表示组织结构树。(例如公司)
|
名称 |
定义 |
说明 |
|
id |
bigint |
主键,组织结构id |
|
name |
varchar |
名称 |
|
dn |
varchar |
distinguish name |
|
parentid |
varchar |
父组织单位的id |
2) 用户(User)
是最小的自然单位,无法再包括子节点。对应自然人。(例如员工)
|
名称 |
定义 |
说明 |
|
id |
bigint |
主键,用户id |
|
name |
varchar |
名称 |
|
password |
varchar |
密码 |
|
dn |
varchar |
distinguish name |
|
parentid |
varchar |
所属的组织单位的id |
3) 用户组(Group)
包含了多个用户的组(例如公司中的项目组)
|
名称 |
定义 |
说明 |
|
id |
bigint |
主键,用户组id |
|
name |
varchar |
显示名称 |
|
dn |
varchar |
distinguish name |
|
parentid |
varchar |
所属的组织单位的id |
4) 属性(Attributes)
用来记录用户、用户组、组织单位的属性。
|
名称 |
定义 |
说明 |
|
id |
bigint |
主键,属性id |
|
ownerid |
bigint |
属性的拥有者id |
|
ownertype |
varchar |
属性拥有者类型:用户、用户组、组织单位 |
|
name |
varchar |
属性名称 |
|
attribute |
Text |
属性值 |
2. 关系说明
1) 用户组和组织单位:用户组是可以用来分配权限,而组织单位只是一个用来容器,不能用来分配权限,可以对它做组策备应用,组织简单一点说像一个文件夹,用来规划一个AD对象的。(比如一个公司可以拥有多个项目组,项目组是分配权限和资源的单位)
2) 用户和用户组: 是多对多的关系,同一个用户可以隶属于多个工作组,同一个工作组可以包含多个用户。(比如某个员工可以同时为多个项目组工作)
3) 用户和组织单位: 是一对一的关系,同一个用户只能在某个组织单位中。比如一个员工可以同时为多个项目组(用户组)工作,但是员工只能隶属于一个公司
混合了RBAC和ACL的权限系统(一) -- 用户组织结构的更多相关文章
- 混合了RBAC和ACL的权限系统(二) -- 基于RBAC的系统权限
http://fightplane.iteye.com/blog/1278464 1. 概念说明 A 系统级权限:从角色的角度出发,不特定于任何实际的资源的权限.比如“用户是否可以修改标题”这个权限, ...
- 转:RBAC如何设计一个权限系统
前言 权限管理是所有后台系统的都会涉及的一个重要组成部分,主要目的是对不同的人访问资源进行权限的控制,避免因权限控制缺失或操作不当引发的风险问题,如操作错误,隐私数据泄露等问题.目前在公司负责权限这块 ...
- LigerUI权限系统之用户管理
用户管理较之前的的组织结构和菜单管理稍显复杂.不管怎样还是先上图吧,再来讲解 左边是组织结构,右边是用户,用户是跟组织机构挂钩的,通过点击左边的组织结构,来刷新右边,加载该组织机构下的用户. 用户管理 ...
- 分享Mvc3+NInject+EF+LigerUI权限系统
分享Mvc3+NInject+EF+LigerUI权限系统 前段时间时不时看到有园友的分享权限系统,于是本人突发奇想,也想写一个玩玩,就利用晚上时间,陆陆续续花了一周多样子,写了如今这个权限系统, ...
- 分享Mvc3+NInject+EF+LigerUI权限系统Demo
前段时间时不时看到有园友的分享权限系统,于是本人突发奇想,也想写一个玩玩,就利用晚上时间,陆陆续续花了一周多样子,写了如今这个权限系统,这个权限系统具有 组织结构.用户.角色.菜单,组织结构下挂用户, ...
- python的Web框架,auth权限系统
使用django默认权限系统实现用户登录退出 判断用户是否登录 request.user.is_authenticated 返回的为bool值 一个简单的登录视图范式: # 导包 from djang ...
- Android权限系统
Android系统为每个应用程序提供了一个安全的运行环境,不同程序间相互隔离,应用程序的数据等私有资源,外界无法访问.这个安全的运行环境由Android的权限系统(可称为沙箱系统)来提供.本文简单记录 ...
- 权限系统的设计模式 ACL RBAC ABAC
ACL(Access Control List):访问权限列表 如: user1-->AC1 user1-->AC2 user2-->AC1 此时权限汇总成一个列表 这种设计 ...
- 权限系统与RBAC模型概述
为了防止无良网站的爬虫抓取文章,特此标识,转载请注明文章出处.LaplaceDemon/SJQ. http://www.cnblogs.com/shijiaqi1066/p/3793894.html ...
随机推荐
- 杂项:LDAP
ylbtech-杂项:LDAP 1.返回顶部 1. LDAP是轻量目录访问协议,英文全称是Lightweight Directory Access Protocol,一般都简称为LDAP.它是基于X. ...
- bzoj2073
状压dp 预处理每个状态的初始值,枚举子集就行了 #include<bits/stdc++.h> using namespace std; , inf = ; int W, n; < ...
- JS/CSS 压缩的好处
1.减小了文件的体积 2.减小了网络传输量和带宽占用 3.减小了服务器的处理的压力 4.提高了页面的渲染显示的速度
- 异常java.lang.UnsupportedOperationException: The application must supply JDBC connections
转自:https://blog.csdn.net/q952420873/article/details/81355586 先上图 根据这个错误溯源 于是 我来到了数据库连接部分的代码 ,发现多了一个 ...
- 49.Ext.form.TextField()基本用法
转自:https://blog.csdn.net/toudoulin/article/details/6719163 var textfieldName = new Ext.form.TextFiel ...
- idea 内测设置
找到安装目录/bin/idea64.exe.vmoptions文件 下面是默认配置 -Xms128m -Xmx750m -XX:ReservedCodeCacheSize=240m -XX:+UseC ...
- $CF1141C Polycarp Restores Permutation$
\(problem\) 这题的大致意思就是已知数值差值 求1-n的排列 如果能构成排列 则输出这个排列.如果不能则输出-1 排列的值都是 大于1 而小于n的 而且没有相同的数字. 这题最关键的是 怎么 ...
- hcode视频教程中心(学习h5和hbuilder等)
网站: http://www.hcoder.net/course
- HTML 表格与表单 个人简历
<title>个人简历</title></head> <body background="1e30e924b899a9015b946ac41f950 ...
- C++中 list与vector的区别
引用http://www.cnblogs.com/shijingjing07/p/5587719.html C++ vector和list的区别 1.vector数据结构vector和数组类似,拥有一 ...