spring-security,有没有对需要权限控制的 url 存入数据库的实现。

2020-06-19 10:45:24 +08:00
 zhaoxixiangban
3789 次点击
所在节点    程序员
29 条回复
zzl22100048
2020-06-20 11:43:04 +08:00
看 keycloak 的细粒度权限控制
hantsy
2020-06-20 14:03:06 +08:00
@zzl22100048 Keycloak 推荐过好多次了。国内没几个人用的,在 V 站看到的人都是觉得自己开发的权限 /安全系统最好的。
tctc4869
2020-06-20 17:39:10 +08:00
@hantsy 问一下,ABAC 与 RBAC 两种权限模型,有什么本质区别么?没用过 ABAC 权限模型,我目前接触到的权限体系就是关于 RBAC 的,有博客说 ABAC 的权限配置比 RBAC 更灵活,配置权限也更复杂。到底是怎么样的呢?
tctc4869
2020-06-20 17:49:54 +08:00
@hantsy 浏览了很多有关权限系统的说明博客,关于 ABAC 权限体系,如果要在用途归纳起来,我感觉就是基于平台应用级别的权限系统,不同的组织,在这个平台上,可以有不一样的权限体系。至少每个组织对内权限体系,可以不一样。而 RBAC 权限模型做不到这一点,或者说很困难,至少如果有两个客户群体对内有不一样的权限需求,RBAC 实现起来就会很困难。是这样的么?比如做一个面向多企业客户级别的平台应用,那么权限系统采用 ABAC 是最合适的么
hantsy
2020-06-20 20:22:43 +08:00
这个自己 Google 下吧,https://www.dnsstuff.com/rbac-vs-abac-access-control#rbac-vs-abac
我只关注过 RBAC,似乎 Java EE 标准体系也只有基于 ROLE (和 Group,同等 ROLE )的设计。
hantsy
2020-06-20 20:36:36 +08:00
ABAC 看介绍这只是更细一些,而且是另外一个方向。
RBAC 以 ROLE,行为(权限)为基础的。

ABAC 更的多关注对一个资源的个别属性的访问控制权限,更细的控制。这个除非是基于传统数据模型的的开发,比如传统的 MIS 之类的系统。我觉得用在 API 的控制不大可能 。传统基于数据的开发,实现也不难。以前的 JBoss 下的 http://picketlink.org/ 应该相应的方案,记得见过了。数据模型,比如 JPA Entity,每个属性用某个 Annotation 标注,全部运行时可以提取出来 ,一样可以存放在数据库或者基于 LDAP 这种层层目录访问的方式 ,然后剩下就是就是在数据 CRUD 操作下控制了。
hantsy
2020-06-20 20:52:28 +08:00
@tctc4869 很多时候面对客户,只是把有些东西在脑子里面想得太复杂。中国人这种细粒度的控制,说白了也是我们文化的一部分,控制欲太强了。国外角色更多是系统上的分工,国内的讲权限(实际国内客户很少跟谈角色这个词,很多没有角色这个概念)更多的讲操控上的权力,可以授权,可以取消授权。

其实只要弄清楚,归类出来有几种人可以用这个系统(应用),角色就可以满足。欧美的项目我做很多,有电商,有支付,没有一个要这个种权限配置系统 。有些项目,人家一开始需求就很明确的提出了有几种人用这个系统,操作方式上有应该什么差别。
tctc4869
2020-06-21 07:47:47 +08:00
@hantsy 那我有另一个问题,如果有一个项目,要面向不同类型的客户群体,而且可能每个客户群体内部有不一样的权限需求。这个时候权限系统要怎么配置,若是在 rbac 权限体系下,是进行角色分类上的不同的客户关系扩展,还在重新做针对客户需求的一套应用?还是用 abac 模型体系下设计呢?
hantsy
2020-06-21 08:23:44 +08:00
业务相关的权限本身就和开公的一些权限标准(规范等)没太大的关系,自己根据业务需求决定了。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/682953

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX