最近看了几篇RBAC(Role-Based Access Control)的文章,感觉还是有一点疑问,希望有过实践经验的大神可以指导一下。
在很多文章中都有提到:Permission=Operation+Resource;Operation很好理解,但是Resource的可操作范围是如何界定的呢?
举个栗子:
- 用户:若干
- 角色:局长
- 资源:局成员数据
- 操作:CRUD
现在给A机构和B机构某用户分配局长角色,局长角色CRUD资源(局成员数据),但是在给角色分配可操作资源的时候,如何去保证各个角色访问各自的资源?或者某几个特定的资源?这个暂时不能理解,感觉对一定范围的内的资源的访问依旧是基于用户的,而不可以基于角色。
几个月了,都没有人回答,╮(╯▽╰)╭
对于Permission,通常的理解是 Resource : Operation : Instance
,但是我认为其实是Resource: Operation : Domain
,这里的Domain指得是作用的范围,可能是某一个组织(Organization,Department)、某一个范围(Mine, Others')、某一个实例(Instance),每一种Domain都是一种维度,验证权限需要在验证Resource : Operation
字符串以后需要单独实现各个维度的验证,貌似目前没有什么框架来做哎。
有时间再详细写一个demo,看看目前的理解是不是正确的。