细粒度权限管理产品的应用场景

jaroddang 2009-04-10
本人从事信息安全行业两年,在一间小公司,技术实力不高,但是接触过一些客户,并且对身份管理,权限管理很感兴趣。
在我接触到的客户中,很少有要求到细粒度的权限控制,其中一个原因我认为很重要,凡是有这个细粒度要求的业务,业务系统本身就已经完成了细粒度的控制,比如金额限定,时间限定等等。
我们做的就是为用户授下权就行了,再进一步的控制就由业务系统自己处理了。

所以想问这样一个问题,对业务的细粒度控制,应该由谁来做?

简单看了下metadmin这个产品,觉得很不错,无论从设计理念还是产品的实现,都是感觉是很用心而且细致一个产品。我还有一个问题,就是这样的产品对已有系统的侵入性有多少
我之前完成的类似功能,都是需要业务系统,将用户操作判断告知我方,我方给予判断,方可做到细粒度的权限控制,不知道metadmin的基本思路是什么,不知是否愿意交流一下
metadmin 2009-04-10
很荣幸和您交流!

先探讨一下细粒度控制,应该由谁来控制
jaroddang 写道

其中一个原因我认为很重要,凡是有这个细粒度要求的业务,业务系统本身就已经完成了细粒度的控制,比如金额限定,时间限定等等。
我们做的就是为用户授下权就行了,再进一步的控制就由业务系统自己处理了。


这种情况下,细粒度的权限在系统开发的时候,由软件开发商提供了。这个时候,客户就控制业务授权即可。

但也存在这样的情况,客户需要自己控制部分细粒度权限。比如:金融危机的时候,普通审核员审核金额上限由原来的100w调整为75w。


当然,我们一定在细粒度方面划分好责任。
1,涉及到细粒度规则的创建等工作,由开发商完成;
2,涉及到细粒度规则需要的数据(比如刚才例子里面的75w、100w),由客户设置。

OK,知道这么一个尺度后,回过头来看看,我们现在的系统。存在这样的情况:
1,开发商将很多细粒度的东西编写到代码里面去,每次修改都得修改代码;
2,开发商将细粒度的相关数据(比如刚才例子里面的75w、100w),提供一个设置界面,由客户来设置。 这就是很多软件商提供的配置功能。
metadmin 2009-04-10
我们需要这样的配置功能。大家不免又会问:既然目前有些系统已经存在这样的配置功能,为什么还要开发Metadmin呢?

考虑如下问题:
1,已有系统开发过程,需要耗去多少人力、时间?
2,假设授权规则发生变化,已有系统怎么办?

Metadmin就能很方便地对上述问题,做出快速反应:打开设计器,修改授权策略。
metadmin 2009-04-10
下面谈侵入性。

Metadmin是中间件,不是系统框架,也不会影响系统的架构和采用技术。

Metadmin就像Log4j那样,在需要进行权限判断的地方,调用一下API即可完成权限判断(我们叫决策权限),或者在权限范围内查询数据(我们叫查询权限)。

假设目前系统已经存在权限管理系统,另外在新功能上使用Metadmin做为权限控制。这也是可以的,不会造出影响。

在侵入性方面,目前Spring Security可以采用配置文件方式,或者@annotation方式。这是非常柔和的侵入方式,可以叫配置侵入吧。但我们也要花写这些配置文件啊。
Metadmin采用API模式,也是非常方便的,只是有了一层API侵入。Metadmin在决策权限方面,也提供了类似Spring Security那样配置侵入模式。但我们还是建议开发者使用API侵入,或者将Metadmin服务封装为系统的Proxy、AOP 的Bean等。
metadmin 2009-04-10
jaroddang 写道

我之前完成的类似功能,都是需要业务系统,将用户操作判断告知我方,我方给予判断,方可做到细粒度的权限控制,不知道metadmin的基本思路是什么,不知是否愿意交流一下

麻烦再说一次,我没有弄懂。
jaroddang 2009-04-10
很感谢您这么仔细的解答,我的问题您已经回答的很清楚了。
有的时候做这种系统,感觉客户对这种系统的认知、认可程度,对我们的产品的实现有很大影响。
可能有公司小的缘故,对问题研究总是浮于表面,一直也没有推动像metadmin这样通用性的考虑和设计,一个项目一个项目做下来,真是累的可以。
对这个行业前景还是很看好的,说句恭维的话,真的希望您的产品也可以在市场上占据一定份额,卖个好价钱。这样的产品越多,才能更加推动这个市场的发展。

                                                   顺祝

商祺
metadmin 2009-04-10
wow,太感谢您的表扬了。这个周末踏青,心情都会愉快很多。谢谢。

http://www.metadmin.com/download/index.html
这里新添加了几个演示。
建议看看:员工借款员工当天借款累计不能超过20000元 这个决策权限。http://www.metadmin.com/download/loanMoney_advanced.html
带有查询测试功能,挺强大的。

目前,我们的所有策略都可以在线测试,以保证开发人员开发出正确的策略。
xpajy1314 2009-04-17
我觉得不能一味的追求权限系统原子化控制,应该站在客户的角度想。

客户非常懒的,做的太负载他们都不愿意去用。反而觉得系统繁琐复杂。

jaroddang 2009-04-17
metadmin 写道
jaroddang 写道

我之前完成的类似功能,都是需要业务系统,将用户操作判断告知我方,我方给予判断,方可做到细粒度的权限控制,不知道metadmin的基本思路是什么,不知是否愿意交流一下

麻烦再说一次,我没有弄懂。



我们的思路是这样的,在我方系统中存有业务系统的角色、权限信息。当用户做操作但还没有执行时,会将【用户、角色、权限】通过我方提供的服务接口传回给我方,在我方进行是否允许的判断,当得到许可的判断后,业务系统才可继续执行操作。

之所以这样,可能是因为实现起来比较简单,也符合我们是用户服务提供商的产品定位。不过对现有系统的改造要求较高,所以在现实环境中,除了同期开发系统和新系统外,配合如此改造的还没有。
wslfh2008 2009-06-29
引用
metadmin
Global site tag (gtag.js) - Google Analytics