ACL : access control list
访问权限管理
在企业服务里,算是个基础服务。今天谈谈关与它的设计。
网上有好多资料,给出了ER图,类图。讲得都非常好,试用于各个场景。但是用起来,前期没什么问题,到后期发现有很大的问题。
分析原因,是因为以开发的角度去解决这个问题,去思考ACL。少了从运营的角度去分析ACL。
首先,明确一些问题与误区:
----------------------------------------------
ACL本身仅仅是负责了存储。
一个具体业务,根据那个维度进行数据权限划分,还是来自业务,存储成什么样的格式,ACL本身是不知道的。业务只是基于ACL快速建立数据权限模型。
ACL分为功能权限和数据权限
用户能访问那写表单和页面,属于功能权限。多个用户访问同一个表格,但是看到的数据不一样,这是数据权限。
正确理解角色、资源、用户三者关系
网上好多资料,对三者进行了抽象,抽象得非常好。可以适应各种场景。完美。
这里强调的是建立数据模型时,没有统一的方式。要跟具体业务来。具体分成如下
(1)用户-角色关系 (多对一)
在这个模型中,是不需要资源的。举例,针对我的系统用户,我只想给部分人提供发放邮件的功能,我只关心给哪些人发邮件,所谓的功能权限,下放到业务代码中,不需要维护到ACL里。
(2)角色-资源关系 (一对多)
系统会经常创建一个报表,要把新创建的报表分配给系统用户。那么新创键一个资源,就要绑定几十个用户,显然运营成本会很大。要事前把用户和觉色进行关联,然后把新创建的资源与角色绑定。
(3)角色-资源 (多对多)
举例,一个全国的销售人员管理系统,资源分级,至上而下:全国,大区,省,市,区
公司各个人员与期资源进行关联。而且这个关联关系,会在多个业务单元中使用,导致弱化角色的概念,只关心数据权限。
(4)账户-角色-资源
三者,两两关联,再加上一个全的。共四个场景。
没有必要用统一的方式去做存储,要根据具体业务场景套用上面的模型。
没有必要,把所有的权限,都搞成 固定的模型,账户-角色-资源。这样不方便理解。
资源设计,以及查询
我发现,目前提供的资料,仅仅强调了存储,没有强调查寻接口如何设计。这也是导致ACL不好用的根本原因。要结合上面的模型,提工一系列查询接口,要贴近业务,换位思考。
独立维护业务线的用户信息
----------------------------------------------
我设计的ACL管理系统
可以无缝迁移到各个公司系统中。
预留接口与SSO打通。
多个业务线都可一使用。选定业务线后,所有操作都在该业务线下操做。
维护账户、角色、资源以及三者映射关系。
提供批量上传的功能。针对账户、角色、资源以及三者映射关系都可以批量上传。
提供丰富,能满足业务需求的查询功能。
默认提供登陆功能,建议对代码做修改,接入公司的SSO。
特殊说明:
通过存储和查询,解决了一个业务上的复杂功能。
资源:
1 全国 华东大区 浙江省 杭州市 西湖区
某个人,可能跟资源有多条绑定关系。
最后想知道这些绑定关系,涉及哪些市,人可能绑定到任意层级,要反回某一层级的管线数据。
一个五层树状结构,用户可能绑定到任何一层。求某一层的涉及的资源。
这个需求很长用,处理起来很复杂。提供的解决方案,解决了这个问题。
代码已经实现,后面会上传到github上
- 大小: 72.7 KB
分享到:
相关推荐
SSH实现OA系统,基于ACL权限管理 SSH JAVA JSP ACL OA
权限管理-ACL权限-简介与开启
Linux操作系统的账号管理与ACL权限的设置,分享给大家
项目4 管理用户和用户...删除ACL权限;练习2;删除ACL权限;*ACL的mask权限;ACL的mask权限演示;*mask权限验证;思考;课堂活动验证&结论;*ACL的有效权限演示;ACL的有效权限验证;默认权限(拓展选学);默认权限;默认权限验证
ACL:Access Control List 实现灵活的权限管理 除了文件的所有者,所属组和其他人,可以对更多的用户设置权限 CentOS7默认创建的xfs和ext4文件系统具有ACL功能 CentOS7之前版本,默认手工创建的ext4文件系统无ACL...
linux ACL (权限管理) selinux 相关信息的不错学习资料
C#对文件夹通过ACL进行权限管理
08.1.1 权限管理-ACL权限-简介与开启.mp4 08.1.2 权限管理-ACL权限-查看与设定.mp4 08.1.3 权限管理-ACL权限-最大有效权限与删除.mp4 08.1.4 权限管理-ACL权限-默认与递归ACL权限.mp4 08.2.1 权限管理-文件特殊...
Linux账号管理与ACL权限设置,管理员的工作中,相当重要的一环就是“账号管理”。因为整个系统都是你在管理的,并且所有一般用户的账号申请都必须通过你的协助才行!所以你就必须了解一下如何管理好一个服务器主机的...
2.1: 基本权限和归属 、 附加权限 、 ACL策略管理.docx
删除文件权限,方便windows下一些ACL控制的限制!
主要介绍了nodejs acl的用户权限管理详解,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
一键搭建kafka集群支持开启SASL安全认证以及配置ACL权限控制,支持多IP和公网IP配置,支持集群、topic、消费组、消息、限流、acl、副本表盘监控显示创建topic和用户以及最细粒度的授权。 非常简单的使用,只需要...
Linux运维-云计算 基础全栈-054 系统管理-17.3 ACL权限.mp4
管理系统系列--express搭建权限管理系统(基于node_acl)
1已增加ACL鉴权 2配置控制台登录验证
第一章 工业互联网网络安全实施;CONTENTS;UGO和ACL简介;UGO和ACL简介;UGO和ACL简介;UGO和ACL简介;UGO权限管理;UGO权限管理;UGO权限管理;...ACL权限管理;ACL权限管理;ACL权限管理;ACL权限管理;谢谢观看
6.1 文件权限 6.2 账号与用户组 6.3 用户管理 6.4 ACL权限管理 6.5 用户身份切换